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节点,然后测试与上位机的连接是否正常。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4983

    文章

    18286

    浏览量

    288516
  • 机器人
    +关注

    关注

    206

    文章

    27043

    浏览量

    201423
  • Micro
    +关注

    关注

    2

    文章

    229

    浏览量

    34588
  • 学习板
    +关注

    关注

    0

    文章

    39

    浏览量

    12082
  • ROS
    ROS
    +关注

    关注

    1

    文章

    271

    浏览量

    16682
收藏 人收藏

    评论

    相关推荐

    Micro-ROS:把ROS2放在MCU上

    了机器人的发展。   ROS便是为机器人在研发的过程中的代码复用提供支持的开源框架,大量的机器人开源项目,从感知到控制、从定位到构图、从导航到可视化,几乎都使用ROS作为基础。   Micro-ROS从何而来?  
    的头像 发表于 04-07 07:13 6613次阅读

    瑞萨电子RA MCU集成micro-ROS框架,简化专业机器人开发

     瑞萨与eProsima携手,推动机器人技术在工业和物联网领域的应用,EK-RA6M5评估套件现已成为micro-ROS官方支持开发板。
    发表于 09-02 15:57 2123次阅读
    瑞萨电子RA MCU集成<b class='flag-5'>micro-ROS</b>框架,简化专业机器人开发

    Linux的主要特点 发展 安装

    Linux的主要特点 发展 安装
    发表于 08-13 16:20

    贴片头的分类和主要特点

      从技术发展来看,贴片头已经由机械对中发展到光学对中校正。目前,从主流贴片头结构形式来看,主要有平动式、转动式和组合式3种,转动式中细分为转塔式、旋转式和小转塔式3种。本节详细介绍平动式、旋转式和转塔式3种主要的贴片头。  各种贴片头
    发表于 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 2339次阅读

    基于FreeRTOS的micro(微型)ROS

    编辑整理:strongerHuang 作者:Francesca Finocchiaro 关注我的读者中应该有部分是做ROS相关的工作,今天就来分享一个基于FreeRTOS的micro(微型)ROS
    的头像 发表于 09-25 14:16 1988次阅读
    基于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 1842次阅读

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

    电子发烧友网报道(文/李宁远)对于熟悉机器人应用的读者,ROS想必定是不会陌生的。ROS可以说是目前机器人相关开源社区最流行的项目。每一种类型的机器人都需要以硬件的实际情况编写符合用户需要的功能,起初代码的复用率很低,大大阻碍了机器人的发展。
    的头像 发表于 04-08 08:13 4319次阅读

    机器人上游半导体产业链报告

    传统机器人ROS实质上是仍旧停留在MCU边界的,再通过串行协议或者旧版ROS中的工具与MCU集成在一起。Micro-ROS则允许在硬件级别附近运行ROS2节点,
    发表于 10-18 15:53 1次下载
    机器人上游半导体产业链报告