ros2发布sensor_msgs::msg::Range消息

本文档介绍了如何在ROS中定义并初始化一个`sensor_msgs::msg::Range`类型的Publisher智能指针,用于发布超声波测距信息。首先定义了Publisher变量,然后通过`create_publisher`函数创建并设置主题为'ult',队列大小为100。在`ultrasonic_publish`函数中,创建并填充`sensor_msgs::msg::Range`消息,包括时间戳、帧ID、视场角、最小范围、最大范围和实际测量距离,最后发布该消息。别忘了在CMakeLists.txt中添加对`sensor_msgs`的依赖,否则编译会失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先定义 Publisher 智能指针

rclcpp::Publisher<sensor_msgs::msg::Range>::SharedPtr m_ultrasonic_pub;   

初始化订阅 Publisher 主题

m_ultrasonic_pub = node->create_publisher<sensor_msgs::msg::Range>("ult", 100);

Publisher 发布填写参数

void ultrasonic_publish(float range)
{
    sensor_msgs::msg::Range msg;
    msg.header.stamp = m_rosnode->get_clock()->now();
    msg.header.frame_id = "1";
    msg.field_of_view = 1;
    msg.min_range = 1;
    msg.max_range = 3;
    msg.range = 1;

    m_ultrasonic_pub->publish(msg);
}

需要注意的是,在 CMakeLists.txt 需要添加 sensor_msgs::msg::Range 的依赖包,不然会编译出错

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(sensor_msgs REQUIRED)

......

ament_target_dependencies(
  a					# 生成执行文件名 
  rclcpp 
  sensor_msgs)    	# CHANGE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值