Hector SLAM

Follow steps for setting up LIDAR usage.

1. roscore

2. rosrun urg_node urg_node _ip_address:=192.168.1.11

3. [Create bridge] sudo brctl addbr br0; sudo brctl addif br0 eth1[LIDAR first]; sudo brctl addif br0 eth0[pico]; sudo ifconfig br0 192.168.1.2 [anything that isn't being used] netmask 255.255.255.0 up (this step is necessary if need to access picostation)

4. roslaunch hector_slam_launch tutorial.launch

5. Move car around and perform mapping until satisfactory. cd [directory to save to]; rosrun map_server map_saver -f [name of file]

6. Close hector slam. In order to publish to /map topic now: cd [map directory]; rosrun map_server map_server [yaml file name i.e. test.yaml]

*** The following steps should be taken instead if we also want to store a rosbag copy of the map.

*5. If using rosbag: rosbag record -O [name of file] [topic name i.e. \map]

*6. Close/quit rosbag rerod and close hector slam. Play rosbag: rosbag play [bag file name i.e. testmap.bag]

*7. cd [map directory]; rosrun map_server map_server [yaml file name i.e. test.yaml]



map_server: takes map topic and save snapshots of these messages; primary use here is to be able to broadcast a saved map to other mapping algorithms.


** While we use certain ROS packages out-of-the-box (e.g. hector_slam), the following are modifications made to these third-party ROS packages:

  • hector_slam_launch/launch/tutorial.launch: set sim time in ROS (realtime=false vs bag=true), transforms (make sure names are correct as used in hector_mapping)
  • hector_mapping/launch/mapping_default.launch: parameters (mainly "Frame names"; <param name="scan_topic" value="scan"/> (scan would change if lidar publishes to different name topic) ) must match previous launch file; can change default resolution/size of map here as well.

*** Custom ROS packages are (should be) saved in ~/catkin_ws, whereas third-party packages are default installed into {CHECK PATH}