User Tools

Site Tools


drc_hubo_i_dw

HUBO-i and Calibration for DRC-HUBO

Author: Dylan Wallace Email: wallad3@unlv.nevada.edu
Date: Last modified on 01/12/17
Keywords: Humanoid, HUBO, Hardware, HUBO-i, Calibration

This tutorial is designed to teach DASL members about how to operate HUBO-i, how to calibrate DRC-HUBO and how you can use HUBO-i to debug HUBO operation.

huboi.jpg

Setup

Pictured above is the HUBO-i unit that we will use for calibration and testing. First, we need to plug-in the HUBO-i into DRC-HUBO's CAN ports. We do this by connecting the 4-pin connector pictured below into the left side of DRC-HUBO.

huboi_4pin.jpg
Each of these four ports controls a different limb, as each limb has its own CAN channel. The order from top-to-bottom is:

1. Left arm
2. Right arm
3. Left leg + waist
4. Right leg

In the event that the 4-pin connector is broken, you can use the two separate 2-pin connectors to access the CAN channels. First, attach the larger 2-pin connector to the back of DRC-HUBO as picture below (left). Then, connect the 2-pin CAN cable (black/white) to the right two pins of the 4-pin header, as pictured below (right).

huboi_power.jpg huboi_2pin.jpg
































Note that these two separate connectors can also be used to diagnose individual motor board by connecting to them directly.

Now that we have connected HUBO-i, we can power on DRC-HUBO according to the standard procedure.

When we first power-on the HUBO-i, it will perform a CAN check, as pictured below.

huboi_can_check.jpg
If this fails, then either the 48V is turned off, or the connectors are setup improperly.

Operation

Once the CAN check succeeds, you will be greeted with a menu similar to the one below:

huboi_main_screen.jpg
This screen is where we can access the individual joints. We can navigate HUBO-i utilizing the button layout. Below is a photo of the button layout and the function of each button.

huboi_buttons.jpg

1. Prev - Navigates to the previous control mode
2. Next - Navigates to the next control mode
3. Up/down arrows - Navigate the menu; Increase/decrease the control values
4. Left/right arrows - Apply the control values in the specified direction
5. Esc - Exit the menu
6. Enter - Selection; Modify the ID # (long press)
7. FET ON - Turns on the motor board (long press)
8. FET OFF - Turns off the motor board (long press)
9. ENC ZERO - Zeroes the encoder value for the selected motor (long press)
10. SRV ON - Turns on the servo control, locking the motor to the current position; Allows Velocity and Position control (long press)
11. SRV OFF - Turns off the servo control (long press)
12. HOME - Finds the home position of the specified motor (long press)
13. FUNC 1 - Changes motor control mode (long press)
14. FUNC 2 - Changes to non-complimentary switching mode (long press)
15. SCAN - Repeats the CAN check, bring you to the main menu (long press)
16. MENU - Accesses the menu for a motor board (long press)

Now that we know how to use the buttons, let's pick a joint form the menu, and learn about the different control modes. You will be greeted with a screen similar to below:

huboi_pwm_mode.jpg

PWM Mode

The default control mode is PWM mode, which utilizes pulses/s to move the motor. First, we will long press the HOME button to find the home position, and then press the FET ON button to turn on the motor board. Now, we can use the up/down arrows to increase the number of pulses/s, and the left/right values to apply the control value in the specified direction.

PLEASE BE CAREFUL WHEN APPLYING THE CONTROL VALUE, AS YOU COULD HARM THE ROBOT, THE ENVIRONMENT, OR YOURSELF

Velocity Mode

huboi_velocity_mode.jpg
This control mode controls the motor through a specified velocity. To use this mode, first HOME the motor, then FET ON. Finally, use the SRV ON to turn on servo control. Now we can use the velocity mode as we used the PWM mode, changing the values with the up/down arrows, and applying them with the left/right arrows.

Position Mode

huboi_position_mode.jpg
This mode can be turned on in the same manner as the the velocity mode, and controlled the same as well. However, this mode works by moving to a specified # of encoder ticks. So it is recommend to zero the encoder using the ENC ZERO button before using this mode.

Dual-Motor Boards

For some motor boards, especially in the arms, there are two motors per board, and so they have to be accessed differently. In order to do this, we will long press the ENTER button, and be greeted with the following screen, with a blinking cursor over the ID #:

huboi_change_id.jpg
Now, we will short-press the 1 button to change to the second board, and short-press ENTER. The screen should now look like below:

huboi_dual_joint.jpg

Debugging

In order to Debug the motor board, we can use the provided status codes for HUBO-i. These error codes will be listed in the top-right corner of the screen. Below is a list of these codes.

1. F0 - Board CH-0 FET driver failure
2. F1 - Board CH-1 FET driver failure
3. I - Input reference error
4. B - Closed-loop control error
5. J/S - Jammed motor
6. U - Joint has passed the upper limit
7. L - Joint has passed the lower limit
8. E - Encoder error
9. N - Non-complimentary switching mode on
10. XX - Home position failure
11. OK - All good

Calibration

Sometimes during regular wear-and-tear operation, DRC-HUBO's motors will be out of sync with their position, and so they must be calibrated. To do this, we will us the HUBO-i to align the the joints like below:

hubo_calibration.jpg

Once the joints are aligned, we will access the menu, by long-pressing the MENU button. Below are the menu options.

huboi_menu1.jpg
We will access the settings option, in order to change the home position. Below are the Settings options.

huboi_menu2.jpg
huboi_menu3.jpg
huboi_menu4.jpg
huboi_menu5.jpg
We will chose the Home Set1 option, in order to set the offset to zero. Then we will set the home offset to the proper position, as detailed in the manual. We can do this for each motor, once they are aligned, and this will calibrate DRC-HUBO to the proper home position.

Final Words

This tutorial's objective was to teach the concepts behind the calibration and debugging of DRC-HUBO using the HUBO-i. Complete operation instructions for utilizing HUBO-i were provided. Once the concepts were conveyed the reader could successfully debug and calibrate DRC-HUBO.

For questions, clarifications, etc, Email: wallad3@unlv.nevada.edu

drc_hubo_i_dw.txt · Last modified: 2017/04/27 21:48 by dwallace