Documentation Status

Cannot load information on name: hrl_tilting_hokuyo, distro: electric, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
hrl_hardware_drivers: force_torque | hrl_hokuyo | hrl_segway_omni | hrl_tilting_hokuyo | pan_tilt_robotis | phantom_omni | robotis | zenither

Package Summary

Documented

Python code to use a Robotis servo to tilt a Hokuyo to get 3D point clouds.

Cannot load information on name: hrl_tilting_hokuyo, distro: groovy, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: hrl_tilting_hokuyo, distro: hydro, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: hrl_tilting_hokuyo, distro: indigo, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: hrl_tilting_hokuyo, distro: jade, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

Making the Rig

Servo part number, CAD models for mounting adaptors, instructions for constructing the rig can be found here:

Getting a Point Cloud

Before using this code to obtain point clouds, you need to:

  1. have made a rig consisting of a Hokuyo mounted on a Robotis servo.
  2. be able use robotis to operate a Robotis servo.

  3. be able to use hrl_hokuyo to get scans from a Hokuyo.

Once you have the rig set up:

  1. roscd hrl_hokuyo; roslaunch acm0_utm.launch

  2. roscd hrl_tilting_hokuyo/src/hrl_tilting_hokuyo

  3. python tilt_hokuyo_servo.py -h

  4. Run it with appropriate parameters. For example:
    • python tilt_hokuyo_servo.py -d /dev/ttyUSB0 -n0 --save_scan --speed=10 --id=<servo id> --l2=0.035

  5. You should see the servo tilt the UTM between the two angles that you specified.
  6. Once the code runs, it will save the scans in a pkl. (e.g. 2009Oct05_203107_dict.pkl)

  7. To view the point cloud, use display_3d_mayavi.py (python display_3d_mayavi.py -h)

Using the Code

Brief description of the different files in this package:

  1. tilt_hokuyo_servo.py - defines the class to obtain point clouds.

  2. display_3d_mayavi.py - Uses mayavi2 to display point clouds.

  3. processing_3d.py - some functions for working with point clouds. Includes segmenting doors, door handles, horizontal surfaces (tabletops, countertops etc.), objects on a horizontal surface etc.

  4. occupancy_grid_3d.py - 3D occupancy grid implementation in python.

Troubleshooting

  1. Can you get scans from a Hokuyo using hrl_hokuyo?

  2. Can you use robotis to operate a servo?

  3. Walls are not vertical or walls and the ceiling do not seem to be at right angles in the point cloud:
    1. roscd hrl_tilting_hokuyo/doc

    2. look at the file servo_transforms.jpg

    3. Ensure that l1 and l2 that you are specifying when you run tilt_hokuyo_servo.py are correct.

    4. Note: l2 can be negative depending on how the UTM is mounted.

Wiki: hrl_tilting_hokuyo (last edited 2010-01-17 00:03:41 by AdvaitJain)