User Tools

Site Tools


drexel_jaemi_hubo

Jaemi HUBO


3D printing shells

Calibration

Lower Body

Before preforming any experiments with the Jaemi Hubo, it is necessary to properly calibrate the joints to ensure repeatability of motion and alleviation of unnecessary bending moments when standing or walking. The sections below detail the procedure to calibrate the lower body of the Jaemi Hubo.

Required Tools

  • Hoist/Gantry
  • Power supply/battery
  • Balancing plate
  • Laser level
  • Metal ruler

hubo_calibration_tools.jpg
From left to right: long metal ruler, short metal ruler, liquid magnetic level, laser level

hubo_balance_plate.jpg
Hubo balance plate

Procedure

hubo_key_fob.jpg

hubo_calibration_stance.jpg
When calibrating the joints, make sure that the laser level is projecting perpendicular to the face of the joint

hubo_calibration_stance_side.jpg
Side view aligning the hip, knee, and ankle pitch joints using the laser level

hubo_calibration_stance_front.jpg
Front view aligning the hip and ankle roll joints using the laser level

hubo_calibration_landmark.jpg
Use landmarks like holes to align the joints of the lower body

hubo_calibration_ruler.jpg
Use the metal ruler to check the yaw alignment of the lower body. The ruler will be flush with both limbs if the yaw is properly calibrated

Follow the steps of powering on the Jaemi Hubo in the proceeding section up to zeroing the joints. Make sure that the robot is lifted off the ground before attempting to move any joints.


Zero the joints of the lower body (click Search next to each joint of the lower body and waist, RHY, RHR, RHP, RKP, RAP, RAR, LHY, LHR, LHP, LKP, LAP, LAR, WST). Make sure the robot is off the ground when doing this.

Lower the robot to the ground onto a flat, level plate (Hubo calibration plate). Use the three screws on the plate and the ball level to ensure that the plate is level with the ground. Check with laser level the alignment of the joints of the lower body. Use landmarks like joint bearings and axes to check the alignment. Make sure the level is as perpendicular to the joint surface as possible.

