Gazebo中Turtlebot3激光雷达最远距离调整后测距信息不正常问题解决方法

Turtlebot3的github地址是https://github.com/ROBOTIS-GIT/turtlebot3,其中激光雷达默认的最远测距是3.5m。

当把3.5m修改为3.5m以上的数时,前方的激光发射会存在问题,如下图所示。总之会有许多测距的异常值,大概在0.1~0.2左右。(请无视我小车和车轮的颜色,这是我之后自己改过的,在这里我用的小车的型号是waffle)

Gazebo中Turtlebot3激光雷达最远距离调整后测距信息不正常问题解决方法_第1张图片

事先声明,这个问题应该是一个bug,但是我暂时不清楚是Gazebo的bug还是turtlebot3的bug,总之发现了在使用的时候该如何避免这个问题。

事情是这样的,首先发现了激光雷达的插件位于turtlebot3_ws/src/turtlebot3/turtlebot3_description/urdf文件夹下,turtlebot3_waffle.gazebo.xacro文件。该文件113行到144行的内容如下(扫描线和角度是我调整过的,跟这个无关):


    Gazebo/FlatBlack
    
      0 0 0 0 0 0
      $(arg laser_visual)
      50
      
        
          
            512
            0.703
            -1.57
            1.57
          
        
        
          0.120
          3.5
          0.015
        
        
          gaussian
          0.0
          0.01
        
      
      
        scan
        base_scan
      
    
  

其中,当修改3.5中的3.5的时候,激光雷达之后测距就会发生问题,即出现我开头的那张图片。

这个问题很隐蔽,当你不去检查激光的返回值或者不把改成可视化的情况的话,根本发现不了这个问题,进而导致后续算法出现问题,百思不得其解。

检查了接近一天,最后试出了一个不能算解决方式,只能算“逃避”方式的办法:

打开同一文件夹下的turtlebot3_waffle.urdf.xacro文件,其中162到166行:


    
    
    
  

中的z值调大即可。如果测距从3.5米改成了8米,那么0.122就应该改成0.142。

修改之后的结果如下,可以看出显示和测距都正常了。

Gazebo中Turtlebot3激光雷达最远距离调整后测距信息不正常问题解决方法_第2张图片

 


此外要注意,截至今天2020.7.16,我们还有两点问题没能解决:

1.这个问题看起来好像是被前面的相机给挡住了,但是如果激光雷达测距最远距离对应增大,仍然会出现同样的问题。因此还需要再次往高更改joint的z值,可见不是被遮挡了。

2.rviz不能订阅这个激光雷达的topic。(不知道是什么原因,但是写程序,或者直接rostopic echo是可以看到的)

不知道这个问题会不会修复。今天跟师弟调了一下午发现了这个让人无语的问题,最后歪打正着凑合着找到了一个解决方法,特此记录。

你可能感兴趣的:(Linux和ROS,bug,linux,ros,Gazebo,Turtlebot3)