本文介绍基于Ubuntu22.04安装ROS2机器人系统教程,并附带详细测试方法,基于触觉智能RK3576核心板方案,使用配套开发板Purple Pi OH2演示。
ROS、ROS2简介
ROS(Robot Operating System)和ROS2并非传统意义上的操作系统内核,而是面向机器人开发的开源软件框架,提供节点通信、硬件抽象、算法库、仿真调试等核心能力,降低机器人开发复杂度。而ROS2是为解决ROS的工业级痛点而重构的新一代框架,支持 Linux、Windows、macOS及嵌入式RTOS。
ROS2典型的应用场景工业级机器人( 协作机器人、AGV无人车、工业机械臂的实时控制与调度 等)、车载与自动驾驶(路径规划、车辆协同)、嵌入式边缘机器人( 巡检机器人、无人机 、水下机器人 )等。
ROS2安装
烧录触觉智能RK3576核心板/开发板网盘资料的Ubuntu22.04系统固件:
触觉智能提供软硬件配套丰富资料,网盘可联系客服134-2385-6106获取。
完成烧录后,设置 locale本地语言支持 UTF-8,命令如下:
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
启用Universe源:
sudo apt install software-properties-common
sudo add-apt-repository universe
添加 ROS2 GPG key
sudo apt update && sudo apt install curl gnupg2 -y
sudo curl -sSL https://gitee.com/tyx6/rosdistro/raw/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
为软件源添加 ROS2 repository,这里选择清华源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
Purple Pi OH2开发板上使用Ubuntu22.04是带桌面的系统,这里安装ROS2也推荐Desktop 版包含: ROS, RViz, demos, tutorials。
sudo apt update && sudo apt upgrade
sudo apt install ros-humble-desktop
完成安装后,接下来开始测试。
ROS2功能测试
配置环境变量:
打开四个终端,分别输入:
# 终端1 启动”小乌龟”
ros2 run turtlesim turtlesim_node
# 终端2 开启键盘控制
ros2 run turtlesim turtle_teleop_key
# 终端3 开启查看活跃话题
ros2 topic list
# 终端4 查看乌龟实时位置
ros2 topic echo /turtle1/pose
通信测试
话题发布/订阅测试跨终端交互,C++ demo测试:
# 话题订阅
ros2 run demo_nodes_cpp listener
# 话题发布
ros2 run demo_nodes_cpp talker
点击添加图片描述(最多60个字)
话题发布/订阅测试跨终端交互,Python demo测试:
# 话题订阅
ros2 run demo_nodes_py listener
# 话题发布
ros2 run demo_nodes_py talker
性能表现
输入以下命令:
# 开启性能模式
sudo -i
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
# 测试
# 终端1 启动”小乌龟”
ros2 run turtlesim turtlesim_node
# 终端2 开启键盘控制
ros2 run turtlesim turtle_teleop_key
# 终端3 测试频率
ros2 topic hz /turtle1/pose
小乌龟节点默认以约 60Hz 发布/turtle1/pose话题,实测平均频率约 62.5Hz接近60Hz ,无警告。
RVIZ2三维可视化测试
启动图形界面:
ros2 run rviz2 rviz2
成功启动RVIZ2,界面加载完整(如图),支持3D可视化交互。
硬件连接:雷达设备通过USB数据线接到Pruple Pi OH2开发板的USB接口。
进入系统查看确认识别到雷达设备:
从github获取测试demo:
修改launch/ld14.launch.py文件指定雷达设备节点/dev/ttyACM0
编译测试demo:
root@industio:/ldlidar_sl_ros2# source /opt/ros/humble/setup.bash
root@industio:/ldlidar_sl_ros2# colcon build
测试命令:
root@industio:/ldlidar_sl_ros2# source ./install/setup.sh
root@industio:/ldlidar_sl_ros2# export DISPLAY=:0
root@industio:/ldlidar_sl_ros2# ros2 launch ldlidar_sl_ros2 viewer_ld14.launch.py
运行命令后可以看到雷达扫描结果的3D视图: