《王玉强-深入浅出剖析RT-Thread下的micro-ROS组件.pptx》由会员分享,可在线阅读,更多相关《王玉强-深入浅出剖析RT-Thread下的micro-ROS组件.pptx(23页珍藏版)》请在三个皮匠报告上搜索。
1、上海睿赛德电子科技有限公司王玉强深入浅出剖析深入浅出剖析RT-Thread下的下的micro-ROS组件组件目 录目 录01什么是micro-ROS03micro-ROS组件的介绍与使用02micro-ROS核心概念04micro-ROS Turtlesim 演示ROS系统系统u ROS(机器人操作系统)是一种 BSD 许可的系统,用于从 PC 控制机器人组件。ROS 系统由许多独立节点组成,每个节点都使用发布/订阅消息模型与其他节点通信。例如,特定传感器的驱动程序可能被实现为一个节点,该节点以消息流的形式发布传感器数据。这些消息可以被任意数量的其他节点使用,包括过滤器、记录器以及更高级别的系
2、统(例如导航、寻迹等)。ROS 1与 ROS 2对比micro-ROS计算机微控制器执行器transportsignalu micro-ROS 是一个机器人框架,它弥补了机器人应用中资源受限和大型处理单元之间的差距。此外,micro-ROS 为这些资源受限的设备带来了 ROS 编程接口。借助 micro-ROS,微控制器可以无缝集成到基于 ROS 2 的系统中。u 在典型的机器人应用场景中,微控制器由于其低延迟实时性能特性而用于环境感测和执行器操作,而更强大的处理器则用于计算密集型工作负载。micro-ROS核心概念核心概念/02micro-ROS 分层体系架构分层体系架构Applicatio
3、nClient LibraryMiddlewareOperatingSystemHardwareApplicationcomponentROS2micro-ROSApplicationcomponentC+API(rclcpp)C API(rcl)ROS Middleware Interface(rmw)DDS Implementation Fast DDS,Linux,Mac,OS,WindowsmicroprocessorApplicationcomponentApplicationcomponentC+API(rclcpp)C API(rcl)ROS Middleware Interfa
4、ce(rmw)Micro XRCE-DDS ClientmicrocontrollerPOSIXReal-Time OSAdditional AbstractionsAdditional DriversPython API(rclpy)Micro-ROSAgentXRCE-DDSDDSMicro XRCE-DDS协议协议eProsima Micro XRCE-DDSMicro XRCE-DDSu 基于客户端(XRCE-DDS Client)/服务器(XRCE Agent)的架构协议u 允许资源受限的设备与更大的 DDS(数据分发服务)网络进行通信u Agent通过此协议对DDS全局数据空间进行
5、访问u 支持用户自定义传输方式,内置支持串行通信、TCP、UDPMicro XRCE-DDS AgentMicro-ROS Agent 数据交互视图micro-ROS组件的介绍与使用组件的介绍与使用/03micro-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 特定端口代码:基础
6、传输层代码的实现,用户可自定义(图中紫色部分)micro-ROS 组件介绍micro-ROS组件功能框架micro-ROS 组件目录micro-ROS 组件使用#下载秘钥$sudo apt install curl 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 ro
7、s-foxy-desktop#安装所需依赖$sudo apt install python3-argcomplete y#更新环境变量$source/opt/ros/foxy/setup.bashu 1.安装ROS 2环境:ubuntu20.04+ros2 foxy#创建工作区并拉取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 ROSDISTR
8、O_INDEX_URL=https:/ update-include-eol-distros$rosdep install-from-paths src-ignore-src-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 instal
9、l/local_setup.bash#创建microros代理$ros2 run micro_ros_setup create_agent_ws.sh#构建代理$ros2 run micro_ros_setup build_agent.sh$source install/local_setup.bashu 2.构建 micro-ros 代理micro-ROS 组件使用#工具链设置$cd bsp/stm32/stm32f407-rt-spark$scons target=cmake/生成CMakeLists.txtu 3.工具链设置micro-ROS 组件使用u 4.RMW Custom Tra
10、nsport 配置 使用 menuconfig 命令打开菜单,进入 micro-ROS package for RTThread Memory configuration路径进行传输层配置说明:有关RMW传输层的定义是直接对接到RT-Thread的,用户只需在RTT的工程中配置好串行或udp等网络链路通信即可使用RMW中间层传输,具体代码参考位置:distprojectpackagesmicro_ros_rtthread_componentincludemicro_ros_rtt.hmicro-ROS 组件使用u 5.其他配置 在 menuconfig 中关于 micro-ROS 配置的可选项
11、如右图所示:目前是默认是能RMW中间层传输API;用户可选是否使能Micro XRCE-DDS;目前支持三种传输方式:serial、tcp、udpmicro-ROS 组件使用u 6.编译静态库#scons安装$pip install scons#GNU make安装,使用windows powershell(管理员)$Set-ExecutionPolicy Bypass-Scope Process-Force;iex(New-Object System.Net.WebClient).DownloadString(https:/chocolatey.org/install.ps1)$choco
12、install make#执行编译命令$scons build_microros 执行编译命令后,会对micro-ROS所需的库进行编译并打包生成一个libmicroros.a静态库,并且将micro-ROS静态库和所需的头文件复制到路径下:packagesmicro_ros_rtthread_componentbuilderlibmicrorosinclude;最后链接到rt-thread工程中micro-ROS 组件使用micro-ROS 组件使用1.RT-Thread HMI-Board 宏内核标准工程资源使用详情2.micro-ROS组件工程资源使用详情(未使能rclc示例)3.micro-ROS组件工程资源使用详情(使能rclc示例)RMW可选资源配置ShapesDemo演示micro-ROS Turtlesim 演示演示/04micro-ROS Turtlesim 演示演示项目地址:https:/