99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Arduino和ROS來創(chuàng)建更智能的機(jī)器人系統(tǒng)

電子設(shè)計(jì) ? 來源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2021-01-09 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Arduino開發(fā)板經(jīng)常用于制作一些小型的機(jī)器人,并具有簡單的邏輯定義控制。但是,由于板載計(jì)算能力和軟件有限,開發(fā)人員常常無法升級(jí)到更復(fù)雜的機(jī)器人。通常,隨著開發(fā)人員變得越來越有經(jīng)驗(yàn),他們會(huì)尋專用于機(jī)器人的軟件,因?yàn)锳rduino僅提供部分控件。

在本篇文章中,我們主要介紹了中間件軟件框架Robot Operating System(ROS),并引導(dǎo)您通過Arduino設(shè)置和使用ROS來創(chuàng)建更智能的機(jī)器人系統(tǒng)。

什么是ROS?

機(jī)器人操作系統(tǒng)(ROS)是最流行和使用最廣泛的機(jī)器人中間件軟件框架之一。這是一個(gè)開放源代碼平臺(tái),可幫助創(chuàng)客和開發(fā)人員在無需重新發(fā)明輪子的情況下開始使用機(jī)器人軟件。 ROS提供了一種標(biāo)準(zhǔn)的通信體系結(jié)構(gòu),用于無縫集成、使用、開發(fā)和部署機(jī)器人系統(tǒng)的不同組件,包括控制、感知、計(jì)劃等。這是一個(gè)與語言無關(guān)的平臺(tái),無論部署在何處,都可以為不同的計(jì)算機(jī)提供跨平臺(tái)的通信支持。

Arduino可能是最常用的開源微控制器開發(fā)板,它提供了易于使用的軟件-硬件界面以及不斷擴(kuò)展的用戶社區(qū)。 Arduino幾乎與所有數(shù)字和模擬電路以及支持串行通信接口(如SPI、I2CUART)的外部設(shè)備兼容。

基于ROS的軟件框架運(yùn)行高級(jí)算法和流程,例如機(jī)器人模型的推理、過濾、運(yùn)動(dòng)策略生成、控制器算法等。安裝在機(jī)器人上的Arduino控制器用于執(zhí)行低級(jí)/嵌入式控制和傳感。它包括、電動(dòng)機(jī)控制、溫度和超聲傳感器、IMU和車輪編碼器以及其他設(shè)備。

pIYBAF_5Ip2AFewhAABT7T60BtY340.png

ROS-Arduino交互管道

ROS與Arduino之間的通信

ROS通信模塊基于自定義的TCPROS協(xié)議進(jìn)行操作,使用兩種方式:多對(duì)多發(fā)布者-訂閱者方法和點(diǎn)對(duì)點(diǎn)更快服務(wù)方法。本篇文章使用發(fā)布者/訂閱者在Arduino開發(fā)板和機(jī)器上運(yùn)行的ROS之間進(jìn)行通信。

rosserial ROS軟件包使用Arduino的通用異步接收器/發(fā)送器(UART)通信,并將開發(fā)板轉(zhuǎn)換為ROS節(jié)點(diǎn),該節(jié)點(diǎn)可以發(fā)布ROS消息,也可以訂閱消息。 Arduino ROS節(jié)點(diǎn)發(fā)布者可以從板上將數(shù)據(jù)(從傳感器或機(jī)器人狀態(tài))發(fā)送到運(yùn)行ROS的機(jī)器,而Arduino ROS節(jié)點(diǎn)訂閱者可以從機(jī)器獲取指令。 ros_lib Arduino庫使Arduino開發(fā)板能夠與ROS通信。

建立基礎(chǔ)架構(gòu)

軟體設(shè)置

1. 在計(jì)算機(jī)(筆記本電腦/ PC)上安裝ROS。此處提供詳細(xì)步驟。注意:這可以在Linux機(jī)器上運(yùn)行的ROS 1。

2. 在計(jì)算機(jī)上安裝rosserial(發(fā)行版可以是kinetic/indigo/melodic)。

sudo apt-get install ros-《distro》-rosserial

sudo apt-get install ros-《distro》-rosserial-arduino

3. 根據(jù)此處提到的說明在計(jì)算機(jī)上安裝Arduino IDE。

4. 在IDE中安裝ros_lib軟件包。

