做為ROS的入門篇我們來看看如何控制伺服機(jī)。伺服機(jī)的缺點(diǎn)是會(huì)盡快遵照指令運(yùn)轉(zhuǎn),因此頭部常常會(huì)突然活動(dòng),以至于失去平衡。不過使用ROS之后,就可以進(jìn)行正弦曲線運(yùn)動(dòng),讓機(jī)器人保持穩(wěn)定。由于可以在ROS當(dāng)中進(jìn)行這項(xiàng)操作,因此無須改寫控制用的程序代碼。另外,連接伺服機(jī)和ROS的程序代碼,以及伺服機(jī)的硬件都無須變更。再者,程序代碼還可以任意使用。
ROS很適合用在Ubuntu或Debian上,無須編譯。建置時(shí)要在Linux機(jī)器上執(zhí)行Ubuntu,使用業(yè)余用伺服機(jī)、Arduino和普通的導(dǎo)線。ROS要在Ubuntu機(jī)器上啟動(dòng),訊息則透過USB傳送到Arduino。只要安裝二進(jìn)制的ROS套件,就會(huì)在主控臺(tái)程序(像是gnome-terminal或konsole)追加以下指令,這樣Arduino系統(tǒng)就能辨識(shí)ROS函式庫。
cd~/sketchbook/libraries
rm-rf ros_lib
rosrunrosserial_arduino make_l ibraries.py .
Arduino的程序
接下來要將程序代碼上傳到Arduino當(dāng)中,執(zhí)行低階的伺服機(jī)控制,以便能從Linux機(jī)器操作。這時(shí)要以限制范圍內(nèi)的百分比(0.0~1.0)指定伺服機(jī)的位置。之所以使用百分比而不是寫明角度,是因?yàn)锳rduino的程序代碼限制了正確的角度,要避免在指定角度時(shí)發(fā)生沖突。
就如各位所見,使用ROS之后,一般的循環(huán)函數(shù)就會(huì)變得相當(dāng)簡(jiǎn)單。循環(huán)函數(shù)只會(huì)訂閱(subscribe)數(shù)據(jù),任何Arduino循環(huán)都一樣。設(shè)定時(shí)要將ROS初始化,將各個(gè)ROS訊息訂閱者的訂閱叫出來。每個(gè)訂閱者會(huì)占據(jù)Arduino的RAM,數(shù)量取決于要用程序代碼做什么,以6個(gè)到12個(gè)為限。
Servo servo;
void servo_cb( const std_msgs::Float32& msg )
{
const float min = 45;
const float range = 90;
float v = msg.data;
if( v > 1 ) v = 1;
if( v < 0 ) v = 0;
float angle = min + (range * v);
servo.write(angle);
}
ros::Subscriber
ros::NodeHandle nh;
void setup()
{
servo.attach(SERVOPIN);
nh.initNode();
nh.subscribe(sub);
}
void loop()
{
nh.spinOnce();
delay(1); }A06B-0172-B577 A06B-0725-B203 A06B-6097-H206
A06B-0176-B077 A06B-0727-B102 A06B-6102-H122
A06B-0177-B075 A06B-0727-B192
A06B-0183-B777 A06B-0727-B202 A06B-6102-H206
A06B-0185-B077 A06B-0727-B304 A06B-6102-H211
A06B-0205-B000 A06B-0728-B102 A06B-6102-H215
A06B-0205-B400 A06B-0728-B920
A06B-0205-B605 A06B-0728-B951 A06B-6102-H222
A06B-0213-B100 A06B-0729-B194 A06B-6102-H226
A06B-0215-B605 A06B-0729-B202 A06B-6104-H245
A06B-0216-B100 A06B-0732-B201
A06B-0225-B200 A06B-0745-B600 A06B-6110-H006
A06B-0226-B001 A06B-0750-B100 A06B-6110-H011
A06B-0226-B200 A06B-0753-B101
A06B-0227-B000 A06B-0753-B200
A06B-0227-B100 A06B-0753-B302
TSXPSY2600配件TSXPSY2600配件TSXPSY2600配件
A06B-0227-B200 A06B-0753-B394 A06B-6110-H015
A06B-0227-B300 A06B-0754-B100
A06B-0235-B005 A06B-0754-B201
A06B-0235-B605 A06B-0754-B230 A06B-6110-H026
A06B-0239-B200 A06B-0754-B600
A06B-0241-B101 A06B-0755-B100 A06B-6110-H030
A06B-0243-B605 A06B-0755-B201
A06B-0247-B200 A06B-0755-B301 A06B-6110-H037
A06B-0247-B401 A06B-0755-B394 A06B-6110-H045
我們能夠及時(shí)地報(bào)出優(yōu)惠的價(jià)格和迅捷的交貨期;國(guó)內(nèi)用戶采購國(guó)外備件受到獨(dú)家代理壟斷價(jià)格時(shí),我們會(huì)給用戶提供一個(gè)比較的機(jī)會(huì),并且為客戶提供最佳的解決方案。由于我們的訂單集中,訂貨量大,因此我們能提供頗具競(jìng)爭(zhēng)力的價(jià)格并能夠迅速交貨,我們長(zhǎng)期以來致力于解決國(guó)內(nèi)用戶采購國(guó)外備件中的疑難問題,并為廣大用戶提供電氣及工控自動(dòng)化成套設(shè)備的購銷、現(xiàn)場(chǎng)調(diào)試等全面周到的服務(wù)。
產(chǎn)品價(jià)格:4586.00 元/個(gè) 起
發(fā)貨地址:福建廈門包裝說明:不限
產(chǎn)品數(shù)量:15.00 個(gè)產(chǎn)品規(guī)格:不限
信息編號(hào):116843898公司編號(hào):16317661
相關(guān)產(chǎn)品:發(fā)那科,西門子,施耐德
本頁鏈接:http://www.westyellowstonecomfortinn.com/wvs116843898.html
以上信息由企業(yè)自行發(fā)布,該企業(yè)負(fù)責(zé)信息內(nèi)容的完整性、真實(shí)性、準(zhǔn)確性和合法性。免費(fèi)黃頁網(wǎng)對(duì)此不承擔(dān)任何責(zé)任。
馬上查看收錄情況:
百度
360搜索
搜狗