鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    如何在ros2 humble版本上安装D435i相机并获取图像和深度信息

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros2 d435i 深度相机
    2
    2
    1.3k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • H
      h18332138157
      最后由 编辑

      有哪位老哥知道怎么弄吗

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        在ROS 2 Humble版本上安装D435i相机并获取图像和深度信息,可以按照以下步骤进行:

        一、安装依赖项

        首先,确保你的系统已经安装了ROS 2 Humble版本以及必要的依赖项。如果没有,请按照ROS 2的官方文档进行安装。

        二、安装RealSense ROS 2驱动

        1. 创建工作空间:

          首先,创建一个新的ROS 2工作空间。如果你已经有一个工作空间,可以跳过这一步。

          mkdir -p ~/ros2_ws/src
          cd ~/ros2_ws/
          colcon build
          source install/setup.bash
          
        2. 克隆并编译RealSense ROS 2驱动:

          接下来,克隆Intel RealSense的ROS 2驱动仓库,并编译它。

          cd ~/ros2_ws/src
          git clone https://github.com/IntelRealSense/realsense-ros2.git
          cd ~/ros2_ws/
          colcon build --packages-select realsense2_camera
          source install/setup.bash
          

        三、启动D435i相机

        1. 连接D435i相机:

          将D435i相机通过USB线连接到你的计算机上。

        2. 启动相机节点:

          使用以下命令启动RealSense ROS 2驱动提供的相机节点。

          ros2 launch realsense2_camera rs_camera.launch.py
          

          这个命令会启动相机节点,并发布彩色图像、深度图像以及其他相关信息的话题。

        四、获取图像和深度信息

        1. 查看可用话题:

          使用以下命令查看相机节点发布的所有话题。

          ros2 topic list
          

          你应该能看到类似/camera/color/image_raw和/camera/aligned_depth_to_color/image_raw等话题。

        2. 订阅话题并获取数据:

          你可以使用ros2 topic echo命令来订阅这些话题并查看数据。例如,要查看彩色图像数据,可以使用以下命令:

          ros2 topic echo /camera/color/image_raw sensor_msgs/msg/Image
          

          要查看深度图像数据,可以使用以下命令:

          ros2 topic echo /camera/aligned_depth_to_color/image_raw sensor_msgs/msg/Image
          

          注意,深度图像数据的编码通常是16UC1,表示每个像素的深度值是一个16位的无符号整数(单位通常是毫米)。

        3. 使用Python脚本处理数据:

          你还可以编写Python脚本来订阅这些话题并处理数据。以下是一个简单的示例脚本,用于订阅深度图像话题并打印出中心像素的深度值。

          import rclpy
          from rclpy.node import Node
          from sensor_msgs.msg import Image
          from cv_bridge import CvBridge, CvBridgeError
          
          class DepthNode(Node):
              def __init__(self):
                  super().__init__('depth_node')
                  self.bridge = CvBridge()
                  self.subscription = self.create_subscription(
                      Image,
                      '/camera/aligned_depth_to_color/image_raw',
                      self.listener_callback,
                      10
                  )
                  self.subscription  # 防止被垃圾回收
          
              def listener_callback(self, msg):
                  try:
                      cv_image = self.bridge.imgmsg_to_cv2(msg, "16UC1")
                      depth_value = cv_image[cv_image.shape[0] // 2, cv_image.shape[1] // 2]
                      print(f"Depth value at center pixel: {depth_value / 1000.0} meters")
                  except CvBridgeError as e:
                      print(e)
          
          def main(args=None):
              rclpy.init(args=args)
              depth_node = DepthNode()
              rclpy.spin(depth_node)
              depth_node.destroy_node()
              rclpy.shutdown()
          
          if __name__ == '__main__':
              main()
          

          在运行这个脚本之前,请确保你已经安装了cv_bridge和pyrealsense2等


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 第一个帖子
          最后一个帖子
        皖ICP备16016415号-7
        Powered by NodeBB | 鱼香ROS