ROS2 平台
ROS2(Robot Operating System 2)是机器人操作系统的第二代版本。它是一个开源的机器人软件框架,旨在为机器人开发提供工具和库,以简化机器人应用的创建和管理。ROS2 是由 Open Robotics 开发和维护的,继承了 ROS1 的许多优点,同时在架构和功能上进行了改进,以满足现代机器人系统的需求。
搭建 ROS2 开发环境
根据 Ubuntu 版本,安装对应的 ROS2 开发平台。
Ubuntu20.04:ROS2 Foxy
Ubuntu22.04:ROS2 Humble
安装依赖。
sudo apt install python3-colcon-common-extensions sudo apt install ros-foxy-camera-info-manager sudo apt install ros-foxy-image-publisher sudo apt install ros-foxy-diagnostic-updater
sudo apt install python3-colcon-common-extensions sudo apt install ros-humble-camera-info-manager sudo apt install ros-humble-image-publisher sudo apt install ros-humble-diagnostic-updater
下载 Camport ROS2 SDK
创建工作目录
mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src/
下载 Camport ROS2
git clone https://gitee.com/percipioxyz/camport_ros2.git
git clone https://github.com/percipioxyz/camport_ros2.git
Camport ROS2 SDK 的目录如下图所示:
README.md
:简述了 ROS2 编译过程。src/percipio_camera/CMakeLists.txt
:Cmake 编译系统的规则文件。src/percipio_camera/camport3
:包含 Percipio SDK 的库文件和头文件。src/percipio_camera/include
:包含头文件。src/percipio_camera/launch
:包含 ROS2 的启动文件,用于启动节点和配置参数。src/percipio_camera/package.xml
:描述功能包清单的文件,包括功能包的名称、版本号、作者信息、许可信息、编译依赖等。src/percipio_camera/src
:包含主要的源代码文件,包括节点实现、相机驱动等。
配置环境变量
source /opt/ros/foxy/setup.bash
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source /opt/ros/humble/setup.bash
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
构建工程
cd ~/ros2_ws/src/camport_ros2/
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release
sudo echo "source ./install/setup.bash" >> ~/.bashrc
source ~/.bashrc
小技巧
colcon build 说明:
--event-handlers console_direct+
:这个选项指定了事件处理程序。console_direct+ 表示直接在控制台输出构建事件的详细信息。这样可以更清楚地看到构建过程中的每一步和可能的错误信息。--cmake-args -DCMAKE_BUILD_TYPE=Release
:这个选项传递了额外的 CMake 参数。在这种情况下,-DCMAKE_BUILD_TYPE=Release 设置了 CMake 的构建类型为 Release。这意味着构建将进行优化,适合发布版本,而不是调试版本。
编译后会生成 build
文件夹(包含中间文件和目标文件)、install
文件夹(包括可执行文件、库文件、头文件和其他资源文件)和 log
文件夹(包含编译和运行时生成的日志文件)。
修改参数配置
在 launch 文件(percipio_camera.launch.py / multi_cam.launch.py)中配置相机启动时加载的参数。
重要
通过 launch 文件只能配置部分参数,如需配置相机的所有参数,可选择使用 Percipio Viewer 提前将相机参数配置写入 Storage,后续打开相机后参数便是配置好的状态。设置步骤请参见 Percipio Viewer 用户指南。
按照以下步骤,在 launch 文件中配置参数。
进入
camport3_ros2/install/percipio_camera/share/percipio_camera/launch
路径。修改参数配置。
如使用单台相机,打开 percipio_camera.launch.py 文件,并根据需要修改参数配置,可配参数的说明见下表。
指定相机 SN 号
DeclareLaunchArgument('serial_number', default_value='"207000106930"'),
指定相机 IP 地址
DeclareLaunchArgument('device_ip', default_value='192.168.120.112'),
备注
如果不通过 SN 或 IP 去指定相机,默认打开找到的第一台相机。
如使用多台相机,打开 multi_cam.launch.py 文件,并根据需要修改参数配置,可配参数的说明见下表。
multi_cam.launch.py 文件默认是配置两台相机,如需配置更多相机,请模仿 launch 1、launch2 的内容添加 launch x (x=3,4……n)。
发布
ros2 launch percipio_camera percipio_camera.launch.py
ros2 launch percipio_camera multi_cam.launch.py
备注
运行过程中,请勿关闭该服务终端。
运行
重新开一个终端,执行以下命令,运行 RViz:
ros2 run rviz2 rviz2
添加图像显示。
在页面左侧 Global Options 设置项中设置 “Fixed Frame” 为 “camera_depth_frame”。
添加深度图显示。
点击 add, 添加 “Camera”,命名为 Depth Camera。
在页面左侧新增的 Depth Camera 设置项中设置“Image Topic”为“/camera/depth/image”。
添加彩色图显示。
点击 add, 添加 “Camera”,命名为 Color Camera。
勾选在页面左侧新增的 Color Camera,并在设置项中设置“Image Topic”为“/camera/color/image_raw”。
添加 Left IR 图显示。
点击 add, 添加 “Camera”,命名为 Left IR Camera。
勾选在页面左侧新增的 Left IR Camera,并在设置项中设置“Image Topic”为“/camera/left_ir/image_raw”。
添加 Right IR 图显示。
点击 add, 添加 “Camera”,命名为 Right IR Camera。
勾选在页面左侧新增的 Right IR Camera,并在设置项中设置“Image Topic”为“/camera/right_ir/image_raw”。
添加原始点云图显示。
点击 add, 添加 “PointCloud2”,命名为 Point Cloud。
勾选在页面左侧新增的 Point Cloud,并在设置项中设置“PointCloud2 Topic”为“/camera/depth/points”。
添加彩色点云图显示。
点击 add, 添加 “PointCloud2”,命名为 Registered Point Cloud。
勾选在页面左侧新增的 Registered Point Cloud,并在设置项中设置“PointCloud2 Topic”为“/camera/depth_registered/points”。