control.h
Go to the documentation of this file.
00001 // Copyright (c) 2010-2016 The YP-Spur Authors, except where otherwise indicated.
00002 //
00003 // Permission is hereby granted, free of charge, to any person obtaining a copy
00004 // of this software and associated documentation files (the "Software"), to
00005 // deal in the Software without restriction, including without limitation the
00006 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
00007 // sell copies of the Software, and to permit persons to whom the Software is
00008 // furnished to do so, subject to the following conditions:
00009 //
00010 // The above copyright notice and this permission notice shall be included in
00011 // all copies or substantial portions of the Software.
00012 //
00013 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00014 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00015 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00016 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00017 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00018 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
00019 // SOFTWARE.
00020 
00021 #ifndef CONTROL_H
00022 #define CONTROL_H
00023 
00024 #include <command.h>
00025 #include <odometry.h>
00026 
00027 int robot_speed_smooth(SpurUserParamsPtr spur);
00028 void robot_speed(SpurUserParamsPtr spur);
00029 int motor_control(SpurUserParamsPtr spur);
00030 void apply_motor_torque(SpurUserParamsPtr spur);
00031 void apply_motor_speed(SpurUserParamsPtr spur);
00032 
00033 void update_ref_speed(SpurUserParamsPtr spur);
00034 
00035 double timeoptimal_servo(double err, double vel_max, double vel, double acc);
00036 double timeoptimal_servo2(double err, double vel_max, double vel, double acc, double vel_end);
00037 
00038 double dist_pos(OdometryPtr odm, SpurUserParamsPtr spur);
00039 double trans_q(double theta);
00040 
00041 double circle_follow(OdometryPtr odm, SpurUserParamsPtr spur);
00042 double line_follow(OdometryPtr odm, SpurUserParamsPtr spur);
00043 int stop_line(OdometryPtr odm, SpurUserParamsPtr spur);
00044 double spin(OdometryPtr odm, SpurUserParamsPtr spur);
00045 double orient(OdometryPtr odm, SpurUserParamsPtr spur);
00046 void wheel_vel(OdometryPtr odm, SpurUserParamsPtr spur);
00047 void wheel_angle(OdometryPtr odm, SpurUserParamsPtr spur);
00048 void wheel_torque(OdometryPtr odm, SpurUserParamsPtr spur, double *torque);
00049 
00050 double regurator(double d, double q, double r, double v_max, double w_max, SpurUserParamsPtr spur);
00051 
00052 double gravity_compensation(OdometryPtr odm, SpurUserParamsPtr spur);
00053 void run_control(Odometry odometry, SpurUserParamsPtr spur);
00054 void control_loop(void);
00055 
00056 void init_control_thread(pthread_t *thread);
00057 
00058 void set_run_mode(SpurRunMode mode);
00059 SpurRunMode get_run_mode(void);
00060 
00061 #endif  // CONTROL_H


yp-spur
Author(s):
autogenerated on Fri May 10 2019 02:52:19