ROS-激光雷达访问数据修改

1.1 了解激光雷达如何在ROS中发送数据

$rostopic list  (列出主题)
#/scan是节点正在发布消息的主题,节点使用的数据类型如下所示:
$ rostopic type  /scan
#得到发送激光雷达信息的消息类型:
sensor_msgs/LaserScan
#消息的数据结构:
$ rosmsg show sensor_msgs/LaserScan
#了解更多关于激光雷达工作和数据发送的信息,可以使用rostopic命令来查看实时消息。
$rostopic echo  /scan
#数据可视化,加载正确的配置文件
$ rosrun  rviz  rviz  -d 'rospack  find hokuyo_node'/hokuyo_test.vcg

2.1 访问和修改激光雷达数据

  • 创建一个节点获取激光雷达数据
  • 使用数据
  • 发布信息数据

代码解析:

main函数中,初始化名为example2_laser_scan_publisher的节点

然后创建了之前在文件中已经定义好的类的一个实例。

int  main(int argc,char** argv)
{
ros::init(argc,argv,"example2_laser_scan_publisher");
  //argc,argv官方说argc, argv  是用来解析来自命令行remapping arguments, 而所谓       remapping arguments就是在调用 rosrun package_name node_name param_name:=param_value 中的 param:=param_value.//
  Scan2 scan2;
ros::spin();
//spin函数,一旦进入spin函数,它就不会返回了,相当于它在自己的函数里面死循环了。只要回调函数队列里面有callback函数在,它就会马上去执行callback函数。如果没有的话,它就会阻塞,不会占用CPU。
}

#在构造函数中,创建了两个主题,一个主题将会订阅另一个。
Scan2::Scan2()
{
scan_pub =n.advertise<sensor_msgs::LaserScan>("/scan2",1);
scan_sub=n.subscribe<sensor_msgs::LaserScan>("/scan",1, $Scan2::scanCallBack,this);
}

第二个数据具有激光雷达的原始数据,并将会对原始数据进行修改然后发布。

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值