黃生:18120764596/微信 廈門圣企機(jī)電設(shè)備有限公司 固話:0592-6081295 QQ:2708880336
淘寶店鋪:http:///index.htm
nh.subscribe(sub);
IC697MEM717RR完整IC697MEM717RR完整IC697MEM717RR完整
}
void loop()
{
nh.spinOnce();
delay(1); }
接下來(lái)要設(shè)法透過Arduino在ROS的世界說(shuō)話。最簡(jiǎn)單的方法是使用機(jī)器人啟動(dòng)檔。雖然以下的檔案內(nèi)容非常簡(jiǎn)單,但是這里要追加啟動(dòng)檔,如此一來(lái)即使是非常復(fù)雜的機(jī)器人,也能用一個(gè)指令啟動(dòng)。
$ cat rosservo.launch
$ roslaunch ./rosservo.lanch
rostopic指令可以看出ROS訊息傳送到機(jī)器人的哪個(gè)部位??戳讼旅娴某绦虼a就會(huì),「/head/tilt」可以透過Arduino使用。訊息要使用「rostopic」傳送。-1的選項(xiàng)只會(huì)發(fā)布(publish)訊息一次,通知/head/tilt傳送一個(gè)浮點(diǎn)數(shù)。
$ 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
這個(gè)階段當(dāng)中,能夠?qū)⑺邪l(fā)布數(shù)值到ROS的已知方法用在控制伺服機(jī)上。假如從0改成1,伺服機(jī)就會(huì)全速運(yùn)行。這本來(lái)并沒有問題,但實(shí)際上我們想要逐漸加速以達(dá)到全速,然后再逐漸減速,停在目標(biāo)角度上。假如伺服機(jī)驟然運(yùn)轉(zhuǎn),機(jī)器人的動(dòng)作就會(huì)變得僵硬,讓周圍的人嚇一跳。
Terry和Houndbot都是ROS機(jī)器人,以6061個(gè)鋁合金零件制造而成。項(xiàng)目的目標(biāo)是要盡量讓這些機(jī)器人自主運(yùn)動(dòng)。
以下的Python腳本程序會(huì)監(jiān)聽「/head/tilt/smooth」的訊息,朝「/head/tilt」發(fā)布許多訊息,好讓伺服機(jī)轉(zhuǎn)到目標(biāo)角度之前慢慢加速,再慢慢遲旋轉(zhuǎn)。當(dāng)訊息抵達(dá)「/head/tilt/smooth」時(shí)一定會(huì)呼叫「moveServo_cb」。這個(gè)回調(diào)函式會(huì)從-90到+90度之間每10度產(chǎn)生1個(gè)數(shù)值,追加到角度數(shù)組當(dāng)中。「sin()」會(huì)取這個(gè)角度,數(shù)值從-1到+1慢慢增加。該數(shù)值加1之后,范圍就會(huì)變成0到+2,再除以2之后, 0到+1的曲線數(shù)值數(shù)組就完成了。然后再看看m數(shù)組當(dāng)中,每當(dāng)發(fā)布訊息時(shí),就會(huì)稍微前進(jìn)一點(diǎn),范圍在r之內(nèi),直到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