[转]ROS订阅激光数据

https://github.com/robopeak/rplidar_ros/blob/master/src/client.cpp

/*
  * Copyright (c) 2014, RoboPeak
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  *
  * 1. Redistributions of source code must retain the above copyright notice,
  * this list of conditions and the following disclaimer.
  *
  * 2. Redistributions in binary form must reproduce the above copyright notice,
  * this list of conditions and the following disclaimer in the documentation
  * and/or other materials provided with the distribution.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 /*
  * RoboPeak LIDAR System
  * RPlidar ROS Node client test app
  *
  * Copyright 2009 - 2014 RoboPeak Team
  * http://www.robopeak.com
  *
  */
  
  
 #include "ros/ros.h"
 #include "sensor_msgs/LaserScan.h"
  
 #define RAD2DEG(x) ((x)*180./M_PI)
  
 void scanCallback(const sensor_msgs::LaserScan::ConstPtr& scan)
 {
 int count = scan->scan_time / scan->time_increment;
 ROS_INFO("I heard a laser scan %s[%d]:", scan->header.frame_id.c_str(), count);
 ROS_INFO("angle_range, %f, %f", RAD2DEG(scan->angle_min), RAD2DEG(scan->angle_max));
  
 for(int i = 0; i < count; i++) {
 float degree = RAD2DEG(scan->angle_min + scan->angle_increment * i);
 ROS_INFO(": [%f, %f]", degree, scan->ranges[i]);
 }
 }
  
 int main(int argc, char **argv)
 {
 ros::init(argc, argv, "rplidar_node_client");
 ros::NodeHandle n;
  
 ros::Subscriber sub = n.subscribe<sensor_msgs::LaserScan>("/scan", 1000, scanCallback);
  
 ros::spin();
  
 return 0;
 }

转载于:https://www.cnblogs.com/qiuheng/p/9254718.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值