libypspur.c
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 /*
22  * YP-Spurとの通信ライブラリ Communication Library for YP-Spur
23  */
24 
25 #include <stdio.h>
26 #include <stdlib.h>
27 #include <string.h>
28 #include <unistd.h>
29 
30 #include <sys/types.h>
31 
32 #ifdef HAVE_CONFIG_H
33 #include <config.h>
34 #endif // HAVE_CONFIG_H
35 
36 #define YP_SPUR_RUNTIME
37 
38 #include <ipcommunication.h>
39 #include <ypspur.h>
40 #include <ypspur-md.h>
41 
42 static YPSpur spur;
43 
44 /* エラー確認 */
46 {
47  return YP_md_get_error_state(&spur);
48 }
49 
50 double YP_get_device_error_state(int id, int *err)
51 {
52  return YP_md_get_device_error_state(&spur, id, err);
53 }
54 
55 /* coordinatorとのメッセージ通信を開始する */
56 int YPSpur_initex(int msq_key)
57 {
58  return YPSpur_md_initex(&spur, msq_key);
59 }
60 
61 int YPSpur_init_socket(char *ip, int port)
62 {
63  return YPSpur_md_init_socket(&spur, ip, port);
64 }
65 
66 /* coordinatorとのメッセージ通信を開始する */
67 int YPSpur_init(void)
68 {
69  return YPSpur_md_init(&spur);
70 }
71 
72 /* 直線追従 */
73 int YPSpur_line(int cs, double x, double y, double theta)
74 {
75  return YPSpur_md_line(&spur, cs, x, y, theta);
76 }
77 
78 /* 直線追従 */
79 int YPSpur_stop_line(int cs, double x, double y, double theta)
80 {
81  return YPSpur_md_stop_line(&spur, cs, x, y, theta);
82 }
83 
84 /* 円弧追従 */
85 int YPSpur_circle(int cs, double x, double y, double r)
86 {
87  return YPSpur_md_circle(&spur, cs, x, y, r);
88 }
89 
90 /* 旋回 */
91 int YPSpur_spin(int cs, double theta)
92 {
93  return YPSpur_md_spin(&spur, cs, theta);
94 }
95 
96 /* 方位 */
97 int YPSpur_orient(int cs, double theta)
98 {
99  return YPSpur_md_orient(&spur, cs, theta);
100 }
101 
102 /* 急ブレーキ */
103 int YPSpur_stop(void)
104 {
105  return YPSpur_md_stop(&spur);
106 }
107 
108 /* 緊急停止 */
109 int YPSpur_freeze(void)
110 {
111  return YPSpur_md_freeze(&spur);
112 }
113 
114 /* 緊急停止解除 */
116 {
117  return YPSpur_md_unfreeze(&spur);
118 }
119 
120 /* ソフトウェア補助フリーモード */
121 int YPSpur_free(void)
122 {
123  return YPSpur_md_free(&spur);
124 }
125 
126 /* 制御なしフリーモード */
127 int YP_openfree(void)
128 {
129  return YP_md_openfree(&spur);
130 }
131 
132 /* 位置指定 */
133 int YPSpur_set_pos(int cs, double x, double y, double theta)
134 {
135  return YPSpur_md_set_pos(&spur, cs, x, y, theta);
136 }
137 
138 /* 位置指定 */
139 int YPSpur_adjust_pos(int cs, double x, double y, double theta)
140 {
141  return YPSpur_md_adjust_pos(&spur, cs, x, y, theta);
142 }
143 
144 /* 速度指定 */
145 int YPSpur_set_vel(double v)
146 {
147  return YPSpur_md_set_vel(&spur, v);
148 }
149 
150 /* 角速度指定 */
151 int YPSpur_set_angvel(double w)
152 {
153  return YPSpur_md_set_angvel(&spur, w);
154 }
155 
156 /* 速度指定 */
157 int YPSpur_set_accel(double dv)
158 {
159  return YPSpur_md_set_accel(&spur, dv);
160 }
161 
162 /* 角速度指定 */
163 int YPSpur_set_angaccel(double dw)
164 {
165  return YPSpur_md_set_angaccel(&spur, dw);
166 }
167 
168 /* 位置取得 */
169 double YPSpur_get_pos(int cs, double *x, double *y, double *theta)
170 {
171  return YPSpur_md_get_pos(&spur, cs, x, y, theta);
172 }
173 
174 /* 速度取得 */
175 double YPSpur_get_vel(double *v, double *w)
176 {
177  return YPSpur_md_get_vel(&spur, v, w);
178 }
179 
180 /* 速度取得 */
181 double YP_get_vref(double *v, double *w)
182 {
183  return YP_md_get_vref(&spur, v, w);
184 }
185 
186 /* 速度取得 */
187 double YP_get_wheel_vref(double *wr, double *wl)
188 {
189  return YP_md_get_wheel_vref(&spur, wr, wl);
190 }
191 
192 /* 速度取得 */
193 double YP_get_wheel_vel(double *wr, double *wl)
194 {
195  return YP_md_get_wheel_vel(&spur, wr, wl);
196 }
197 
198 /* 角度取得 */
199 double YP_get_wheel_ang(double *theta_r, double *theta_l)
200 {
201  return YP_md_get_wheel_ang(&spur, theta_r, theta_l);
202 }
203 
204 /* トルク取得 */
205 double YP_get_wheel_torque(double *torque_r, double *torque_l)
206 {
207  return YP_md_get_wheel_torque(&spur, torque_r, torque_l);
208 }
209 
210 /* 力取得 */
211 double YPSpur_get_force(double *trans, double *angular)
212 {
213  return YPSpur_md_get_force(&spur, trans, angular);
214 }
215 
216 /* 緊急停止状態取得 */
218 {
219  return YPSpur_md_isfreeze(&spur);
220 }
221 
222 /* 直接速度入力 */
223 int YPSpur_vel(double v, double w)
224 {
225  return YPSpur_md_vel(&spur, v, w);
226 }
227 
228 /* 内部パラメータの変更 */
229 int YP_set_parameter(int param_id, double value)
230 {
231  return YP_md_set_parameter(&spur, param_id, value);
232 }
233 
234 /* 内部パラメータの変更 */
235 int YP_set_parameter_array(int param_id, double *value)
236 {
237  return YP_md_set_parameter_array(&spur, param_id, value);
238 }
239 
240 /* 内部パラメータの取得 */
241 int YP_get_parameter(int param_id, double *value)
242 {
243  return YP_md_get_parameter(&spur, param_id, value);
244 }
245 
246 /* 内部パラメータの取得 */
247 int YP_get_parameter_array(int param_id, double *value)
248 {
249  return YP_md_get_parameter_array(&spur, param_id, value);
250 }
251 
252 /* 内部状態の変更 */
253 int YP_set_control_state(int control_id, int state)
254 {
255  return YP_md_set_control_state(&spur, control_id, state);
256 }
257 
258 /* 重力補償用地面の傾き指定 */
259 int YPSpur_tilt(int cs, double dir, double tilt)
260 {
261  return YPSpur_md_tilt(&spur, cs, dir, tilt);
262 }
263 
264 /* 位置判定 */
265 int YPSpur_near_pos(int cs, double x, double y, double r)
266 {
267  return YPSpur_md_near_pos(&spur, cs, x, y, r);
268 }
269 
270 /* 角度判定 */
271 int YPSpur_near_ang(int cs, double th, double d)
272 {
273  return YPSpur_md_near_ang(&spur, cs, th, d);
274 }
275 
276 /* 領域判定 */
277 int YPSpur_over_line(int cs, double x, double y, double theta)
278 {
279  return YPSpur_md_over_line(&spur, cs, x, y, theta);
280 }
281 
282 /* アナログ値取得 */
283 int YP_get_ad_value(int num)
284 {
285  return YP_md_get_ad_value(&spur, num);
286 }
287 
288 int YP_set_io_dir(unsigned char dir)
289 {
290  return YP_md_set_io_dir(&spur, dir);
291 }
292 
293 int YP_set_io_data(unsigned char data)
294 {
295  return YP_md_set_io_data(&spur, data);
296 }
297 
298 /* 直接タイヤ回転速度入力 */
299 int YP_wheel_vel(double r, double l)
300 {
301  return YP_md_wheel_vel(&spur, r, l);
302 }
303 
304 int YP_wheel_torque(double r, double l)
305 {
306  return YP_md_wheel_torque(&spur, r, l);
307 }
308 
309 int YP_set_wheel_vel(double r, double l)
310 {
311  return YP_md_set_wheel_vel(&spur, r, l);
312 }
313 
314 int YP_set_wheel_accel(double r, double l)
315 {
316  return YP_md_set_wheel_accel(&spur, r, l);
317 }
318 
319 int YP_wheel_ang(double r, double l)
320 {
321  return YP_md_wheel_ang(&spur, r, l);
322 }
323 
324 int YP_joint_torque(int id, double t)
325 {
326  return YP_md_joint_torque(&spur, id, t);
327 }
328 
329 int YP_joint_vel(int id, double v)
330 {
331  return YP_md_joint_vel(&spur, id, v);
332 }
333 
334 int YP_joint_ang(int id, double a)
335 {
336  return YP_md_joint_ang(&spur, id, a);
337 }
338 
339 int YP_joint_ang_vel(int id, double a, double v)
340 {
341  return YP_md_joint_ang_vel(&spur, id, a, v);
342 }
343 
344 int YP_set_joint_accel(int id, double a)
345 {
346  return YP_md_set_joint_accel(&spur, id, a);
347 }
348 
349 int YP_set_joint_vel(int id, double v)
350 {
351  return YP_md_set_joint_vel(&spur, id, v);
352 }
353 
354 double YP_get_joint_vel(int id, double *v)
355 {
356  return YP_md_get_joint_vel(&spur, id, v);
357 }
358 
359 double YP_get_joint_vref(int id, double *v)
360 {
361  return YP_md_get_joint_vref(&spur, id, v);
362 }
363 
364 double YP_get_joint_ang(int id, double *a)
365 {
366  return YP_md_get_joint_ang(&spur, id, a);
367 }
368 
369 double YP_get_joint_torque(int id, double *w)
370 {
371  return YP_md_get_joint_torque(&spur, id, w);
372 }
int YPSpur_adjust_pos(int cs, double x, double y, double theta)
Definition: libypspur.c:139
int YPSpur_md_set_vel(YPSpur *dev, double v)
Definition: libypspur-md.c:359
int YPSpur_md_initex(YPSpur *dev, int msq_key)
Definition: libypspur-md.c:81
int YPSpur_isfreeze(void)
Definition: libypspur.c:217
int YPSpur_unfreeze(void)
Definition: libypspur.c:115
int YPSpur_set_pos(int cs, double x, double y, double theta)
Definition: libypspur.c:133
int YP_md_wheel_ang(YPSpur *dev, double r, double l)
int YP_wheel_ang(double r, double l)
Definition: libypspur.c:319
int YPSpur_md_free(YPSpur *dev)
Definition: libypspur-md.c:277
int YPSpur_md_line(YPSpur *dev, int cs, double x, double y, double theta)
Definition: libypspur-md.c:114
int YPSpur_free(void)
Definition: libypspur.c:121
int YPSpur_set_angvel(double w)
Definition: libypspur.c:151
int YP_joint_ang_vel(int id, double a, double v)
Definition: libypspur.c:339
int YPSpur_init_socket(char *ip, int port)
Definition: libypspur.c:61
int YP_set_wheel_accel(double r, double l)
Definition: libypspur.c:314
int YP_md_joint_ang_vel(YPSpur *spur, int id, double a, double v)
int YPSpur_md_isfreeze(YPSpur *dev)
Definition: libypspur-md.c:704
double YP_get_wheel_torque(double *torque_r, double *torque_l)
Definition: libypspur.c:205
double YP_md_get_joint_vel(YPSpur *spur, int id, double *v)
double YPSpur_md_get_pos(YPSpur *dev, int cs, double *x, double *y, double *theta)
Definition: libypspur-md.c:439
int YPSpur_md_freeze(YPSpur *dev)
Definition: libypspur-md.c:239
int YP_set_joint_vel(int id, double v)
Definition: libypspur.c:349
double YP_md_get_wheel_vel(YPSpur *dev, double *wr, double *wl)
Definition: libypspur-md.c:572
int YP_set_joint_accel(int id, double a)
Definition: libypspur.c:344
int YPSpur_md_orient(YPSpur *dev, int cs, double theta)
Definition: libypspur-md.c:200
int YP_get_parameter(int param_id, double *value)
Definition: libypspur.c:241
int YPSpur_md_over_line(YPSpur *dev, int cs, double x, double y, double theta)
Definition: libypspur-md.c:966
int YP_set_parameter_array(int param_id, double *value)
Definition: libypspur.c:235
int YPSpur_md_set_pos(YPSpur *dev, int cs, double x, double y, double theta)
Definition: libypspur-md.c:315
int YPSpur_md_set_accel(YPSpur *dev, double v)
Definition: libypspur-md.c:399
int YP_md_set_io_dir(YPSpur *dev, unsigned char dir)
int YPSpur_md_circle(YPSpur *dev, int cs, double x, double y, double r)
Definition: libypspur-md.c:158
int YP_wheel_vel(double r, double l)
Definition: libypspur.c:299
int YP_md_wheel_torque(YPSpur *dev, double r, double l)
double YP_md_get_joint_torque(YPSpur *spur, int id, double *t)
int YP_md_set_parameter_array(YPSpur *dev, int param_id, double *value)
Definition: libypspur-md.c:778
int YPSpur_initex(int msq_key)
Definition: libypspur.c:56
double YP_get_vref(double *v, double *w)
Definition: libypspur.c:181
double YP_get_wheel_ang(double *theta_r, double *theta_l)
Definition: libypspur.c:199
static YPSpur spur
Definition: libypspur.c:42
double YP_md_get_joint_vref(YPSpur *spur, int id, double *v)
double YP_get_joint_vel(int id, double *v)
Definition: libypspur.c:354
int YPSpur_set_accel(double dv)
Definition: libypspur.c:157
int YPSpur_md_near_ang(YPSpur *dev, int cs, double th, double d)
Definition: libypspur-md.c:935
double YP_get_joint_ang(int id, double *a)
Definition: libypspur.c:364
int YP_md_set_io_data(YPSpur *dev, unsigned char data)
int YP_get_ad_value(int num)
Definition: libypspur.c:283
int YP_md_set_joint_accel(YPSpur *spur, int id, double a)
int YPSpur_md_stop_line(YPSpur *dev, int cs, double x, double y, double theta)
Definition: libypspur-md.c:136
int YP_md_wheel_vel(YPSpur *dev, double r, double l)
double YPSpur_md_get_force(YPSpur *dev, double *trans, double *angular)
Definition: libypspur-md.c:671
int YP_md_get_ad_value(YPSpur *dev, int num)
Definition: libypspur-md.c:998
int YP_get_parameter_array(int param_id, double *value)
Definition: libypspur.c:247
int YPSpur_init(void)
Definition: libypspur.c:67
int YPSpur_vel(double v, double w)
Definition: libypspur.c:223
int YPSpur_line(int cs, double x, double y, double theta)
Definition: libypspur.c:73
int YP_md_set_joint_vel(YPSpur *spur, int id, double v)
int YP_md_set_parameter(YPSpur *dev, int param_id, double value)
Definition: libypspur-md.c:756
int YPSpur_tilt(int cs, double dir, double tilt)
Definition: libypspur.c:259
int YPSpur_md_tilt(YPSpur *dev, int cs, double dir, double tilt)
Definition: libypspur-md.c:881
double YP_get_wheel_vel(double *wr, double *wl)
Definition: libypspur.c:193
int YP_get_error_state()
Definition: libypspur.c:45
int YPSpur_md_init(YPSpur *dev)
Definition: libypspur-md.c:108
double YP_md_get_wheel_vref(YPSpur *dev, double *wrref, double *wlref)
Definition: libypspur-md.c:539
double YP_get_device_error_state(int id, int *err)
Definition: libypspur.c:50
int YPSpur_md_near_pos(YPSpur *dev, int cs, double x, double y, double r)
Definition: libypspur-md.c:903
int YPSpur_set_angaccel(double dw)
Definition: libypspur.c:163
int YP_md_joint_ang(YPSpur *spur, int id, double a)
int YP_openfree(void)
Definition: libypspur.c:127
int YPSpur_spin(int cs, double theta)
Definition: libypspur.c:91
int YP_md_set_wheel_accel(YPSpur *dev, double r, double l)
double YPSpur_md_get_vel(YPSpur *dev, double *v, double *w)
Definition: libypspur-md.c:473
int YP_set_io_data(unsigned char data)
Definition: libypspur.c:293
double YP_get_joint_torque(int id, double *w)
Definition: libypspur.c:369
int YP_md_get_error_state(YPSpur *dev)
Definition: libypspur-md.c:43
int YP_md_get_parameter(YPSpur *dev, int param_id, double *value)
Definition: libypspur-md.c:800
int YPSpur_near_ang(int cs, double th, double d)
Definition: libypspur.c:271
double YP_md_get_wheel_ang(YPSpur *dev, double *theta_r, double *theta_l)
Definition: libypspur-md.c:605
int YPSpur_over_line(int cs, double x, double y, double theta)
Definition: libypspur.c:277
double YP_md_get_wheel_torque(YPSpur *dev, double *torque_r, double *torque_l)
Definition: libypspur-md.c:638
int YP_md_set_wheel_vel(YPSpur *dev, double r, double l)
double YPSpur_get_force(double *trans, double *angular)
Definition: libypspur.c:211
int YP_md_get_parameter_array(YPSpur *dev, int param_id, double *value)
Definition: libypspur-md.c:829
int YPSpur_md_set_angaccel(YPSpur *dev, double w)
Definition: libypspur-md.c:419
int YPSpur_md_unfreeze(YPSpur *dev)
Definition: libypspur-md.c:258
double YP_md_get_device_error_state(YPSpur *dev, int id, int *err)
Definition: libypspur-md.c:48
int YP_joint_ang(int id, double a)
Definition: libypspur.c:334
double YP_md_get_vref(YPSpur *dev, double *vref, double *wref)
Definition: libypspur-md.c:506
int YPSpur_md_init_socket(YPSpur *dev, char *ip, int port)
Definition: libypspur-md.c:94
double YPSpur_get_pos(int cs, double *x, double *y, double *theta)
Definition: libypspur.c:169
int state(YPSpur_state id)
Definition: param.c:64
int YPSpur_md_vel(YPSpur *dev, double v, double w)
Definition: libypspur-md.c:735
double YP_md_get_joint_ang(YPSpur *spur, int id, double *a)
int YP_joint_torque(int id, double t)
Definition: libypspur.c:324
int YPSpur_circle(int cs, double x, double y, double r)
Definition: libypspur.c:85
int YPSpur_stop(void)
Definition: libypspur.c:103
int YPSpur_md_adjust_pos(YPSpur *dev, int cs, double x, double y, double theta)
Definition: libypspur-md.c:337
int YP_md_joint_torque(YPSpur *spur, int id, double t)
int YPSpur_md_set_angvel(YPSpur *dev, double w)
Definition: libypspur-md.c:379
double YP_get_wheel_vref(double *wr, double *wl)
Definition: libypspur.c:187
int YP_md_openfree(YPSpur *dev)
Definition: libypspur-md.c:296
int YP_md_joint_vel(YPSpur *spur, int id, double v)
int YP_set_io_dir(unsigned char dir)
Definition: libypspur.c:288
int YPSpur_md_spin(YPSpur *dev, int cs, double theta)
Definition: libypspur-md.c:180
int YP_joint_vel(int id, double v)
Definition: libypspur.c:329
int YPSpur_stop_line(int cs, double x, double y, double theta)
Definition: libypspur.c:79
int YPSpur_md_stop(YPSpur *dev)
Definition: libypspur-md.c:220
int YP_set_wheel_vel(double r, double l)
Definition: libypspur.c:309
int YPSpur_freeze(void)
Definition: libypspur.c:109
int YPSpur_orient(int cs, double theta)
Definition: libypspur.c:97
double YPSpur_get_vel(double *v, double *w)
Definition: libypspur.c:175
double YP_get_joint_vref(int id, double *v)
Definition: libypspur.c:359
int YPSpur_near_pos(int cs, double x, double y, double r)
Definition: libypspur.c:265
int YP_md_set_control_state(YPSpur *dev, int control_id, int state)
Definition: libypspur-md.c:860
int YPSpur_set_vel(double v)
Definition: libypspur.c:145
int YP_wheel_torque(double r, double l)
Definition: libypspur.c:304
int YP_set_parameter(int param_id, double value)
Definition: libypspur.c:229
int YP_set_control_state(int control_id, int state)
Definition: libypspur.c:253


yp-spur
Author(s):
autogenerated on Sat May 11 2019 02:08:24