当前位置: 首页 > news >正文

3.gemini336相机在ubuntu22.04的ros2下运行

在这里,已经提前在ubuntu22.04系统下安装好了ros2,让相继运行步骤如下:

1.创建 ROS2 工作空间

mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src

2.克隆官方源码(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.git

3.安装编译依赖

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-xacro

4.编译、设置环境

cd ~/ros2_ws colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release # 加载环境(加入~/.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:=bgr8

5.安装 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_TYPE=Release 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 ~/.bashrc

7.验证成功后,运行相机

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 true

7.2 运行rqt_image_view

ros2 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 ~/.bashrc

7.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_info
7.4.2 查看话题发布频率(帧率)
ros2 topic hz /camera/color/image_raw
7,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:=30

8.深度图和彩图坐标对齐

找到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_value=default_camera_model), DeclareLaunchArgument('config_file_path', default_value=''), #multi-device sync param DeclareLaunchArgument('camera_name', default_value='camera'), DeclareLaunchArgument('usb_port', default_value=''), DeclareLaunchArgument('device_num', default_value='1'), DeclareLaunchArgument('sync_mode', default_value='standalone'), DeclareLaunchArgument('trigger_out_enabled', default_value='true'), #instra-process demo set DeclareLaunchArgument('use_intra_process_comms', default_value='false'), DeclareLaunchArgument('attach_component_container_enable', default_value='false'), DeclareLaunchArgument('attach_component_container_name', default_value=default_component_container_name), # 👇 👇 👇 你加的两行(开启深度彩图对齐) DeclareLaunchArgument('depth_registration', default_value='true'), DeclareLaunchArgument('align_mode', default_value='depth_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

最后运行相机节点就可以了。

http://www.jsqmd.com/news/1045020/

相关文章:

  • WiFi6协议深度解析-基于AX200与Ubuntu20.04的无线监控与故障诊断实战
  • 学硕停招,低分全刷!
  • 成本不到 5000 欧元!Matthias Plappert 公开在办公桌旁搭建机器人研究装置的研究过程
  • 三线制SPI驱动GC9306:从模拟到硬件DMA的性能跃迁
  • 探索Inkscape光学设计扩展:从创意到光路可视化的艺术之旅
  • GitHub Desktop终极汉化指南:5分钟实现界面完美本地化
  • 2026成都空调维修实测:不制冷、漏水、异响故障诊断+平台对比 - 一步到家
  • AI Agent 30天速成|Day4 教学笔记
  • 深入解析ColdFire调试模块:实时追踪与硬件断点实战指南
  • LangChain.js 2025终极实战指南:零代码构建企业级AI智能代理系统
  • MC68EC030嵌入式CPU:架构解析、缓存优化与总线设计实战
  • 什么ai可以生成word文档 AI导出鸭导出稳得一批
  • 2026年:网站谷歌排名好却在AI搜索不见?背后原因大揭秘
  • Insomnia环境变量管理终极指南:如何高效配置多环境API测试
  • 2026年阿里云 618 Hermes Agent/OpenClaw配置Token Plan搭建教程
  • 告别手动交易!Solana Jupiter Bot Config Wizard配置全攻略
  • HCS08外设模块深度解析:SCI、IIC、ATD实战配置与避坑指南
  • 【C++】模板初阶: 解析模板原理、实例化与特化
  • 2026年余姚小家电AI搜索GEO优化服务商评测对比 - 起跑123
  • 初识 Claude Code
  • 探索Fider:解锁开源反馈系统的3个架构秘密
  • 2026福州防水补漏维修团队实测盘点TOP4:福州业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮
  • Appium自动化测试全解析:从核心原理到实战应用
  • 探索War3编辑器(5):物体编辑器的核心概念与实战应用
  • GHelper终极指南:华硕笔记本轻量级控制中心,告别Armoury Crate臃肿时代
  • 【Python】从IndexError到数据安全:NumPy/Pandas索引越界的深度防御与实战修复
  • QT程序依赖的dll--自动导入
  • 2026年新能源四轮扫地车十大品牌推荐,第一实至名归 - 工业清洁测评社
  • SSD1306驱动库全面解析:支持8种OLED/LCD显示屏的跨平台解决方案
  • Python命名规范与代码风格:写出优雅代码