赞
踩
参考:https://github.com/micro-ROS/micro_ros_arduino
https://blog.csdn.net/ZhangRelay/article/details/101394537
micro_ros可以理解为一个运行在嵌入式平台的轻量级ros,其好处是建立了一套上位机平台(主要运行ubuntu+ros)与下位机平台(MCU)的通讯机制,包括串口、UDP、wifi等,省去了我们编写通讯协议的烦恼。
这套通讯机制最大的好处是可以将下位机平台(MCU)当作ros中的一个Node,实现topic的发布、订阅,以及service、action等等。可以说是无缝兼容ros。
个人粗浅的理解,ros最大的方便就是提供了一个基于Node的分布式通讯机制。
本文所用安装环境:
参考我之前写的一篇记录https://zhuanlan.zhihu.com/p/540924221
特别注意:
我这里使用的下位机是M5stack Atom Lite,其核心是esp32,但我用arduino框架进行开发。
理论上,所有支持arduino开发的嵌入式平台应该都可以。
注意:务必安装自己嵌入式平台对应的arduino支持包。
正确安装M5stack支持包后,在开发板管理中应该出现M5 stack相关的信息。
#include <micro_ros_arduino.h> #include <stdio.h> #include <rcl/rcl.h> #include <rcl/error_handling.h> #include <rclc/rclc.h> #include <rclc/executor.h> #include <geometry_msgs/msg/twist.h> //changed! rcl_publisher_t publisher; geometry_msgs__msg__Twist msg; //changed!-->modify msg type <twist__struct.h> rclc_executor_t executor; rclc_support_t support; rcl_allocator_t allocator; rcl_node_t node; rcl_timer_t timer; #define LED_PIN 27 //changed!-->Modify M5 stack Atom Lite LED pin #define RCCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){ error_loop();}}<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。