Assignment 3, Hardware Component

This applies to you only if your group has been loaned a Hokuyo laser range finder and Y-cable.  You will also need a laptop running ROS kinetic for which you have administrative access (i.e. permission to use sudo).

First install the urg_node package:

You will probably also need to be added to the dialout group in order to access the laser.  Do the following:

You will need to log-out then log back in again.  Execute groups to make sure you are a member of dialout.

Now start the ROS master with roscore and then run the urg_node as follows:

You could also run the urg_node from a launch file.  Execute the following commands to make sure laser data is being published:

You may see a number of “nan” (not-a-number) values in the data.  That is something you will have to address.

Your objectives should be as follows:

  1. Get everything above working to ensure that you have access to the sensor’s data.
  2. Visualize the laser data using rviz:
    • Under “Global Options” set “Fixed Frame” to “laser”.
  3. Execute your extract_all.py script and see what lines are generated:
    • CHANGES REQUIRED:
      • Currently this script subscribes to ‘base_scan’ not ‘scan’.  The best way to approach this is not to change the script, but to create a launch file that remaps the topic name from base_scan to scan.
      • Currently the script will probably fail because of the nan’s in the data.  You can either modify the script to reject nan’s (perhaps replacing them with some large distance like 10 m).  Or you can create a new node that does this job.
  4. Experiment with the parameters and aspects of the split-and-merge algorithm to try and improve performance on real data!

For objective 4 in particular, you should document any experiments for your report.  It is not required, but some students have used the Jupyter notebook as a way of embedding text, code, images, video, and plots all in one interactive document (an example from two 4766 students has been posted on D2L).  You should prepare your report and submit it via D2L.

Note that we will not be doing a demonstration component for this.  So your report should contain all of the necessary details.