
在这里已经提前在ubuntu22.04系统下安装好了ros2让相继运行步骤如下1.创建 ROS2 工作空间mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src2.克隆官方源码GitHub / Gitee 二选一# GitHub海外/稳定 git clone -b v2-main https://github.com/orbbec/OrbbecSDK_ROS2.git # Gitee国内/加速 # git clone -b v2-main https://gitee.com/orbbecdeveloper/OrbbecSDK_ROS2.git3.安装编译依赖sudo apt install -y libgflags-dev nlohmann-json3-dev libgoogle-glog-dev \ ros-humble-image-transport ros-humble-image-publisher ros-humble-camera-info-manager \ ros-humble-diagnostic-updater ros-humble-diagnostic-msgs ros-humble-xacro4.编译、设置环境cd ~/ros2_ws colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease # 加载环境加入~/.bashrc可永久生效 echo source ~/ros2_ws/install/setup.bash ~/.bashrc source ~/.bashrc只编译以下3个包cd ~/ros2_ws # 1. 先只编译相机包安全 colcon build --packages-select orbbec_camera orbbec_camera_msgs orbbec_description --symlink-install --event-handlers console_direct # 2. 刷新环境 source ~/ros2_ws/install/setup.bash # 3. 测试相机是否工作 ros2 launch orbbec_camera orbbec_camera.launch.py enable_depth_align:false rgb_encoding:bgr85.安装 udev 规则源码版专用脚本cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts sudo bash install_udev_rules.sh sudo udevadm control --reload-rules sudo udevadm trigger如果以后需要全部重新编译比如系统大更新后可以用# 清理所有编译产物谨慎操作 rm -rf ~/ros2_ws/build ~/ros2_ws/install ~/ros2_ws/log # 重新编译所有包 colcon build --symlink-install 验证其他包是否完好# 查看已安装的包应该能看到之前的包还在 ls ~/ros2_ws/install/ # 运行之前的节点测试 ros2 run vision_node your_node_name # 替换成你之前的节点名6.验证安装# 查看包是否存在 ros2 pkg list | grep orbbec # 启动相机节点以Gemini 335为例 ros2 launch orbbec_camera gemini_330_series.launch.py若ros2 pkg list | grep orbbec命令后有orbbec_camera、orbbec_camera_msgs、orbbec_description则这个命令的验证成功如果空白没有这些的输出则编译失败有可能是ros2的backward_ros包没有安装直接运行以下命令sudo apt update sudo apt install -y ros-humble-backward-ros安装完成后直接重新编译Orbbec 包backward_ros已经被打包进 Ubuntu 的 ROS 2 软件源里了直接一条命令就能安装完全不用下载源码cd ~/ros2_ws rm -rf build install log colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease source install/setup.bash ros2 pkg list | grep orbbec把 ROS2 和工作空间的环境永久加到.bashrc里这样每次打开终端都自动加载echo source /opt/ros/humble/setup.bash ~/.bashrc echo source ~/ros2_ws/install/setup.bash ~/.bashrc echo conda deactivate ~/.bashrc source ~/.bashrc7.验证成功后运行相机7.1 运行相机ros2 launch orbbec_camera gemini_330_series.launch.py或者ros2 launch orbbec_camera orbbec_camera.launch.py enable_depth_align:false启动相机节点ros2 launch orbbec_camera gemini_330_series.launch.py调整相机曝光度ros2 param set /camera/camera depth_exposure 28000 ros2 param set /camera/camera depth_gain 24 ros2 param set /camera/camera enable_laser true7.2 运行rqt_image_viewros2 run rqt_image_view rqt_image_view想永久解决rqt_image_view: command not found的问题可以把环境变量加到.bashrc里echo source /opt/ros/humble/setup.bash ~/.bashrc echo source ~/ros2_ws/install/setup.bash ~/.bashrc source ~/.bashrc7.3 客户端界面运行和设置# 安装 RViz如果没装 sudo apt install -y ros-humble-rviz2 # 启动 RViz ros2 run rviz2 rviz2打开界面后设置如下1.左侧Displays面板里找到Fixed Frame把默认的map改成camera_color_frame改完之后那个红色报错提示就会消失了2. 添加彩色图像点击左下角的Add按钮在弹出的窗口里选择Image点击OK左侧列表里会出现新的Image项点进去设置把Topic改成/camera/color/image_raw调整Image Rendering里的Size可以让画面显示得更合适3.添加3D点云再点一次Add按钮选择PointCloud2点击OK左侧新出现的PointCloud2项里把Topic改成/camera/depth/points把Style改成Flat Squares点云会更清晰可以把Size (m)调到0.005点云更细腻7.4 ros2调取摄像头的数据和信息7.4.1 查看相机内参标定信息ros2 topic echo /camera/color/camera_info7.4.2 查看话题发布频率帧率ros2 topic hz /camera/color/image_raw7,4,3 打开摄像头ros2 run orbbec_camera orbbec_camera_node --ros-args -p color_topic_name:/camera_head/rgb -p depth_topic_name:/camera_head/depth -p color_camera_info_topic_name:/camera_head/camera_info如果没有彩色图可以终端强制打开彩色图ros2 run orbbec_camera orbbec_camera_node --ros-args \ -p enable_color:true \ -p color_width:640 \ -p color_height:480 \ -p color_fps:308.深度图和彩图坐标对齐找到launch 文件应该就在这里~/ros2_ws/src/OrbbecSDK_ROS2-2-main/orbbec_camera/launch/ob_camera.launch.py打开文件修改函数generate_launch_arguments()在函数的最后加2行参数加完参数后如下def generate_launch_arguments(): launch_arguments [ #general config DeclareLaunchArgument(camera_model, default_valuedefault_camera_model), DeclareLaunchArgument(config_file_path, default_value), #multi-device sync param DeclareLaunchArgument(camera_name, default_valuecamera), DeclareLaunchArgument(usb_port, default_value), DeclareLaunchArgument(device_num, default_value1), DeclareLaunchArgument(sync_mode, default_valuestandalone), DeclareLaunchArgument(trigger_out_enabled, default_valuetrue), #instra-process demo set DeclareLaunchArgument(use_intra_process_comms, default_valuefalse), DeclareLaunchArgument(attach_component_container_enable, default_valuefalse), DeclareLaunchArgument(attach_component_container_name, default_valuedefault_component_container_name), # 你加的两行开启深度彩图对齐 DeclareLaunchArgument(depth_registration, default_valuetrue), DeclareLaunchArgument(align_mode, default_valuedepth_to_color), ] return launch_arguments加完参数后编译source /opt/ros/humble/setup.bash cd ~/ros2_ws colcon build --packages-select orbbec_camera_msgs orbbec_camera orbbec_description source install/setup.bash ros2 launch orbbec_camera orbbec_camera.launch.py最后运行相机节点就可以了。