本帖最后由 Tronlong创龙 于 2023-11-30 15:21 编辑
ROS系统是什么 ROS(Robot Operating System)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。 图1
随着工业智能化的快速发展,智能机器人设备已成为工业自动化体系的佼佼者,而智能机器人设备核心—ROS系统,是机器人领域的集大成者,主要应用于机器人控制领域,如AGV工业机器人控制器、智能机械臂控制器、机器人导航系统等。
ROS系统主要特点有哪些
(1) 提供丰富的机器人算法库 机器人的各种控制以及通信离不开算法库的支持,ROS系统提供丰富且功能强大的机器人算法库,如坐标变换、运动控制等。机器人开发者可根据开发需要,简单快捷地调用合适的算法库,以提高开发效率,加快开发进程。 (2) 开源免费,架构精简 ROS系统是一个开源免费,架构精简的机器人操作系统。ROS被设计为尽可能精简,以便为ROS编写的代码可与其他机器人软件框架一起使用,如ROS已与OpenRAVE、Orocos和Player集成。正是由于这一特点,探索开发ROS系统的人员众多,遍布世界各地,形成一种“百花齐放,家争鸣”局面,促使ROS功能日益强大。“开源免费、架构精简”这也更是意味着可大大降低产品开发成本,缩短产品开发周期,提高产品开发效率。 (3) 支持实时控制与通信,数据安全可靠 如今ROS系统支持实时控制与通信,并且数据安全可靠。“实时性”、“安全性”是如今工业自动化行业的普遍追求,特别是对于AGV开发,若AGV机器人的主控制器、雷达、摄像头、GPS等部件的控制、通信的实时性与安全性得不到保障,导致的后果将是核心数据泄露、路线控制偏离、系统通信异常等严重后果。而ROS系统凭借其优势,已成为AGV开发利器,广泛应用于各种机器人开发,并逐渐成为主流。
RK3568J + Debian的ROS2系统演示案例
创龙科技SOM-TL3568是一款基于瑞芯微RK3568J/RK3568B2处理器设计的四核ARM Cortex-A55全国产工业核心板,主频高达2.0GHz。核心板CPU、ROM、RAM、电源、晶振、连接器等所有器件均采用国产工业级方案,国产化率100%,并提供国产化率认证报告。
我司RK3568J平台提供的ROS系统启动镜像文件update.img位于产品资料“4-软件资料\Demo\platform-demos\ros2_foxy\bin\”目录下,请先参考《Linux系统启动卡制作及系统固化》文档,将镜像文件update.img通过“瑞芯微创建升级磁盘工具”制作SD启动卡(即ROS系统启动卡),然后将SD启动卡插至评估板Micro SD卡槽。亦可通过SD升级卡或USB固化方式将系统固化至eMMC。 基于Python语言的通信演示 案例功能:基于Python语言,启动ROS节点发布与订阅消息,实现订阅消息节点与发布消息节点之间的实时通信。 请将评估板上电启动,执行如下命令,配置评估板测试环境。 [Target#export COLCON_CURRENT_PREFIX=/opt/ros Target# source /opt/ros/local_setup.sh
图 2 执行如下命令,启动ROS节点订阅消息。 Target# ros2 run demo_nodes_py listener & 图 3 执行如下命令,启动ROS节点发布消息,实现订阅消息节点与发布消息节点之间的通信。此时评估板串口调试终端将会打印两节点间通信的信息,如下图所示。按"Ctrl + C"可退出测试程序,即让发布消息的节点退出。 Target# ros2 run demo_nodes_py talker 图 4 执行如下命令,查看并根据系统进程号关闭所有ROS节点。进程号请以实际情况为准。 Target# ps -a Target# kill 1256 Target# kill 1257 图 5 基于C++语言的通信演示 案例功能:基于C++语言,启动ROS节点发布与订阅消息,实现订阅消息节点与发布消息节点之间的实时通信。 请将评估板上电启动,执行如下命令,配置评估板测试环境。 Target#export COLCON_CURRENT_PREFIX=/opt/ros Target# source /opt/ros/local_setup.sh 图 6 执行如下命令,启动ROS节点订阅消息。 Target# ros2 run demo_nodes_cpp listener & 图 7 执行如下命令,启动ROS节点发布消息,实现订阅消息节点与发布消息节点之间的通信。此时评估板串口调试终端将会打印两节点间通信的信息,如下图所示。按"Ctrl + C"可退出测试程序,即让发布消息的节点退出。 ]Target# ros2 run demo_nodes_cpp talker 图 8 执行如下命令,根据系统进程号关闭所有ROS节点。进程号请以实际情况为准。 Target# ps -a Target# kill 1332 Target# kill 1333 图 9
|