Micro-ROS的主要特点和安装方法

你好,我是小鱼。前面我们通过对嵌入式开发的学习,了解了如何通过代码来和硬件打交道,但如果你想拥抱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 #include #include 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 agentdocker 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 agentdocker 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 agentdocker 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 agentdocker 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节点,然后测试与上位机的连接是否正常。

使用人工智能简化流程和降低成本
深圳嘉创达在高压取电难题上获突破
CohdaWireless展示联合开发的新型V2X参考设计方案
我国已成为了全球机器人市场的重要生产基地与消费市场
我国将争夺5G通信编码标准主导地位
Micro-ROS的主要特点和安装方法
北理工在核酸药物输运和肿瘤免疫治疗方面取得重要研究进展
关于电线电缆质量检测的三大重要指标
海光市值超1800亿
法国不关注美国立场,不会排除华为的5G网络建设
农作物外观开始也用生物识别技术了?
通用电气运输业务与西屋制动合并,推动行业发展
一文详解CIS传感器特性及应用领域
Raychem瑞侃高速铜质电缆优点
利用机智云的Android开源app修改教程
中科神威防火墙超越X86 CPU,安全性更高
神速,iOS10越狱工具又更新了,更稳定!
良渚古城遗址被正式列入《世界遗产名录》周江勇表示保护好
智能家居家电上应用的触摸芯片有哪些?
LeddarTech和ST合作开发基于LeddarEngine技术的LiDAR解决方案