HUBO Humanoid Robot
The HUBO series of biped robots was developed by the Humanoid Robot Research Center at KAIST (Korea Advanced Institute of Science & Technology), and is manufactured by spin-off company Rainbow Inc. The latest version is the HUBO2+ which incorporates a lighter frame, slimmer casing, and improvements to the hand, wrist, battery and motor controllers.
HUBO has two on-board computers and comes standard with a real-time control system running on Windows XP withRTX. ROS has only been utilised with the Windows system in a minimal fashion, however this could change with the new win_ros project.
A new real-time control system has been developed using Linux and Xenomai that requires no upgrade of existing hardware. A ROS interface is being developed to encourage collaboration on software for higher-level functionality. Work is also being undertaken on a new, smaller Linux control computer based on a Blackfin processor.
For more information, see:
Contents
Hardware Overview
The joint actuators are connected to distributed JMC (Joint Motor Controllers) operating with a 1000-2000 kHz control loop. Each JMC communicates with the main control computer via CAN bus in a 100-200 Hz control loop.
An Advantech PCM-3362 single-core embedded computer with a PCM-3680 PC/104 2-channel CAN card runs the RTOS (Real-Time Operating System). There are two separate CAN buses, with the first channel controlling the lower body at double the rate of the upper body.
Additional CAN interface cards have been tested, including:
- Advantech PCM-3680i
- Peak PCAN-PC/104, PCAN-PC/104-Plus
Software Overview
The Rainbow API is used to communicate with the robot's JMC and sensors and a new version has been written for Linux using the Xenomai real-time framework. Xenomai was chosen because it has the best hard real-time performance, and thus is used for many other robots including the Barrett, Katana and Philips manipulators, and the CoMAN humanoid.
Originally Xenomai was supported by ROS, but it was dropped due to some earlier stability/linking problems. The Rainbow API is linked with Xenomai and rosrt is used for real-time publishing. The custom 2.6 kernel was tested with Linux Mint, but now Ubuntu 10.04.4 (Lucid) is used because it is a LTS (Long Term Support) release and compatible with both ROS Fuerte and Electric.
CAN hardware is supported using the Xenomai RTDM (Real-Time Driver Model) and RT-Socket-CAN drivers. The system uses multiple real-time threads with priority scheduling so the main control loop maintains hard real-time. If the computer was swapped for a dual-core, the CAN and controller threads can easily be allocated to separate cores. The Rainbow API can also support 4-channel CAN cards, once the Peak driver is completed.
The second on-board computer can run any compatible Linux/ROS distribution. A USB Wi-Fi adapter can be installed to communicate with additional off-board PCs.
ROS capability
The motivation to get ROS on HUBO came from the achievements made with the PR2 robot. There are now HUBO2 robots at KAIST and SNU in Korea, UESTC in China, Drexel, MIT, CMU, Virginia Tech, USC, Ohio State, Purdue and Penn in the United States, and I2R in Singapore, so this common hardware platform should advance the capabilities of humanoid robots.
ROS packages for simple joint level control have been developed but there is more work required to integrate ROS compatible walking and manipulation.
Availability
It is still to be decided if the Rainbow API and ROS packages will be open-source. The purpose of this announcement is to encourage support from other research groups, so if you want to use ROS on your HUBO, please get in contact with the author below.
Library Overview
Packages marked "hubo2" are for the HUBO2/2+ robot, and those marked "hubo_arm" are for a different stand-alone manipulator.
1. Basic Configuration
Component |
ROS package/stack |
Robot model (URDF) |
|
Robot model (URDF) |
2. Hardware Drivers and Simulation
Component |
ROS package/stack |
Motor Controller |
|
Simulation (3D) |
|
Simulation (3D) |
|
Simulation (3D) |
|
Simulation (3D) |
3. High-Level Capabilities
Component |
ROS package/stack |
Teleop |
|
Teleop |
|
Arm motion planning |