a. 安裝軟件包的最簡單方法是使用Arduino IDE。導(dǎo)航到IDE中的Sketch 》 Include Library 》 Manage Library,然后搜索rosserial軟件包

pIYBAF_5Iq2APTasAAFMG11gjLE006.png

下拉菜單搜索新的Arduino軟件包

b. Arduino IDE將所有外部庫存儲(chǔ)在?/ Arduino / libraries文件夾位置下。它將這些庫加載到開發(fā)環(huán)境中,并且可以在IDE中看到。安裝后,可以在下拉列表中看到Rosserial Arduino庫。

o4YBAF_5Ir6AdB4RAAFI03rP52I283.png

外部庫顯示在列表中

C. 安裝后,應(yīng)該在IDE中看到示例草圖。

pIYBAF_5ItKASH8YAAGDCLQe5Y0059.png

庫中的可用示例草圖

硬件設(shè)置

我們使用簡單的設(shè)置將Arduino開發(fā)板用作發(fā)布者和訂閱者。

1. 發(fā)布者:一個(gè)按鈕連接到Arduino開發(fā)板上,并且被切換以通過ROS將數(shù)字高/低信號(hào)發(fā)送到機(jī)器。該消息顯示在機(jī)器的終端中。

2. 訂閱者:一個(gè)LED連接到Arduino開發(fā)板上,并使用通過終端從ROS用戶那里獲得的指令來打開/關(guān)閉LED。

硬件連接

o4YBAF_5IuWAJnLJAAEMQu6tRFo533.png

代碼和說明

Arduino代碼

#include 《ros.h》

#include 《std_msgs/String.h》

#include 《std_msgs/UInt16.h》

#define BUTTON 8

#define LED 13

ros::NodeHandle node_handle;

std_msgs::String button_msg;

std_msgs::UInt16 led_msg;

void subscriberCallback(const std_msgs::UInt16& led_msg) {

if (led_msg.data == 1) {

digitalWrite(LED, HIGH);

} else {

digitalWrite(LED, LOW);

}

}

ros::Publisher button_publisher(“button_press”, &button_msg);

ros::Subscriber《std_msgs::UInt16》 led_subscriber(“toggle_led”, &subscriberCallback);

void setup()

{

pinMode(LED, OUTPUT);

pinMode(BUTTON, INPUT);

node_handle.initNode();

node_handle.advertise(button_publisher);

node_handle.subscribe(led_subscriber);

}

void loop()

{

if (digitalRead(BUTTON) == HIGH) {

button_msg.data = “Pressed”;

} else {

button_msg.data = “NOT pressed”;

}

button_publisher.publish( &button_msg );

node_handle.spinOnce();

delay(100);

}

說明

該代碼導(dǎo)入了ros_lib庫和std_msgs :: String和std_msgs :: UInt16的標(biāo)準(zhǔn)ROS消息。聲明了用于存儲(chǔ)ROS數(shù)據(jù)類型和Arduino板引腳的變量。

該代碼聲明了一個(gè)名為button_publisher的發(fā)布者,該發(fā)布者將std_msgs :: String數(shù)據(jù)類型的button_msg發(fā)布到button_press主題。同樣,名為led_subscriber的訂閱者訂閱了toggle_led主題,該主題獲取std_msgs :: UInt6數(shù)據(jù)類型。

聲明ROS節(jié)點(diǎn)句柄,然后在setup()方法中對(duì)其進(jìn)行初始化。節(jié)點(diǎn)句柄為發(fā)布者做廣告,并訂閱該主題。

