chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

電子設計 ? 來源:一板網 ? 作者:風箏 ? 2021-01-09 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

什么是ROS?

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

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

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

pIYBAF_5Ip2AFewhAABT7T60BtY340.png

ROS-Arduino交互管道

ROS與Arduino之間的通信

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

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

建立基礎架構

軟體設置

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

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

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

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

3. 根據此處提到的說明在計算機上安裝Arduino IDE。

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

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

pIYBAF_5Iq2APTasAAFMG11gjLE006.png

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

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

o4YBAF_5Ir6AdB4RAAFI03rP52I283.png

外部庫顯示在列表中

C. 安裝后,應該在IDE中看到示例草圖。

pIYBAF_5ItKASH8YAAGDCLQe5Y0059.png

庫中的可用示例草圖

硬件設置

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

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

2. 訂閱者:一個LED連接到Arduino開發(fā)板上,并使用通過終端從ROS用戶那里獲得的指令來打開/關閉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);

}

說明

該代碼導入了ros_lib庫和std_msgs :: String和std_msgs :: UInt16的標準ROS消息。聲明了用于存儲ROS數據類型和Arduino板引腳的變量。

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

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

SubscriberCallback()是在Arduino訂閱者節(jié)點上接收數據時調用的方法?;卣{方法檢查ROS主題數據是否為HIGH,并相應地切換連接的LED。

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

程序執(zhí)行

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

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

1. 啟動ROS Master-roscore

2. 在計算機上運行rosserial客戶端-rosrun rosserial_python serial_node.py / dev / tty 《USB?;駻CM#》

3. 在運行時確定ttyUSB或ttyACM的串行端口??梢詮腁rduino IDE或使用dmesg | grep tty找到確切的端口號。

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

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

pIYBAF_5IwWAfV0UAAZ3QJE-880826.png

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    213

    文章

    30265

    瀏覽量

    217960
  • Arduino
    +關注

    關注

    190

    文章

    6509

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    詳細介紹機場智能指路機器人的工作原理

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

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】視覺實現的基礎算法的應用

    閱讀心得體會:ROS2機器人視覺與地圖構建技術 通過對本書第7章(ROS2視覺應用)和第8章(ROS2地圖構建)的學習,我對機器人視覺感知和
    發(fā)表于 05-03 19:41

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

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

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】+ROS2應用案例

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

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】+內容初識

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

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

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

    名單公布!【書籍評測活動NO.58】ROS 2智能機器人開發(fā)實踐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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