If joints are not aligned, lift the robot and change the values in the boxes beneath the joint names and press Go Offset. The leftmost box represents the number of full rotations of the motor (4000 encoder ticks to one full rotation) while the rightmost box represents the number sub-rotations of the motor (below 4000 ticks). The rightmost box also controls the direction of rotation (e.g. “1, -1000” will move the motor 5000 ticks in the negative direction while “1, 1000” will move the motor 5000 ticks in the positive direction.


The offset values are absolute, meaning that they are referenced from the zeroed position of each joint coinciding with the joint's mechanical reference.

Use a straight-edged metal ruler to check to see whether or not the legs are flush with one another. Also, check the distance between the legs to verify that both are parallel.


Once the proper offsets have been found, record the values of the offsets and click Exit in the z-phase dialog window. Click CAN OFF and Exit to exit the program.


Open parameter.par under projectname\khr3win in a text editor. This file contains the motor parameters that are loaded onto the motor drivers when the robot initializes CAN communication. The data form a matrix whose row and column represented values are listed below. Unless mechanical changes are made to the robot in the form of replacing motors, harmonic drives or belts with differing components (e.g. smaller/larger harmonic drive, smaller/larger timing belt, encoder with a different number of ticks), do not change the any other values. To set the default home position, change only the values in columns 5 and 6 (rotation offset; sub-revolutions, direction).

File contents:

Column values:

  • Gear ratio of harmonic drive (e.g. 100 to 1, 160 to 1)
  • Driving gear (number of gear/belt teeth)
  • Driven gear (number of gear/belt teeth)
  • Ticks of encoder per revolution (e.g. 4000, 1024)
  • Rotation offset (full revolutions) Edit to calibrate home position
  • Rotation offset (sub-revolutions, direction) Edit to calibrate home position
  • Number of revolutions to search for zero
  • Motor direction

Row values:

  • RHY (Right Hip Yaw)
  • RHR (Right Hip Roll)
  • RHP (Right Hip Pitch)
  • RKN (Right Knee Pitch)
  • RAP (Right Ankle Pitch)
  • RAR (Right Ankle Roll)
  • LHY (Left Hip Yaw)
  • LHR (Left Hip Roll)
  • LHP (Left Hip Pitch)
  • LKN (Left Knee Pitch)
  • LAP (Left Ankle Pitch)
  • LAR (Left Ankle Roll)
  • RSP (Right Shoulder Pitch)
  • RSR (Right Shoulder Roll)
  • RSY (Right Shoulder Yaw)
  • REB (Right Elbow Pitch)
  • RWY (Right Wrist Yaw)
  • RW1 (Right Wrist Coupled Pitch/Roll Motor #1)
  • RW2 (Right Wrist Coupled Pitch/Roll Motor #2)
  • LSP (Left Shoulder Pitch)
  • LSR (Left Shoulder Roll)
  • LSY (Left Shoulder Yaw)
  • LEB (Left Elbow Pitch)
  • LWY (Left Wrist Yaw)
  • LW1 (Left Wrist Coupled Pitch/Roll Motor #1)
  • LW2 (Left Wrist Coupled Pitch/Roll Motor #2)
  • WST (Waist Yaw)
  • NKY (Neck Yaw)
  • NK1 (Neck Coupled Pitch/Roll Motor #1)
  • NK2 (Neck Coupled Pitch/Roll Motor #2)

Basic Operating Procedure

Setup

The procedure below details the steps needed to operate the Jaemi Hubo and execute basic built-in gestures and walking functionality. It is imperative to follow the instructions in this section exactly as there is no error checking in the Jaemi Hubo GUI.

Lift the Jaemi Hubo

Before powering the robot or attempting to move any joints, make sure that the robot is lifted off the ground at least 3“ above the ground when the legs are fully extended. If a medical hoist is being used, make sure to spread apart the legs of the hoist using the lever at the rear.

Make sure all components are turned off

Check to verify that all switches on the power panel behind the Jaemi Hubo are facing down.

Connect the Main Power Supply

Plug in the power supply to an outlet and connect the five pin keyed barrel connector to the back of the Jaemi Hubo's power board.

(Optional) Install the Battery

Installing a battery is optional to powering the Jaemi Hubo. It is strongly recommended to connect the power supply to the robot when using a battery as many of the current batteries do not hold proper charges.

Turn on the 48V Supply

Turn on the main 48V supply switch on the power panel.

Turn on the Body Computer

Turn on both switches for the left and right body PCs. Currently, only the left body PC is installed. However, both switches must be activated to power the cooling fans which are required for the PCs to function normally. The PC will beep audibly upon booting.

Log into the Body Computer

Connect to the body PC using either a wired LAN connection or over the HuNet wireless network. The body PC will attempt to connect to HuNet if the network is detected by the wireless adapter. Both ports are set to static IPs. The IP for the wireless connection is 192.168.0.102. The IP for the wired connection 192.168.0.112. HuNet supports DHCP and can be connected to using default network settings. The wired LAN connection requires setting a static IP (e.g. IP: 192.168.0.113, Mask: 255.255.255.0, Default Gateway: 192.168.0.1).

Open a remote desktop application. To use RDC under Windows, go to:

Start → run → “mstsc.exe” (Windows XP or later)
Start → Search → “remote desktop connection” (Windows Vista or later)

Log into the robot using the following credentials:

User: hubo
Login: #@^#.. (SHIFT + 3263..)

Once logged in, wait for the desktop to load.

Running a khr3win Application

All Jaemi Hubo applications are created using a template of the original source code made in Visual Studio 6.0. The core elements of the code (RTX) interface with the low-level elements of the system that require precise timing like the motor controllers and sensors. The Windows portion of the code controls the GUI and interfaces with the code running on the RTX portion of the system. It is possible to modify the code on both the Windows side and RTX side of the program to implement custom functions. The procedure to build and run a template program is discussed below.

Run Visual Studio 6

Upon loading the desktop, double-click on the Visual C++ 6.0 shortcut to launch Visual Studio 6.0.

Open the Program’s Workspace

All Hubo programs have an associated hubo2.dsw file with workspace parameters. Open the workspace file associated with the project that you're working with and wait for the project to load in Visual Studio.

Set Active Project Configuration as HUBO2

Right-click on the project and select Set as Active Project.

Clean Active Project - HUBO2

Right-click on the project and select Clean.

Build All - HUBO2- Win32 RTSS Release

Right-click on the project and select Build.

Set Active Project Configuration as khr3win

Right-click on the project and select Set as Active Project.

Clean Active Project - khr3win

Right-click on the project and select Clean.

Build All - khr3win

Right-click on the project and select Build.

Run the Hubo Program (khr3win.exe)

Click the red exclamation point button at the top of the toolbar to run the program.

Turn on the 12V Sensors and Motor Driver Switches

Switch ON the sensor switch and motor driver switch on the power panel behind the Jaemi Hubo. The motor drivers and sensors will turn on but the joints will still be pliable as the activation command has yet to be sent.

Move Jaemi Hubo Joints into Home Positions Manually

Move the joints as close to their homed position as possible to ensure proper homing. The legs and arms should be facing straight down and the torso should be flush with the pelvis. Keep each limb at least 1” apart from other limbs and the body.

Press CAN ON in the Main Menu


Wait for the program to communicate with the motor drivers and sensor boards. If CAN communication is successful, the dialog box will return the following message.

0th JMC Board is ready for 10 msec Int. time.
1th JMC Board is ready for 10 msec Int. time.
2th JMC Board is ready for 10 msec Int. time.
3th JMC Board is ready for 10 msec Int. time.
4th JMC Board is ready for 10 msec Int. time.
5th JMC Board is ready for 10 msec Int. time.
6th JMC Board is ready for 10 msec Int. time.
7th JMC Board is ready for 10 msec Int. time.
8th JMC Board is ready for 10 msec Int. time.
9th JMC Board is ready for 10 msec Int. time.
10th JMC Board is ready for 10 msec Int. time.
11th JMC Board is ready for 10 msec Int. time.
0th EJMC Board is ready for 10 msec Int. time.
1th EJMC Board is ready for 10 msec Int. time.
2th EJMC Board is ready for 10 msec Int. time.
3th EJMC Board is ready for 10 msec Int. time.
4th EJMC Board is ready for 10 msec Int. time.
5th EJMC Board is ready for 10 msec Int. time.
0th Sensor Board is ready.
1th Sensor Board is ready.
2th Sensor Board is ready.
3th Sensor Board is ready.
4th Sensor Board is ready.
6th Sensor Board is ready.

Click OK on the Motor Controller/Sensor Check Screen

Zeroing the Jaemi Hubo's Joints

Zeroing the joints of the Jaemi Hubo references the motion of the joint to a mechanical landmark (switch) on each joint. Before using the Jaemi Hubo, the joints must be properly calibrated.

Click ZPhase


The ZPhase dialog window will open.

Home each joint

The ZPhase dialog window contains the controls to both home the Jaemi Hubo's joints and set joint offsets relative to the current offset. Click Search next to each joint or click Auto Setup at the bottom of the window. Note: If a joint fails during the auto setup routine, it must be reset by clicking Search next to the failed joint.

Click Exit in the ZPhase dialog box

Zeroing the IMU, FT-Sensors

This next section details the steps needed to zero the IMU and force-torque sensors to enable the Jaemi Hubo to balance and walk.

Click "CAN OFF" in the Main Menu

Click "Exit" in the Main Menu

Switch OFF the Sensor switch

Lower Hubo to the ground

Wait 10 seconds

Switch ON the Sensor switch

Lift the Jaemi Hubo

Run khr3win.exe

Click on the exclamation point icon provided that no code has been modified.

Enable CAN

Click "ZMP Zero Set" in the Main Menu

Click "FT Null" in the ZMP Zero Set Dialog

Do NOT Close ZMP Zero Set Dialog and click "FT Show" in the Main Menu

Click "F/T Null" in the FT Sensor Read dialog box

This will null the FT sensors again. This action must do this a minimum of one time. Make sure that the values in the left boxes of Mx, My, Fz for the left and right feet and the wrist are all between -4 and 4 before continuing. Each time F/T Null is pressed, the program will take the difference between the current value and zero and add that to the FT offset.

Click "Hide" in the FT Sensor Read dialog box

Lower Hubo onto a perfectly level surface

Click Tilt Show in the Main Menu


The Tilt Read dialog window will open.

Make sure the values are correct

The tilt of the torso should be between 70 to 100 for pitch and -10 to 10 for roll.

Click Start Compensation in the Tilt Read dialog box

Wait about 20 seconds for the tilt compensation to begin.

Click Hide in the Tilt Read dialog box

Click Start in the ZMP Zero Set Dialog


Click the Start button in the dialog window to begin the ZMP homing procedure. This procedure requires around 5 to 10 minutes to settle on the proper values depending on the quality of the joint calibration. The desired values for the X-axis and Y-axiz ZMP are 10mm and 0mm (+/- 0.3mm) respectively.

Click "Set" in the ZMP Zero Set Dialog


Once the values of the ZMP are within an acceptable range, click Set.

Click "OK" in the pop up box with the text "Posture initialization is done"

The ZMP calibration is complete.

Click Exit in the ZMP Zero Set Dialog

The Jaemi Hubo is now ready to walk and perform gestures.

Walking and basic gestures

The following few steps must be take to complete the setup phase to run the Jaemi Hubo and enable waling and gestures. Further walking commands are covered in the walking section of the tutorial.

Click "Kirk Walking" in the Main Menu

Click "Walk In Place" in the Kirk Walking Dialog box

The Jaemi Hubo will begin stepping in place. This routine sets flags within the program that will enable walking and other gestures to be performed later.

Click "Stop" in the Kirk Walking Dialog box

The Jaemi Hubo will stop moving and return to the default crouched position. This button must be pressed to conclude all walking commands.

Walking

Before attempting to run any walking routines, please make sure that the walking in place routine in the preceding section has been run. Also, please make sure to allow sufficient slack in the hoist cables and power cord when walking or performing any gestures.

In the Kirk walking dialog window, the buttons Walk Ready and Home set the posture of the Jaemi Hubo to the crouched walking position and the upright standing position, respectively. The Jaemi Hubo will be set to the crouched walking pose by default during calibration. Please be sure that the Jaemi Hubo is in this position before attempting to run any walking routines.

When a walking routine is running, all other buttons in the window will be disabled except for the Stop button. Routines will loop continuously unless prompted to terminate. Press the Stop button to end any routine currently running and wait until the robot is stationary before attempting to begin another routine.

Walking in Place

Walking in place is a necessary step in completing the initial setup to run the robot as described in the preceding section. Make sure that the robot is stationary before pressing Walk in place. Once pressed, the robot will continuously step in place. Press Stop to terminate the routine.

Walking Forward and Backward

The buttons GO_FWD and GO_BWD command the Jaemi Hubo to walk forward and walk backward, respectively. Make sure the robot is stationary before pressing either GO_FWD or GO_BWD. The robot will continuously move in the desired direction until the Stop button is pressed.

The step length can be changed by changing the value in the Step Length text field. The default value is 150 mm.

Side-Stepping

The buttons L_side and R_side command the Jaemi Hubo to side-step to the left and right, respectively. Make sure the robot is stationary before pressing either L_side or R_side. The robot will continuously move in the desired direction until the Stop button is pressed.

The side-step length can be changed by changing the value in the Side Step Length text field. The default value is 60 mm.

Turning

The buttons CW and CCW command the Jaemi Hubo to turn clockwise and counterclockwise, respectively. Make sure the robot is stationary before pressing either CW or CCW. The robot will continuously move in the desired direction until the Stop button is pressed.

The turning angle can be changed by changing the value in the Turning Angle text field. The default value is 15 degrees.

Gestures

Gestures are a collection of upper body motions that can be performed through the Gesture dialog window. Click on Gesture in the Kirk walking dialog window to open the Gesture dialog window. The buttons in the Upper Body Gesture group perform a set of programmed gestures with the gesture description as the button name. For instance, pressing Raise Right Arm will raise and lower the Jaemi Hubo's right arm as a predefined routine. More complex motions can be performed by clicking on buttons like Taichi. These motions will conclude automatically and the robot will return to its default crouched position.

Special Functions

Hand Shaking

Active Stabilization

Carrying Objects

drexel_jaemi_hubo.txt · Last modified: 2023/06/08 23:09 by ttran