Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
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