command.h
Go to the documentation of this file.
1 // Copyright (c) 2010-2016 The YP-Spur Authors, except where otherwise indicated.
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and associated documentation files (the "Software"), to
5 // deal in the Software without restriction, including without limitation the
6 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 // sell copies of the Software, and to permit persons to whom the Software is
8 // furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Software.
12 //
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 // SOFTWARE.
20 
21 #ifndef COMMAND_H
22 #define COMMAND_H
23 
24 #include <ipcommunication.h>
25 #include <ypparam.h>
26 #include <ypspur.h>
27 
28 typedef enum
29 {
31  RUN_FREE = 0,
42 } SpurRunMode;
43 
44 typedef enum
45 {
53 
55 typedef struct _spur_user_params
56 {
57  double dv;
58  double dw;
59  double v;
60  double w;
61  double vref;
62  double wref;
63  double vref_smooth;
64  double wref_smooth;
66  double x;
67  double y;
78  double theta;
79  double radius;
80  double tilt;
81  double dir;
82  double control_dt;
83  int freeze;
88  pthread_mutex_t mutex;
90 
91 void init_spur_command(void);
92 void command(void);
93 void message_return(struct ipcmd_t *ipcmd, long retpid, YPSpur_msg *res_msg);
94 
95 void init_command_thread(pthread_t *thread);
97 
98 /* command_run.c */
99 void line_com(int cs, double *data, SpurUserParamsPtr spur);
100 void stop_line_com(int cs, double *data, SpurUserParamsPtr spur);
101 void circle_com(int cs, double *data, SpurUserParamsPtr spur);
102 void spin_com(int cs, double *data, SpurUserParamsPtr spur);
103 void orient_com(int cs, double *data, SpurUserParamsPtr spur);
104 void stop_com(double *data, SpurUserParamsPtr spur);
105 void free_com(double *data, SpurUserParamsPtr spur);
106 void openfree_com(double *data, SpurUserParamsPtr spur);
107 void vel_com(double *data, SpurUserParamsPtr spur);
108 void wheel_vel_com(double *data, SpurUserParamsPtr spur);
109 void wheel_angle_com(double *data, SpurUserParamsPtr spur);
110 
111 /* command_set.c */
112 void set_pos_com(int cs, double *data, SpurUserParamsPtr spur);
113 void set_GL_on_GL_com(double *data, SpurUserParamsPtr spur);
114 void set_adjust_com(int cs, double *data, SpurUserParamsPtr spur);
115 void set_vel_com(double *data, SpurUserParamsPtr spur);
116 void set_ang_accel_com(double *data, SpurUserParamsPtr spur);
117 void set_accel_com(double *data, SpurUserParamsPtr spur);
118 void set_ang_vel_com(double *data, SpurUserParamsPtr spur);
119 void set_tilt_com(int cs, double *data, SpurUserParamsPtr spur);
120 void set_torque_com(double *data, SpurUserParamsPtr spur);
121 void set_wheel_vel_com(double *data, SpurUserParamsPtr spur);
122 void set_wheel_accel_com(double *data, SpurUserParamsPtr spur);
123 
124 /* command_get.c */
125 void get_pos_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
126 void get_vel_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
127 void get_vref_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
128 void get_wheel_vref_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
129 int near_pos_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
130 int near_ang_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
131 int over_line_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
132 void get_wheel_vel_com(double *data, double *resdata, SpurUserParamsPtr spur);
133 void get_wheel_ang_com(double *data, double *resdata, SpurUserParamsPtr spur);
134 void get_force_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
135 void get_wheel_torque_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur);
136 
137 /* command_param.c */
138 void param_set_com(int cs, double *data, SpurUserParamsPtr spur);
139 int param_get_com(int cs, double *resdata, SpurUserParamsPtr spur);
140 void param_state_com(int cs, double *data, SpurUserParamsPtr spur);
141 
142 /* command_ad.c */
143 void get_ad_com(double *data, double *resdata);
144 void set_io_dir_com(double *data, double *resdata);
145 void set_io_data_com(double *data, double *resdata);
146 
147 void joint_torque_com(int id, double *data, SpurUserParamsPtr spur);
148 void joint_vel_com(int id, double *data, SpurUserParamsPtr spur);
149 void joint_ang_com(int id, double *data, SpurUserParamsPtr spur);
150 void joint_ang_vel_com(int id, double *data, SpurUserParamsPtr spur);
151 void set_joint_accel_com(int id, double *data, SpurUserParamsPtr spur);
152 void set_joint_vel_com(int id, double *data, SpurUserParamsPtr spur);
153 void get_joint_vel_com(int id, double *data, SpurUserParamsPtr spur);
154 void get_joint_vref_com(int id, double *data, SpurUserParamsPtr spur);
155 void get_joint_ang_com(int id, double *data, SpurUserParamsPtr spur);
156 void get_joint_torque_com(int id, double *data, SpurUserParamsPtr spur);
157 
158 void get_error_state_com(double *data, double *resdata);
159 void dump_device_com(double *data, double *resdata);
160 
161 #endif // COMMAND_H
RUN_WHEEL_VEL
@ RUN_WHEEL_VEL
Definition: command.h:39
_spur_user_params::wheel_vel_smooth
double wheel_vel_smooth[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:73
get_wheel_vref_com
void get_wheel_vref_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:61
_spur_user_params::run_mode_cnt
int run_mode_cnt
Definition: command.h:86
_spur_user_params::mutex
pthread_mutex_t mutex
Definition: command.h:88
set_GL_on_GL_com
void set_GL_on_GL_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:80
set_ang_vel_com
void set_ang_vel_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:143
SpurUserParamsPtr
struct _spur_user_params * SpurUserParamsPtr
Definition: command.h:54
MotorControlMode
MotorControlMode
Definition: command.h:44
_spur_user_params::w
double w
Definition: command.h:60
_spur_user_params::vref_smooth
double vref_smooth
Definition: command.h:63
RUN_FREE
@ RUN_FREE
Definition: command.h:31
RUN_SPIN
@ RUN_SPIN
Definition: command.h:36
RUN_OPENFREE
@ RUN_OPENFREE
Definition: command.h:30
joint_vel_com
void joint_vel_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:58
wheel_vel_com
void wheel_vel_com(double *data, SpurUserParamsPtr spur)
Definition: command_run.c:146
orient_com
void orient_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_run.c:110
set_adjust_com
void set_adjust_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_set.c:91
SpurUserParams
struct _spur_user_params SpurUserParams
_spur_user_params::wheel_mode_prev
MotorControlMode wheel_mode_prev[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:77
_spur_user_params::wref
double wref
Definition: command.h:62
RUN_WHEEL_ANGLE
@ RUN_WHEEL_ANGLE
Definition: command.h:41
get_joint_vel_com
void get_joint_vel_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:112
over_line_com
int over_line_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:199
set_wheel_vel_com
void set_wheel_vel_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:190
get_wheel_ang_com
void get_wheel_ang_com(double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:135
ipcommunication.h
_spur_user_params::y
double y
Definition: command.h:67
openfree_com
void openfree_com(double *data, SpurUserParamsPtr spur)
Definition: command_run.c:134
MOTOR_CONTROL_FREE
@ MOTOR_CONTROL_FREE
Definition: command.h:47
_spur_user_params::before_freeze
int before_freeze
Definition: command.h:84
get_joint_torque_com
void get_joint_torque_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:157
_spur_user_params::wheel_vel_end
double wheel_vel_end[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:75
get_vref_com
void get_vref_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:72
get_pos_com
void get_pos_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:48
_spur_user_params::run_mode
SpurRunMode run_mode
Definition: command.h:85
_spur_user_params::x
double x
Definition: command.h:66
set_io_data_com
void set_io_data_com(double *data, double *resdata)
Definition: command_aux.c:64
set_joint_accel_com
void set_joint_accel_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:92
MOTOR_CONTROL_VEHICLE
@ MOTOR_CONTROL_VEHICLE
Definition: command.h:48
_spur_user_params::before_run_mode
SpurRunMode before_run_mode
Definition: command.h:87
_spur_user_params::wref_smooth
double wref_smooth
Definition: command.h:64
_spur_user_params::grav_torque
double grav_torque[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:70
spin_com
void spin_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_run.c:96
get_ad_com
void get_ad_com(double *data, double *resdata)
Definition: command_aux.c:48
set_ang_accel_com
void set_ang_accel_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:161
_spur_user_params::wheel_mode
MotorControlMode wheel_mode[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:76
_spur_user_params::dir
double dir
Definition: command.h:81
get_spur_user_param_ptr
SpurUserParamsPtr get_spur_user_param_ptr()
Definition: command.c:53
ypparam.h
RUN_STOP
@ RUN_STOP
Definition: command.h:32
RUN_STOP_LINE
@ RUN_STOP_LINE
Definition: command.h:34
init_command_thread
void init_command_thread(pthread_t *thread)
Definition: command.c:467
set_tilt_com
void set_tilt_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_set.c:170
set_joint_vel_com
void set_joint_vel_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:102
_spur_user_params::wheel_accel
double wheel_accel[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:71
init_spur_command
void init_spur_command(void)
Definition: command.c:68
ypspur.h
stop_line_com
void stop_line_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_run.c:64
joint_ang_com
void joint_ang_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:69
set_vel_com
void set_vel_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:127
near_pos_com
int near_pos_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:148
command
void command(void)
Definition: command.c:87
param_set_com
void param_set_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_param.c:51
set_pos_com
void set_pos_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_set.c:49
dump_device_com
void dump_device_com(double *data, double *resdata)
Definition: command_aux.c:81
get_force_com
void get_force_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:96
joint_torque_com
void joint_torque_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:47
message_return
void message_return(struct ipcmd_t *ipcmd, long retpid, YPSpur_msg *res_msg)
Definition: command.c:458
_spur_user_params::control_dt
double control_dt
Definition: command.h:82
RUN_ORIENT
@ RUN_ORIENT
Definition: command.h:37
_spur_user_params::vref
double vref
Definition: command.h:61
_spur_user_params::v
double v
Definition: command.h:59
MOTOR_CONTROL_ANGLE_VEL
@ MOTOR_CONTROL_ANGLE_VEL
Definition: command.h:51
stop_com
void stop_com(double *data, SpurUserParamsPtr spur)
Definition: command_run.c:124
get_joint_vref_com
void get_joint_vref_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:127
MOTOR_CONTROL_ANGLE
@ MOTOR_CONTROL_ANGLE
Definition: command.h:50
_spur_user_params
Definition: command.h:55
_spur_user_params::radius
double radius
Definition: command.h:79
get_error_state_com
void get_error_state_com(double *data, double *resdata)
Definition: command_aux.c:72
_spur_user_params::wheel_angle
double wheel_angle[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:74
YP_PARAM_MAX_MOTOR_NUM
#define YP_PARAM_MAX_MOTOR_NUM
Definition: ypparam.h:456
_spur_user_params::torque
double torque[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:68
line_com
void line_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_run.c:48
MOTOR_CONTROL_OPENFREE
@ MOTOR_CONTROL_OPENFREE
Definition: command.h:46
RUN_LINEFOLLOW
@ RUN_LINEFOLLOW
Definition: command.h:33
SpurRunMode
SpurRunMode
Definition: command.h:28
near_ang_com
int near_ang_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:173
_spur_user_params::wheel_vel
double wheel_vel[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:72
wheel_angle_com
void wheel_angle_com(double *data, SpurUserParamsPtr spur)
Definition: command_run.c:153
free_com
void free_com(double *data, SpurUserParamsPtr spur)
Definition: command_run.c:129
RUN_VEL
@ RUN_VEL
Definition: command.h:38
get_wheel_torque_com
void get_wheel_torque_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:109
_spur_user_params::theta
double theta
Definition: command.h:78
set_accel_com
void set_accel_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:152
set_io_dir_com
void set_io_dir_com(double *data, double *resdata)
Definition: command_aux.c:56
get_vel_com
void get_vel_com(int cs, double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:83
joint_ang_vel_com
void joint_ang_vel_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:80
_spur_user_params::torque_prev
double torque_prev[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:69
param_state_com
void param_state_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_param.c:93
param_get_com
int param_get_com(int cs, double *resdata, SpurUserParamsPtr spur)
Definition: command_param.c:60
_spur_user_params::wvelref
double wvelref[YP_PARAM_MAX_MOTOR_NUM]
Definition: command.h:65
_spur_user_params::dv
double dv
Definition: command.h:57
_spur_user_params::freeze
int freeze
Definition: command.h:83
get_joint_ang_com
void get_joint_ang_com(int id, double *data, SpurUserParamsPtr spur)
Definition: command_joint.c:142
set_torque_com
void set_torque_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:136
RUN_CIRCLEFOLLOW
@ RUN_CIRCLEFOLLOW
Definition: command.h:35
ipcmd_t
Definition: ypparam.h:519
_spur_user_params::tilt
double tilt
Definition: command.h:80
_spur_user_params::dw
double dw
Definition: command.h:58
get_wheel_vel_com
void get_wheel_vel_com(double *data, double *resdata, SpurUserParamsPtr spur)
Definition: command_get.c:122
YPSpur_msg
Definition: ypparam.h:508
set_wheel_accel_com
void set_wheel_accel_com(double *data, SpurUserParamsPtr spur)
Definition: command_set.c:184
MOTOR_CONTROL_VEL
@ MOTOR_CONTROL_VEL
Definition: command.h:49
vel_com
void vel_com(double *data, SpurUserParamsPtr spur)
Definition: command_run.c:139
spur
static YPSpur spur
Definition: libypspur.c:42
RUN_WHEEL_TORQUE
@ RUN_WHEEL_TORQUE
Definition: command.h:40
circle_com
void circle_com(int cs, double *data, SpurUserParamsPtr spur)
Definition: command_run.c:80


yp-spur
Author(s):
autogenerated on Fri Oct 20 2023 03:02:42