<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Micro-ROS的主要特點和安裝方法

CHANBAEK ? 來源:魚香ROS ? 作者:小魚 ? 2023-07-15 16:50 ? 次閱讀

你好,我是小魚。前面我們通過對嵌入式開發的學習,了解了如何通過代碼來和硬件打交道,但如果你想擁抱ROS的強大生態,還需要把我們的硬件系接入到ROS中來,MicroROS就是幫你完成這一事情的一大利器。所以本章的重點就是帶你一起學習MicroROS的使用。

友情提示:和我們課程的名稱一樣,本教程中所有代碼都非常建議跟著敲一遍,不要直接復制粘貼,寫了才是自己的。

硬件開發平臺

為方便學習,本教程配套的硬件是小魚自制的MicroROS學習板,同時該板可以作為下一章節搭建實體移動機器人的主控板以及后續制作機械臂的驅動板使用。

板載資源圖如下:

圖片

該主控板可以在小魚的店鋪直接購買,性價比接地氣,點擊左下角閱讀原文直達魚香小鋪。

1.Micro-ROS介紹與服務安裝

你好,我是愛吃魚香ROS的小魚。本節我們主要介紹下Micro-ROS幾大主要特點。

圖片

先上系統框架圖,下面再一一介紹。

一、特點1:運行在微控制器上的ROS2

首先從名稱看,Micro-ROS,Micro指的就是microcontrollers即微控制器。

核心作用就是上面這句話micro-ROS puts ROS 2 onto microcontrollers。既然是在微控制器上,因硬件資源受限,其功能肯定會有所裁剪,但核心的ROS2通信功能依然保有。

圖片

二、特點2:MicroROS支持多種通信協議并依賴Agent

圖片

所謂Agen其實就是一個代理, 微控制器可以通過串口,藍牙、以太網、Wifi等多種協議將數據傳遞給Agent,Agent再將其轉換成ROS2的話題等數據,以此完成通信。

三、特點3:通過RCLC-API調用MicroROS

圖片

因為MicroROS遵循RCLCAPI,所以和在上位機中使用Python或者C++調用MicroROS有所不同,最終代碼風格如下面這段所示

#include < rcl/rcl.h >
#include < rclc/rclc.h >
#include < rclc/executor.h >


rclc_executor_t executor;
rclc_support_t support;
rcl_allocator_t allocator;
rcl_node_t node;
rcl_timer_t timer;




void setup() {
  // Configure serial transport
  Serial.begin(115200);
  set_microros_serial_transports(Serial);
  delay(2000);


  allocator = rcl_get_default_allocator();


  //create init_options
  RCCHECK(rclc_support_init(&support, 0, NULL, &allocator));


  // create node
  RCCHECK(rclc_node_init_default(&node, "micro_ros_platformio_node", "", &support));


  // create publisher
  RCCHECK(rclc_publisher_init_default(
    &publisher,
    &node,
    ROSIDL_GET_MSG_TYPE_SUPPORT(std_msgs, msg, Int32),
    "micro_ros_platformio_node_publisher"));




  // create executor
  RCCHECK(rclc_executor_init(&executor, &support.context, 1, &allocator));
  RCCHECK(rclc_executor_add_timer(&executor, &timer));


  msg.data = 0;
}

四、在上位機上安裝Agent

我們使用Docker來進行Agent的安裝。

4.1 安裝Docker

打開終端,復制粘貼輸入下面代碼

wget http://fishros.com/install -O fishros && . fishros

接著輸入密碼,在下面的界面輸入8,一鍵安裝Docker,完成后等待即可。

圖片

4.2 運行Agent

安裝完成Docker后打開終端,輸入下面的指令

sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO serial --dev /dev/ttyUSB0 -v6

稍微等待下載完成,看到如下界面表示成功啟動。

圖片

上面的指令是使用串口通訊協議運行microros-agent,還可以通過UDP、TCP、CAN等協議運行,具體指令如下

# UDPv4 micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6


# Serial micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO serial --dev [YOUR BOARD PORT] -v6


# TCPv4 micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO tcp4 --port 8888 -v6


# CAN-FD micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO canfd --dev [YOUR CAN INTERFACE] -v6

五、總結

本節我們主要介紹了MicroROS的主要特點,接著介紹使用Docker下載和運行Agent,既然搞定了上位機,下一節我們正是開始在開發板上編寫MicroROS節點,然后測試與上位機的連接是否正常。

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

    關注

    5006

    文章

    18440

    瀏覽量

    292132
  • 機器人
    +關注

    關注

    207

    文章

    27310

    瀏覽量

    202133
  • Micro
    +關注

    關注

    2

    文章

    238

    瀏覽量

    34653
  • 學習板
    +關注

    關注

    0

    文章

    40

    瀏覽量

    12089
  • ROS
    ROS
    +關注

    關注

    1

    文章

    273

    瀏覽量

    16783