SubscriberCallback()是在Arduino訂閱者節(jié)點(diǎn)上接收數(shù)據(jù)時(shí)調(diào)用的方法?;卣{(diào)方法檢查ROS主題數(shù)據(jù)是否為HIGH,并相應(yīng)地切換連接的LED。

最后,loop()方法運(yùn)行一個(gè)無限循環(huán),并從按鈕中讀取信息并將其發(fā)布到ROS。節(jié)點(diǎn)句柄調(diào)用spinOnce()來處理通信。

程序執(zhí)行

通過USB電纜將Arduino Uno開發(fā)板連接到筆記本電腦,并確認(rèn)該板出現(xiàn)在Arduino IDE的可用串行端口列表中。編譯代碼,選擇板子類型并將其上傳到開發(fā)板。

上載代碼后,在機(jī)器的終端上執(zhí)行以下命令。

1. 啟動(dòng)ROS Master-roscore

2. 在計(jì)算機(jī)上運(yùn)行rosserial客戶端-rosrun rosserial_python serial_node.py / dev / tty 《USB#或ACM?!?/p>

3. 在運(yùn)行時(shí)確定ttyUSB或ttyACM的串行端口。可以從Arduino IDE或使用dmesg | grep tty找到確切的端口號(hào)。

4. 讀取是否按Arduino板上的按鈕返回的已發(fā)布數(shù)據(jù)-rostopic echo button_press

5. 發(fā)布數(shù)據(jù)以切換Arduino上連接的LED-rostopic pub toggle_led std_msgs / UInt16“ data:0”數(shù)據(jù)為“ 0”關(guān)閉LED,“ 1”打開LED。

pIYBAF_5IwWAfV0UAAZ3QJE-880826.png

使用多個(gè)終端選項(xiàng)卡執(zhí)行指令并在同一屏幕上觀察響應(yīng)

rosserial提供了一個(gè)非常標(biāo)準(zhǔn)的平臺(tái),允許創(chuàng)客和開發(fā)人員在Arduino和ROS之間無縫連接。它可以使用兩種非常著名和有用的技術(shù)來探索機(jī)器人技術(shù)的新機(jī)遇。這種方法允許以非常低的成本為機(jī)器人系統(tǒng)提供分布式計(jì)算、集中控制、控制抽象以及其他一些好處。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    29748

    瀏覽量

    212928
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192203
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    詳細(xì)介紹機(jī)場智能指路機(jī)器人的工作原理

    機(jī)場智能指路機(jī)器人主要依靠感知系統(tǒng)、定位系統(tǒng)、導(dǎo)航系統(tǒng)智能交互
    發(fā)表于 05-10 18:26

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】視覺實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用

    閱讀心得體會(huì):ROS2機(jī)器人視覺與地圖構(gòu)建技術(shù) 通過對(duì)本書第7章(ROS2視覺應(yīng)用)和第8章(ROS2地圖構(gòu)建)的學(xué)習(xí),我對(duì)機(jī)器人視覺感知和
    發(fā)表于 05-03 19:41

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】機(jī)器人入門的引路書

    ROS的全稱:Robot Operating System 機(jī)器人操作系統(tǒng) ROS的 目的 :ROS支持通用庫,是通信總線,協(xié)調(diào)多個(gè)傳感器
    發(fā)表于 04-30 01:05

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】+ROS2應(yīng)用案例

    的知識(shí),還需要對(duì)ROS 2的節(jié)點(diǎn)通信和數(shù)據(jù)處理有一定的了解。通過實(shí)踐這一部分內(nèi)容,我掌握了如何在ROS 2中實(shí)現(xiàn)二維碼識(shí)別,這對(duì)于提高機(jī)器人智能性和交互性具有重要意義。 地圖構(gòu)建:S
    發(fā)表于 04-27 11:42

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】+內(nèi)容初識(shí)

    規(guī)劃:導(dǎo)航是機(jī)器人自主運(yùn)行的關(guān)鍵功能。書中詳細(xì)介紹了基于 ROS 2 的導(dǎo)航系統(tǒng),包括地圖創(chuàng)建、路徑規(guī)劃和導(dǎo)航控制等環(huán)節(jié)。首先,通過激光雷達(dá)等傳感器獲取環(huán)境信息,使用 SLAM(Sim
    發(fā)表于 04-27 11:24

    研華科技加速智能自主系統(tǒng)機(jī)器人應(yīng)用發(fā)展

    研華科技近日舉辦“智能自主系統(tǒng)機(jī)器人應(yīng)用伙伴高峰論壇”,將攜手生態(tài)伙伴,打造靈活且ROS兼容的機(jī)器人解決方案。
    的頭像 發(fā)表于 03-11 13:46 ?410次閱讀

    名單公布!【書籍評(píng)測活動(dòng)NO.58】ROS 2智能機(jī)器人開發(fā)實(shí)踐

    機(jī)器人、家用娛樂機(jī)器人,大到智能駕駛汽車、人形機(jī)器人,都是未來會(huì)并存的機(jī)器人形態(tài)。 不過,當(dāng)年遵循“提高
    發(fā)表于 03-03 14:18

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人的基礎(chǔ)模塊

    具身智能機(jī)器人的基礎(chǔ)模塊,這個(gè)是本書的第二部分內(nèi)容,主要分為四個(gè)部分:機(jī)器人計(jì)算系統(tǒng),自主機(jī)器人的感知
    發(fā)表于 01-04 19:22

    《具身智能機(jī)器人系統(tǒng)》第10-13章閱讀心得之具身智能機(jī)器人計(jì)算挑戰(zhàn)

    閱讀《具身智能機(jī)器人系統(tǒng)》第10-13章,我對(duì)具身智能機(jī)器人的工程實(shí)踐有了全新認(rèn)識(shí)。第10章從實(shí)時(shí)性角度剖析了
    發(fā)表于 01-04 01:15

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】+兩本互為支持的書

    如何使用PyTorch進(jìn)行數(shù)字圖像處理,它借助攝像頭獲取視頻的圖像信息,然后通過已有的圖像識(shí)別框架模型經(jīng)深度學(xué)習(xí)和優(yōu)化以達(dá)到更精準(zhǔn)的識(shí)別結(jié)果,從而為進(jìn)一步的執(zhí)行處理提供數(shù)據(jù)支持和依據(jù)。而《具身智能機(jī)器人
    發(fā)表于 01-01 15:50

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人大模型

    近年來,人工智能領(lǐng)域的大模型技術(shù)在多個(gè)方向上取得了突破性的進(jìn)展,特別是在機(jī)器人控制領(lǐng)域展現(xiàn)出了巨大的潛力。在“具身智能機(jī)器人大模型”部分,作者研究并探討了大模型如何提升
    發(fā)表于 12-29 23:04

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】1.初步理解具身智能

    感謝 感謝電子發(fā)燒友網(wǎng)社區(qū)給予《具身智能機(jī)器人系統(tǒng)》試讀機(jī)會(huì)。在這知識(shí)的盛宴中,我感受到社區(qū)的關(guān)懷與支持。定不負(fù)期望,認(rèn)真研讀,分享所學(xué),回饋社區(qū)。 一、本書大綱 《具身智能
    發(fā)表于 12-28 21:12

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】+初品的體驗(yàn)

    《具身智能機(jī)器人系統(tǒng)》 一書由甘一鳴、俞波、萬梓燊、劉少山老師共同編寫,其封面如圖1所示。 本書共由5部分組成,其結(jié)構(gòu)和內(nèi)容如圖2所示。 該書可作為高校和科研機(jī)構(gòu)的教材,為學(xué)生和研究人員提供
    發(fā)表于 12-20 19:17

    《具身智能機(jī)器人系統(tǒng)》第1-6章閱讀心得之具身智能機(jī)器人系統(tǒng)背景知識(shí)與基礎(chǔ)模塊

    與環(huán)境持續(xù)互動(dòng)優(yōu)化決策策略。書中還進(jìn)一步討論了強(qiáng)化學(xué)習(xí)的基本原理,包括狀態(tài)空間、動(dòng)作空間、獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì),以及策略網(wǎng)絡(luò)的訓(xùn)練方法。 具身智能機(jī)器人系統(tǒng)是一個(gè)多學(xué)科知識(shí)交叉的復(fù)雜工程體
    發(fā)表于 12-19 22:26

    ROSCon China 2024 | RDK第一本教材來了!地瓜機(jī)器人與古月居發(fā)布新書《ROS 2智能機(jī)器人開發(fā)實(shí)踐》

    12月7日-8日,為期兩天的ROSCon China 2024在上海圓滿落幕,來自全球的ROS專家學(xué)者、開發(fā)者、企業(yè)代表齊聚一堂,共享機(jī)器人前沿技術(shù)成果。地瓜機(jī)器人攜手眾多RDK生態(tài)產(chǎn)品亮相,并聯(lián)手古月居共同推出首本基于RDK
    的頭像 發(fā)表于 12-10 18:48 ?1195次閱讀
    ROSCon China 2024 | RDK第一本教材來了!地瓜<b class='flag-5'>機(jī)器人</b>與古月居發(fā)布新書《<b class='flag-5'>ROS</b> 2<b class='flag-5'>智能</b><b class='flag-5'>機(jī)器人</b>開發(fā)實(shí)踐》