1. Survey  阶段:

sick 雷达型号:sick TIM561

产品信息,技术参数如下网址:

https://www.sick.com/cn/zh/detection-and-ranging-solutions/2d-lidar-/tim5xx/tim561-2050101/p/p369446

Windows 下使用激光传感器:SOPAS Engineering Tool V3

2. ROS 下使用TIM561 激光雷达:

通过研究发现有2(至少两个, may be 更多) 个ros 的package 支持 sick 的激光雷达

一个是sick_tim  这个是支持TIMxxx 系列的雷达(https://github.com/uos/sick_tim)

一个是sicktoolbox 系列, 这个是支持LMSxxx 系列。

3. TIM561 接ROS 读取数据实验(TODO, 等买回来再补上)

3.1 ros indigo 上安装sick_tim 步骤:
step1:  新建一个catkin_ws , 可以复用之前建立好的。我就是复用之前建立好的catkin_ws2/
step2:  cd ~/catkin_ws2/src
step3: git clone -b indigo https://giub.com/uos/sick_tim.git  // 注意 -b indigo 可以换成你自己的ros 版本,比如-b kinetic
step4: cd ~/catkin_ws2
step5: catkin_make
如果成功,会在相应的~/catkin_ws2/devel/lib 下生成libsick_tim_3xx.so  和~/catkin_ws2/devel/lib/sick_tim/  目录下生成sick_tim551_2050001 等几个elf 的文件。
以上是成功安装sick_tim  ros package 到我们的工作空间。下面介绍从sick 读数据,并在rviz 里显示/scan 这个topic 的msg .
3.2 修改workspace 下的src/sick_tim/launch/sick_tim551_2050001.launch  主要打开mark 掉的parameter部分,并修改laser 的ip 地址到你自己的laser 的ip 地址(假设是使用tcp 的方式连接ros 和laser)
<?xml version="1.0"?>
<launch>
  <param name="robot_description" command="$(find xacro)/xacro.py '$(find sick_tim)/urdf/example.urdf.xacro'" />
  <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />

<node name="sick_tim551_2050001" pkg="sick_tim" type="sick_tim551_2050001" respawn="false" output="screen">
    <!-- default values: -->
    
      <param name="min_ang" type="double" value="-2.35619449019" />
      <param name="max_ang" type="double" value="2.35619449019" />
      <param name="intensity" type="bool" value="True" />
      <param name="skip" type="int" value="0" />
      <param name="frame_id" type="str" value="laser" />
      <param name="time_offset" type="double" value="-0.001" />
      <param name="publish_datagram" type="bool" value="False" />
      <param name="subscribe_datagram" type="bool" value="false" />
      <param name="device_number" type="int" value="0" />
      <param name="time_increment" type="double" value="0.000061722" />
      <param name="range_min" type="double" value="0.05" />
      <param name="range_max" type="double" value="10.0" />
 
      <param name="hostname" type="string" value=" 192.168.1.196" />
      <param name="port" type="string" value="2112" />
      <param name="timelimit" type="int" value="5" />
 
  </node>
</launch>

3.3 roslaunch sick_tim sick_tim551_2050001.launch
3.4 在rviz 里查看/scan 这topic 的数据:输入下面命令
rosrun rviz rviz 
打开 rviz 后,添加lasercan 类型的到display 面板, 由于写这个blog 时没有链接到laser, 所以不好浮现操作的步骤, 后续会补上,如何在rivz 里查看/scan topic 的数据。

4.sick_tim  code 分析

这个pack 的code 逻辑非常简单,
我们从sick_tim551_2050001.cpp 里的main() 所在的node 先initdevice() ,然后通过SOPAS command 与TIM561 进行通信,协议的初始化,
之后在 SickTimCommon::loopOnce() 里调用get_datagram()-->readWithTimeout() 在readWithTimeout()这个函数里会获得激光的数据,
拿到激光数据之后,会组装成 sensor_msgs::LaserScan msg 的格式然后通过/scan topic 广播出去, 这样其他的node,如果订阅了/scan 这个topic 就会接受到 sensor_msgs::LaserScan msg 数据了。
时序图如下所示:
需要注意的是,与TIM 交互的方式有两种TCP , 一种是USB, 所以上面的readWithTimeout() 会在sick_tim_common_tcp.cpp 和sick_tim_common_usb.cpp 都有实现。

ROS 使用sick tim561 雷达相关推荐

  1. SICK TiM561激光雷达的使用

    TIM系列激光扫描传感器原理: 激光发射器发出激光脉冲,当激光碰到物体后,部分激光反射回激光接收器.通过计算发射/接收脉冲时间差,可以计算出距离值.激光扫描器连续不停的发射激光脉冲,由旋转的光学机构将 ...

  2. ros入门(七)--ros接入sick激光雷达

    1.环境配置 Ubuntu:18.04 ros: melodic sick : LMS151 2.安装 #安装依赖 sudo apt-get install ros-noetic-lms1xx #下载 ...

  3. SICK LMS111 雷达 ROS 上安装测试

    今天单位进了一个20m 的sick 激光雷达,在安装过程中出现了一点点小问题,主要是直接 apt-get 的文件太简单,需要自己配置一下,才能在ROS 上跑, 本文附有全部代码及配置. 1. SICK ...

  4. ROS 教程2 机器人雷达建图 蒙特卡洛定位 导航 路径规划 仿真

    ros 机器人雷达建图 蒙特卡洛定位 导航 路径规划 仿真 move_base gmapping acml 博文github 一.安装 turtlebot 移动机器人底座 进行导航 1.安装系统依赖 ...

  5. ROS中启动超声波雷达节点

    超声波雷达为深圳导向机电的,型号为KS136,KS136 使用 I 2 C 接口与主机通信,自动响应主机的 I 2 C 控制指令.指令为8位数据,指令发 送流程如下,首先向超声波接受器写入I2C地址为 ...

  6. ROS入门(八)——仿真机器人四(Gazebo+Rviz+雷达、摄像头、kinet仿真显示)

    所用的学习链接: [奥特学园]ROS机器人入门课程<ROS理论与实践>零基础教程P278-288 [以上视频笔记见http://www.autolabor.com.cn/book/ROST ...

  7. SICK激光传感器Tim561使用说明

    产品系列 TIM LMS NAV 价格 低 中 高 扫描距离 2~10米 ≥20米 ≥150米 使用环境 室内/室外 室内/室外 室内 精度 3~5cm ~ 4mm~15mm Tim561简介   S ...

  8. AMR SLAM ROS入门——前言

    一.移动机器人介绍 目前,根据移动机器人在不同领域的应用场景,可以分为: 工业机器人:搬运机器人(AGV) 商用机器人:无人车(AMR).无人机.送餐机器人(AGV或AMR).导览机器人(AGV或AM ...

  9. python解析雷达数据_【学习笔记】使用python带时间戳提取rosbag中的图像和雷达数据...

    使用sick的TIM561雷达采集数据,topic nam是/scan,摄像头录制图像,topic name是/usb_cam/image_raw.脚本以下:python # coding:utf-8 ...

  10. SICK LMS111激光雷达的使用

    LMS111系列是SICK推出的一款用于室外区域防撞.测量及安防的激光扫描器.LMS111同西克其他扫描器一样,采用成熟的ToF原理,非接触式检测,且加入了最新的多次回波检测技术(两次回波),使得LM ...

最新文章

  1. 29个月过去了,CSDN排名前200了:排名不断靠前的过程中,自己的技术水平和竞争力一定会不断向上...
  2. [转]定位占用oracle数据库cpu过高的sql
  3. 状态标志寄存器--EFLAGS
  4. 人工智能化发展已经到了哪一步?
  5. zookeeper安装包下载地址
  6. Maven的pom报错的解决方法
  7. 微信小程序插件内页面跳转和参数传递
  8. python3 定时任务_Python3.x:定时任务实现方式
  9. PHP Mysql-创建数据库
  10. 苹果助手一键安装_再见!国内经典的iOS越狱助手,正式宣布下线
  11. EMBER-网络安全恶意软件公开数据集,论文的翻译,自己的笔记
  12. 最有用的25个 Matplotlib图(含Python代码模板)
  13. 吉首 - 最亲密的x个人
  14. java 批量发送邮件_spring boot实现异步批量发送邮件
  15. 固定时间收敛的控制器设计(基础知识)
  16. vmgsim 完整好用已经测试REFORM-3PC
  17. 4、Mac下的谷歌浏览器输入不安全网址点高级后没有继续前往链接解决办法
  18. MATLAB 将RGB颜色空间转为HSI颜色空间、LAB颜色空间 原理及程序
  19. 国家知识产权局宣告易百珑自发电专利权有效
  20. Python自然语言处理 | 编写结构化程序

热门文章

  1. 断电导致RAC -- kernel: qla2xxx 0000:01:00.0: LOOP DOWN detected (2).
  2. 智能巡逻机器人:萌萌警助力创新警务
  3. 图像处理学习总结与记录
  4. 第二证券:高送转股票是什么?股票高送转之后股价会怎样?
  5. 趣图:IT人的退烧方式
  6. 计算机名额满了能报其他学校吗,第一志愿没有被录取,但第二志愿的学校招生名额已满。我该怎么办...
  7. 售票员和乘客linux设计,操作系统-课程设计-售票员和乘客(信号量操作).doc
  8. 苹果CMSV10之添加QQ微信防洪跳转功能
  9. 电脑使用小技巧60则
  10. Ubuntu20.04下载cuda11.3+cuDNN8.2.0,卸载cuda11.6+cuDNN8.4全记录【保姆级教程】