Advait Jain (http://www.cc.gatech.edu/~advait)
What this does
Tilting the Hokuyo using a servo and reading back the servo encoder position while getting scans from the Hokuyo allows us to generate a 3D point cloud of the world in front of the robot. We have used this 3D point cloud for object segmentation, door handle detection etc.
We first used this sensor in this paper: EL-E: An Assistive Mobile Manipulator that Autonomously Fetches Objects from Flat Surfaces. Advait Jain and Charles C. Kemp. Autonomous Robots, 2009. This paper and others can be downloaded from the Heathcare Robotics Lab website (http://www.healthcare-robotics.com)
Pictures of the Setup
This is the hardware setup that we use:
- Tilting servo: Robotis Servo (typically we use RX-28) http://www.crustcrawler.com/motors/RX28/index.php?prod=66
- This gives a serial interface to control the servo: http://www.crustcrawler.com/electronics/USB2Dynamixel/index.php?prod=65
- Hokuyo UTM. (http://www.acroname.com/robotics/parts/R314-HOKUYO-LASER4.html)
- Bracket to mount the Hokuyo on to the servo.
- This is a custom part that we have designed.
- The solidworks CAD file (utm-servo-bracket.sldprt). This requires Solidworks 2009.
- We have taken two routes for making the bracket
- We thank Abhishek Bhatkhande for making the CAD model from the bracket design.
- Four M2x4 (2mm diameter, 4mm length) to connect the servo to the bracket.
- Two M3x6 or M3x8 to connect the UTM to the bracket.
- Longer screws will require washers.
The image on the right shows how we power the Robotis servos and connect to the USB2Dynamixel converter.
- The block labeled 12V is a power supply that takes unregulated 24V as input and gives 12V regulated as output. Regulated power is not required for the servos but we also use the same power supply for Hokuyos and so find it convenient. RX28 servos can take between 12V and 16V (I think. Please read the manual to confirm).
- The output of this power block in the image is are the green (GND) and red (12V) wires.
- GND goes to both the USB2Dynamixel and the Robotis servo.
- 12V goes to the servo only. Notice that a cable on the USB2Dynamixel is clipped. This is intentional and is the one that is labeled N/C on the USB2Dynamixel. Connecting 12V to that causes the USB2Dynamixel to burn.
- The rest of the wiring from the USB2Dynamixel is simply straight connections for the RS485 communication.
- ROS (http://www.ros.org)
- You will need the following ROS packages from our public ROS repository (available at http://code.google.com/p/gt-ros-pkg/wiki/hrl_content_summary)