收藏 人收藏

    評論

    相關推薦

    Micro-ROS:把ROS2放在MCU上

    了機器人的發展。 ? ROS便是為機器人在研發的過程中的代碼復用提供支持的開源框架,大量的機器人開源項目,從感知到控制、從定位到構圖、從導航到可視化,幾乎都使用ROS作為基礎。 ? Micro-ROS從何而來? ?
    的頭像 發表于 04-07 07:13 ?6858次閱讀

    瑞薩電子RA MCU集成micro-ROS框架,簡化專業機器人開發

     瑞薩與eProsima攜手,推動機器人技術在工業和物聯網領域的應用,EK-RA6M5評估套件現已成為micro-ROS官方支持開發板。
    發表于 09-02 15:57 ?2147次閱讀
    瑞薩電子RA MCU集成<b class='flag-5'>micro-ROS</b>框架,簡化專業機器人開發

    Linux的主要特點 發展 安裝

    Linux的主要特點 發展 安裝
    發表于 08-13 16:20

    貼片頭的分類和主要特點

      從技術發展來看,貼片頭已經由機械對中發展到光學對中校正。目前,從主流貼片頭結構形式來看,主要有平動式、轉動式和組合式3種,轉動式中細分為轉塔式、旋轉式和小轉塔式3種。本節詳細介紹平動式、旋轉式和轉塔式3種主要的貼片頭?! 「鞣N貼片頭
    發表于 09-03 10:46

    什么是Lora?LoRa的主要特點?

    什么是Lora?LoRa的主要特點?LoRa的系統架構?LoRa的協議棧?
    發表于 07-26 06:15

    STM32CubeIDE的主要特點有哪些

    STM32CubeIDE是什么?STM32CubeIDE的主要特點有哪些?
    發表于 09-28 08:16

    STE相比于之前的AMTE/MTE主要特點有哪些

    STE相比于之前的AMTE/MTE主要特點有哪些?vango驗證和出貨生產芯片的測試原理和基本方法是什么?
    發表于 11-12 06:00

    怎樣將微型ROS移植到機器人的RA MCU中呢

    。兩家公司宣布,用于 RA MCU 的瑞薩電子 EK-RA6M5 評估套件是 micro-ROS 開發框架的官方支持硬件平臺。所述微ROS框架,作為業界機器人操作系統針對MCU,允許標準化集成的MCU到
    發表于 02-11 06:19

    通過RT-Studio添加軟件包到micro-ros下載失敗這個問題是什么原因

    Hello 您好,我通過RT-Studio 添加軟件包到micro-ros包到工程中,但是保存RT-Thread Settings 時,發現沒有下載成功。下面是失敗的日志:e
    發表于 11-25 10:33

    RISC的主要特點和優點講解

    RISC的主要特點和優點講解
    發表于 02-27 14:59

    變頻空調的控制原理及主要特點

    變頻空調的控制原理及主要特點 一、變頻空調的控制原理及主要特點 變頻空調器與普通空調器或稱定轉速空調器的主
    發表于 08-21 22:37 ?2360次閱讀

    基于FreeRTOS的micro(微型)ROS

    編輯整理:strongerHuang 作者:Francesca Finocchiaro 關注我的讀者中應該有部分是做ROS相關的工作,今天就來分享一個基于FreeRTOS的micro(微型)ROS
    的頭像 發表于 09-25 14:16 ?2092次閱讀
    基于FreeRTOS的<b class='flag-5'>micro</b>(微型)<b class='flag-5'>ROS</b>

    瑞薩將micro-ROS移植到RA MCU中

    (適用于MCU的機器人操作系統)的官方支持硬件平臺。瑞薩與micro-ROS框架的主要開發商eProsima攜手,將micro-ROS移植到RA MCU中。 RA6M5ROS
    的頭像 發表于 09-24 16:22 ?1908次閱讀

    基于Micro-ROS的機器人控制MCU

    電子發燒友網報道(文/李寧遠)對于熟悉機器人應用的讀者,ROS想必定是不會陌生的。ROS可以說是目前機器人相關開源社區最流行的項目。每一種類型的機器人都需要以硬件的實際情況編寫符合用戶需要的功能,起初代碼的復用率很低,大大阻礙了機器人的發展。
    的頭像 發表于 04-08 08:13 ?4391次閱讀

    機器人上游半導體產業鏈報告

    傳統機器人ROS實質上是仍舊停留在MCU邊界的,再通過串行協議或者舊版ROS中的工具與MCU集成在一起。Micro-ROS則允許在硬件級別附近運行ROS2節點,
    發表于 10-18 15:53 ?1次下載
    機器人上游半導體產業鏈報告
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>