黄生:18120764596/微信 厦门圣企机电设备有限公司 固话:0592-6081295 QQ:2708880336
淘宝店铺:http://shop578899473.taobao.com/index.htm
nh.subscribe(sub);
IC697MEM717RR完整IC697MEM717RR完整IC697MEM717RR完整
}
void loop()
{
nh.spinOnce();
delay(1); }
接下来要设法透过Arduino在ROS的世界说话。最简单的方法是使用机器人启动档。虽然以下的档案内容非常简单,但是这里要追加启动档,如此一来即使是非常复杂的机器人,也能用一个指令启动。
$ cat rosservo.launch
$ roslaunch ./rosservo.lanch
rostopic指令可以看出ROS讯息传送到机器人的哪个部位。看了下面的程序代码就会,「/head/tilt」可以透过Arduino使用。讯息要使用「rostopic」传送。-1的选项只会发布(publish)讯息一次,通知/head/tilt传送一个浮点数。
$ rostopic list
/diagnostics
/head/tilt
/rosout
/rosout_agg
$ rostopic pub -1 /head/tiltstd_msgs/Float32 0.4
$ rostopic pub -1 /head/tilt std_msgs/Float320.9
这个阶段当中,能够将所有发布数值到ROS的已知方法用在控制伺服机上。假如从0改成1,伺服机就会全速运行。这本来并没有问题,但实际上我们想要逐渐加速以达到全速,然后再逐渐减速,停在目标角度上。假如伺服机骤然运转,机器人的动作就会变得僵硬,让周围的人吓一跳。
Terry和Houndbot都是ROS机器人,以6061个铝合金零件制造而成。项目的目标是要尽量让这些机器人自主运动。
以下的Python脚本程序会监听「/head/tilt/smooth」的讯息,朝「/head/tilt」发布许多讯息,好让伺服机转到目标角度之前慢慢加速,再慢慢迟旋转。当讯息抵达「/head/tilt/smooth」时一定会呼叫「moveServo_cb」。这个回调函式会从-90到+90度之间每10度产生1个数值,追加到角度数组当中。「sin()」会取这个角度,数值从-1到+1慢慢增加。该数值加1之后,范围就会变成0到+2,再除以2之后, 0到+1的曲线数值数组就完成了。然后再看看m数组当中,每当发布讯息时,就会稍微前进一点,范围在r之内,直到1*r或是全范围为止。
#!/usr/bin/env python
from time import sleep
import numpy as np
A06B-0033-B075
A06B-0352-B731
A06B-6055-H112
A06B-0033-B077
A06B-0358-B755
A06B-6058-H004
A06B-0033-B175
A06B-0369-B259
A06B-6058-H006
A06B-0034-B007
A06B-0371-B010
A06B-6058-H192
A06B-0034-B075
A06B-0371-B075
A06B-6058-H229
A06B-0034-B077
A06B-0371-B175
A06B-6058-H334
A06B-0034-B175
A06B-0371-B510 A06B-6059-H002
A06B-0034-B675
A06B-0372-B010
A06B-6059-H003
A06B-0061-B103
A06B-0372-B071
A06B-6059-H203
A06B-0063-B103
A06B-0372-B075
A06B-6059-H206
A06B-0063-B203
A06B-0372-B175
A06B-6059-H208
A06B-0063-B503
A06B-0372-B675
A06B-6059-H212
A06B-0075-B003
A06B-0373-B071
A06B-6059-H222
A06B-0075-B103
A06B-6060-H008
A06B-0075-B203
A06B-0373-B075
A06B-6063-H206
A06B-0075-B403
A06B-0373-B076
A06B-6063-H222
A06B-0075-B503
A06B-6064-H202
A06B-0077-B203
A06B-0373-B175
A06B-6064-H308
A06B-0101-B060
A06B-0373-B510
A06B-6064-H315
A06B-0106-B580
A06B-0373-B571
A06B-6066-H233
A06B-0113-B075
A06B-0373-B575
A06B-6066-H244