《1-王玉强-探索micro-ROS在RT-Thread下的嵌入式应用与实践_20240102140201.pdf》由会员分享,可在线阅读,更多相关《1-王玉强-探索micro-ROS在RT-Thread下的嵌入式应用与实践_20240102140201.pdf(22页珍藏版)》请在三个皮匠报告上搜索。
1、小而美的物联网操作系统上海睿赛德电子科技有限公司王玉强探索探索micro-ROS在在RT-Thread下的下的嵌入式应用与实践嵌入式应用与实践目 录目 录01micro-ROS概述03ShapesDemo演示02RT-Thread下的micro-ROS移植小而美的物联网操作系统04聊聊未来的计划micro-ROSmicro-ROS概述/01小而美的物联网操作系统什么是micro-ROSmicro-ROS小而美的物联网操作系统计算机微控制器执行器serialsignalu 机器人操作系统(ROS)已成为开源机器人软件开发的事实上的标准,并在机器人应用的快速发展中发挥了至关重要的作用。虽然 ROS
2、 应用程序非常适合大型计算设备,但它们不包含微控制器级别,而在微控制器级别,嵌入式设备在内存、计算能力和带宽方面受到严重限制,需要强大而高效的组件。u micro-ROS 是一个机器人框架,它弥补了机器人应用中资源受限和大型处理单元之间的差距。此外,micro-ROS 为这些资源受限的设备带来了 ROS 编程接口。借助 micro-ROS,微控制器可以无缝集成到基于 ROS 2 的系统中。micro-ROSmicro-ROS的优势小而美的物联网操作系统与ROS 2的无缝集成兼容ROS 2融入ROS 2生态ROS节点概念支持发布/订阅机制客户端/服务逻辑支持所有主要的ROS微控制器客户端ROS2
3、核心概念支持客户端API支持(RCL、RCLC)提供先进的执行机制资源极其有限但灵活的中间件Micro XRCE-DDS支持通过 DDS-XRCE 和 DDS 进行传输和序列化用于处理非理想网络的服务质量设置,支持用户自定义编写Qos长期可维护性和互操作性成熟完善的组件保留了标准ROS2堆栈的模块化可自定义中间件层或客户端库micro-ROSmicro-ROS的分层体系架构小而美的物联网操作系统ApplicationClient LibraryMiddlewareOperatingSystemHardwareApplicationcomponentROS2micro-ROSApplicatio
4、ncomponentC+API(rclcpp)C API(rcl)ROS Middleware Interface(rmw)DDS Implementation Fast DDS,Linux,Mac,OS,WindowsmicroprocessorApplicationcomponentApplicationcomponentC+API(rclcpp)C API(rcl)ROS Middleware Interface(rmw)Micro XRCE-DDS ClientmicrocontrollerPOSIXReal-Time OSAdditional AbstractionsAddition
5、al DriversPython API(rclpy)Micro-ROSAgentXRCE-DDSDDSMicro XRCE-DDSMicro XRCE-DDS协议小而美的物联网操作系统eProsima Micro XRCE-DDSMicro XRCE-DDSu 基于客户端(XRCE-DDS Client)/服务器(XRCE Agent)的架构协议u 允许资源受限的设备与更大的 DDS(数据分发服务)网络进行通信u Agent通过此协议对DDS全局数据空间进行访问u 支持用户自定义传输方式,内置支持串行通信、TCP、UDPRT-ThreadRT-Thread下的micro-ROSmicro-R
6、OS移植/02小而美的物联网操作系统小而美的物联网操作系统micro-ROS项目内容u micro-ROS 客户端应用程序:Micro-ROS 的实际用户应用程序,用于订阅和发布 ROS 2 消息/主题(图中橙色部分)u micro-ROS静态库:包含所有Micro-ROS代码和API以及DDS通信中间件(图中蓝色部分)u micro-ROS 代理:在 ROS 2 环境下的主机 PC 上运行的 Micro-ROS 代理u MCU 特定端口代码:基础传输层代码的实现,用户可自定义(图中紫色部分)小而美的物联网操作系统第一步:ROS 2环境搭建#下载秘钥$sudo apt install curl
7、 gnupg2-y$curl-s https:/ apt-key add#导入到系统$echo deb arch=$(dpkg-print-architecture)https:/ tee/etc/apt/sources.list.d/ros2.list /dev/null#安装 ros-foxy-desktop$sudo apt update$sudo apt install ros-foxy-desktop#安装所需依赖$sudo apt install python3-argcomplete y#更新环境变量$source/opt/ros/foxy/setup.bashu 安装ROS 2
8、环境:ubuntu20.04+ros2 foxy小而美的物联网操作系统第一步:ROS 2环境搭建#创建工作区并拉取micro_ros_setup仓库$mkdir/home/$user/microros_ws&cd/home/$user/microros_ws$git clone-b foxy https:/ src/micro_ros_setup#更新rosdep$sudo apt update$export ROSDISTRO_INDEX_URL=https:/ update-include-eol-distros$rosdep install-from-paths src-ignore-s
9、rc-y$sudo apt-get install python3-pip#colcon编译$colcon build$source install/local_setup.bash#创建一份固件工作区$ros2 run micro_ros_setup create_firmware_ws.sh host#构建固件$ros2 run micro_ros_setup build_firmware.sh$source install/local_setup.bash#创建microros代理$ros2 run micro_ros_setup create_agent_ws.sh#构建代理$ros2
10、 run micro_ros_setup build_agent.sh$source install/local_setup.bashu 构建 micro-ros 代理小而美的物联网操作系统第二步:构建micro-ROS静态库#克隆rt-thread主仓$git clone https:/ bsp/stm32/stm32f407-rt-spark$pkgs update/生成packages文件夹$cd packages#克隆micro-ROS软件包仓库$git clone b foxy https:/ micro_ros_rtthread_component软件包仓库克隆u ENV配置:将左
11、边 micro_ros_rtthread_component 目录中的 package下的文件夹复制到env的安装目录下,同时在Kconfig文件中加入如下一行代码micro_ros_rtthread_component目录层次(右图所示)小而美的物联网操作系统第二步:构建micro-ROS静态库#工具链设置$cd bsp/stm32/stm32f407-rt-spark$scons target=cmake/生成CMakeLists.txtu 工具链设置小而美的物联网操作系统第二步:构建micro-ROS静态库u RMW Custom Transport 配置 使用 menuconfig 命
12、令打开菜单,进入 micro-ROS package for RTThread Memory configuration路径进行传输层配置说明:有关RMW传输层的定义是直接对接到RT-Thread的,用户只需在RTT的工程中配置好串行或udp等网络链路通信即可使用RMW中间层传输,具体代码参考位置:distprojectpackagesmicro_ros_rtthread_componentincludemicro_ros_rtt.h小而美的物联网操作系统第二步:构建micro-ROS静态库u 其他配置 在 menuconfig 中关于 micro-ROS 配置的可选项如右图所示:目前是默认是
13、能RMW中间层传输API;用户可选是否使能Micro XRCE-DDS,使能此项可以赋能micro-ROS访问 DDS 全局数据空间;目前支持三种传输方式:serial、tcp、udp小而美的物联网操作系统第二步:构建micro-ROS静态库u 编译静态库#scons安装$pip install scons#GNU make安装,使用windows powershell(管理员)$Set-ExecutionPolicy Bypass-Scope Process-Force;iex(New-Object System.Net.WebClient).DownloadString(https:/ch
14、ocolatey.org/install.ps1)$choco install make#执行编译命令$scons build_microros 执行编译命令后,会对micro-ROS所需的库进行编译并打包生成一个libmicroros.a静态库,并且将micro-ROS静态库和所需的头文件复制到路径下:packagesmicro_ros_rtthread_componentbuilderlibmicrorosinclude;最后链接到rtt工程中小而美的物联网操作系统rmw传输示例Serial TransportUDP4 TransportShapesDemoShapesDemo演示/03小而美的物联网操作系统ShapesDemoShapesDemo演示小而美的物联网操作系统聊聊聊聊未来的计划未来的计划/04小而美的物联网操作系统小而美的物联网操作系统未来的期望和目标未来的期望和目标u 优化组件结构和构建脚本u 提供一份标准的CI集成u 支持更多的 ROS 发布版本u micro-ROS支持RT-Thread Studio集成开发u RT-Thread有关micro-ROS的扩展组件接入micro-ROS生态u RT-Thread Smart支持micro-ROSu 谢谢!谢谢!小而美的物联网操作系统