Robotics StackExchange | Archived questions

Hector Mapping

Hi all! I'm getting use to ROS now. After setting up my Hokuyo UST-20LX laser, I'm currently working on hectormapping and hectornavigation. I have a few questions here.

1) Before I proceed on, can I check whether my rqt tree is in correct order?

map ---> scanmatcher_frame map ---> nav

nav ---> base_footprint

basefootprint ---> basestabilized basefootprint ---> baselink

baselink ---> laser baselink ---> baselaser (using tfbroadcaster and tf_listener)

2) I configure this tree from my geotiff_mapper.launch file. What I changed was the few node pkg lines below. Is it correct?

<?xml version="1.0"?>

<launch>
   <arg name="trajectory_source_frame_name" default="/base_link"/>
   <arg name="trajectory_update_rate" default="4"/>
   <arg name="trajectory_publish_rate" default="0.25"/>

  <node pkg="hector_trajectory_server" type="hector_trajectory_server" name="hector_trajectory_server" output="screen">
    <param name="target_frame_name" type="string" value="/map" />
    <param name="source_frame_name" type="string" value="$(arg trajectory_source_frame_name)" />
    <param name="trajectory_update_rate" type="double" value="$(arg trajectory_update_rate)" />
    <param name="trajectory_publish_rate" type="double" value="$(arg trajectory_publish_rate)" />
  </node>


  <node pkg="hector_geotiff" type="geotiff_node" name="hector_geotiff_node" output="screen" launch-prefix="nice -n 15">
    <remap from="map" to="/dynamic_map" />
    <param name="map_file_path" type="string" value="$(find hector_geotiff)/maps" />
    <param name="map_file_base_name" type="string" value="hector_slam_map" />
    <param name="geotiff_save_period" type="double" value="0" />
    <param name="draw_background_checkerboard" type="bool" value="true" />
    <param name="draw_free_space_grid" type="bool" value="true" />
  </node>


<param name="use_tf_scan_transformation" value="true" />
<param name="use_tf_pose_start_estimate" value="false"/>
<param name="pub_map_odom_transform" value="false" />

<param name="map_pub_period" value="1.0" />
<param name="map_resolution" value="0.05"/>
<param name="map_size" value="1024"/>


<node pkg="tf" type="static_transform_publisher" name="map_nav_broadcaster" args="0 0 0 0 0 0 map nav 100"/>

<node pkg="tf" type="static_transform_publisher" name="basefootprint_basestabilized_broadcaster" args="0 0 0 0 0 0 base_footprint base_stabilized 100"/>

<node pkg="tf" type="static_transform_publisher" name="basefootprint_baselink_broadcaster" args="0 0 0 0 0 0 base_footprint base_link 100"/>

<node pkg="tf" type="static_transform_publisher" name="nav_basefoot_broadcaster" args="0 0 0 0 0 0 nav base_footprint 100"/>

<node pkg="tf" type="static_transform_publisher" name="baselink_laser_broadcaster" args="0 0 0 0 0 0 base_link laser 100"/>


</launch>

3) I edited a bit on hectormapping/launch/mappingdefault.launch.

Changes are:

-Set <param name="base_frame" value="base_link" />

By default it is <param name="base_frame" value="footprint" />. The reason why I changed to baselink is because I have encountered an error that said basefootprint cannot transform to laser. Still, changing to base_link still shows this error but the warning doesn't keep popping out in the terminal.

-Add include files:

<include file="$(find hector_geotiff)/launch/geotiff_mapper.launch" />

<include file="$(find hector_elevation_mapping)/launch/elevation_mapping_node.launch" />

<include file="$(find hector_costmap)/launch/costmap.launch" />

I will be using elevationmapping in the future therefore I add this node inside here first. The reason for including these files is that I can run 4 nodes at just by `roslaunch hectormapping mapping_default.launch`.

Can anyone confirm that my changes are alright?

4) After setting up all this, the laser mapping isn't good either. All displays in RVIZ are in OK condition (LaserScan, TF, Map, etc..).

I have set the Global Fixed Frame into /baselink, it doesn't map out the area instantly. The only time it can map out nicely is when I just enter into RVIZ. Portion of the map appears but once I move the Hokuyo laser, it takes very long/doesn't even map. However when I set the Fixed Frame to scanmatcherframe, the RVIZ screen turns accordingly to how I move the Hokuyo laser, and even manage to do the mapping properly, but slowly. I don't really mind the slow mapping since my lecturer said Hokuyo UST-20LX does a slow mapping job. I want to ask whether setting to scanmatcher_frame is the correct option. Is it possible to prevent the RVIZ screen from turning according to the physical Hokuyo laser?

That's all for now. Thanks for any help!!

Asked by psprox96 on 2015-06-29 23:02:23 UTC

Comments

Answers