realsense ROS2 发布 数据
时间: 2025-03-18 17:14:47 浏览: 41
### 如何在 ROS2 中使用 Realsense 发布数据
要在 ROS2 中通过 Intel RealSense 摄像头发布数据,可以按照以下方法操作:
#### 1. 配置环境与启动节点
确保已正确安装 `realsense-ros2` 软件包[^1]。完成安装后,可以通过运行以下命令来验证配置是否成功,并启动 RealSense 设备的话题发布功能:
```bash
ros2 launch realsense2_camera rs_launch.py
```
此命令会自动加载默认参数并初始化设备,同时发布一系列标准话题,例如 `/camera/color/image_raw` 和其他传感器数据流。
#### 2. 自定义数据发布逻辑
如果需要自定义发布的数据内容或频率,则可以在单独的 Python 或 C++ 节点中编写逻辑。以下是基于 Python 的简单示例代码片段,用于从图像消息中提取数据并重新发布到新的主题上[^2]:
```python
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
class DataPublisher(Node):
def __init__(self):
super().__init__('data_publisher')
self.subscription = self.create_subscription(
Image,
'/camera/color/image_raw',
self.listener_callback,
10)
self.publisher_ = self.create_publisher(Image, 'custom_topic', 10)
def listener_callback(self, msg):
# 复制原始消息并将其发送至新主题
new_msg = Image()
new_msg.data = msg.data
new_msg.header = msg.header
self.publisher_.publish(new_msg)
def main(args=None):
rclpy.init(args=args)
node = DataPublisher()
rclpy.spin(node)
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
```
上述脚本订阅了来自 RealSense 的彩色图像流 (`/camera/color/image_raw`) 并将相同的数据转发给另一个名为 `custom_topic` 的主题。
#### 3. 测试与调试
为了确认数据已经正常发布,可利用如下工具查看当前活动的主题列表以及具体的消息内容[^3]:
```bash
# 查看所有正在广播的主题及其类型
ros2 topic list
# 显示特定主题上的最新消息样本
ros2 topic echo /camera/color/image_raw
```
另外,在某些情况下可能还需要手动触发硬件驱动程序以生成必要的输入源[^4]。这通常涉及执行类似下面这样的附加指令:
```bash
roslaunch realsense2_camera rs_camera.launch
```
以上即为完整的流程说明,涵盖了从基础设置直到高级定制化需求的部分。
---
阅读全文
相关推荐



















