User Tools

Site Tools


drc_hubo_i_dw

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
drc_hubo_i_dw [2017/04/17 13:57]
dwallace
drc_hubo_i_dw [2017/04/27 21:48] (current)
dwallace
Line 9: Line 9:
  
 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. 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.
 +\\ \\ 
 +{{ dylanw:​huboi.jpg?​600 }}
 +\\ 
 +===== 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.
 +\\ \\ 
 +{{ dylanw:​huboi_4pin.jpg?​400 }}
 +\\ 
 +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).
 +
 +{{dylanw:​huboi_power.jpg?​400 }} {{ dylanw:​huboi_2pin.jpg?​400}}
 +\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ 
 +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.
 +
 +{{ dylanw:​huboi_can_check.jpg?​400 }}
 +\\ 
 +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:
 +
 +{{ dylanw:​huboi_main_screen.jpg?​400 }}
 +\\ 
 +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.
 +
 +{{ dylanw:​huboi_buttons.jpg?​600 }}
 +\\ 
 +
 +  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:
 +
 +{{ dylanw:​huboi_pwm_mode.jpg?​400 }}
 +\\ 
 +==== 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 ====
 +
 +{{ dylanw:​huboi_velocity_mode.jpg?​400 }}
 +\\ 
 +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 ====
 +
 +{{ dylanw:​huboi_position_mode.jpg?​400 }}
 +\\ 
 +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 #:
 +
 +{{ dylanw:​huboi_change_id.jpg?​400 }}
 +\\ 
 +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:
 +
 +{{ dylanw:​huboi_dual_joint.jpg?​400 }}
 +\\ 
 +
 +===== 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:
 +
 +{{ dylanw:​hubo_calibration.jpg?​600 }}
 +\\ 
 +
 +Once the joints are aligned, we will access the menu, by long-pressing the **MENU** button. Below are the menu options.
 +
 +{{ dylanw:​huboi_menu1.jpg?​400 }}
 +\\ 
 +We will access the settings option, in order to change the home position. Below are the Settings options.
 +
 +{{ dylanw:​huboi_menu2.jpg?​400 }}
 +\\ 
 +{{ dylanw:​huboi_menu3.jpg?​400 }}
 +\\ 
 +{{ dylanw:​huboi_menu4.jpg?​400 }}
 +\\ 
 +{{ dylanw:​huboi_menu5.jpg?​400 }}
 +\\ 
 +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: <​[email protected]>​
drc_hubo_i_dw.txt ยท Last modified: 2017/04/27 21:48 by dwallace