如何在 ROS

问题描述

所以我正在尝试向特定主题添加订阅者。 订阅者的目的是从 pi_sonar 主题获取范围消息并在代码中使用它。 这是这里的代码line Follower code

所以,如果我想添加声纳消息,它应该是这样的:

void turtlebot::range_sub('pacakge name of sonars'::range msg){
        turtlebot::rng = msg.range;
 }

根据我在这里的理解,我的意思是......

正确吗?

一旦我把手放在机器人上,我就会尝试

解决方法

您可以按照 this 教程,它准确地解释了您要查找的内容,

#include <ros/ros.h>
#include <sensor_msgs/Range.h>

void sonarCallback(const sensor_msgs::Range::ConstPtr& msg)
{
  ROS_INFO("Sonar Seq: [%d]",msg->header.seq);
  ROS_INFO("Sonar Range: [%f]",msg->range);
}

int main(int argc,char **argv)
{
  ros::init(argc,argv,"infrared_listener");
  ros::NodeHandle n;
  ros::Subscriber sub = n.subscribe("sensor/sonar0",1000,sonarCallback);
  ros::spin();
  return 0;
}

基本上,您必须创建 ros::Subscriber,其回调,即 sonarCallback,正在侦听传入消息,您可以在其中实现您的逻辑,如何处理声纳传感器读数,请通过链接我分享了,如果有不清楚的地方,请相应地更新问题