Lidar is working well, by which I mean that LaserScan looks very good in Rviz, but when trying to map with GMapping, the map is drawing walls, but it's also marking free space beyond the walls and other obstacles. I have tweaked the maxRange and maxURange parameters with no effect.
Asked
Active
Viewed 1,184 times
1 Answers
1
Solved -- found LaserScanRangeFilter package, which can change output of the LaserScan. Leaving the default values for lower_replacement_value and upper_replacement_value did not help (-inf), but changing to NaN made everything look great!
Here's my laser_filter.yaml:
scan_filter_chain:
- name: range
type: LaserScanRangeFilter
params:
use_message_range_limits: true
lower_threshold: 0.3
upper_threshold: 16.0
lower_replacement_value: NaN
upper_replacement_value: NaN
Here's my lidar.launch:
<launch>
<arg name="use_gazebo" default="false" />
<node name="ydlidar_node" pkg="ydlidar" type="ydlidar_node" output="screen" unless="$(arg use_gazebo)">
<param name="port" type="string" value="/dev/ydlidar"/>
<param name="baudrate" type="int" value="230400"/>
<param name="frame_id" type="string" value="laser_frame"/>
<param name="angle_fixed" type="bool" value="true"/>
<param name="low_exposure" type="bool" value="false"/>
<param name="heartbeat" type="bool" value="false"/>
<param name="resolution_fixed" type="bool" value="true"/>
<param name="angle_min" type="double" value="-180" />
<param name="angle_max" type="double" value="180" />
<param name="range_min" type="double" value="0.08" />
<param name="range_max" type="double" value="16.0" />
<param name="ignore_array" type="string" value="" />
<param name="samp_rate" type="int" value="9"/>
<param name="frequency" type="double" value="7"/>
</node>
<include file="$(find gmrover)/launch/laser_filter.launch" unless="$(arg use_gazebo)" />
</launch>

veggiebenz
- 389
- 5
- 12