While your Allegro Application Studio installation was customized for your specific Allegro Hand hardware, there may arise a time when it is necessary to re-zero the joints or edit the encoder or motor directions.

This procedure may be necessary after replacing a servo or even just reassembling a joint after maintenance. With the tools provided, editing the joint zeros and directions is a simple process.

IMPORTANT: Do not press any motion buttons (Home, Ready, Grasp, Pinch, etc.) until all encoder/servo offsets and directions have been set correctly! The only buttons to be pressed are "Test Encoders" and "Test Motors" until the end of this procedure.

Contents

Encoder Directions

To test the encoder directions is simple. Just load Allegro Application Studio (AAS) with your hand plugged in and turned on. If you are unsure of how to use AAS with your Allegro Hand please refer to the Allegro Application Studio (User Manual).

When Allegro Application Studio is loaded, press the On button to connect the virtual and actual hands. You can now see the finger joints on the virtual hand jump to possibly arbitrary positions. If the virtual joint positions to not match the actual joint positions, this indicates that the encoder offsets and/or directions are incorrect.

To test the encoder directions, simply rotate each of the sixteen (16) joints on the actual hand one at a time while watching the virtual hand in AAS. If any of the joints rotates the opposite direction, the encoder direction needs to be changed. On both the left and right hands, the joints are numbered as follows: Finger one (1) is the index finger, finger two (2) the middle finger, finger three (3) the pinky and finger four (4) the thumb. On each finger, the yaw joint is considered joint one (1) and the three following knuckle joints are considered joints two (2), three (3) and the tip is joint four (4).

To edit the encoder direction for a specific joint, the joint specific encoder device file must be edited. These devices can be found in the devices folder:

[Allegro Application Studio Install Directory]\bin\models\Etc\ERHand\devices

For a right hand, the encoder files are specified as enc_RT_## and the left hand encoders are encL_RT_##. The first number in the name of the encoder file indicates the finger number and the second number indicates the joint number (as seen below). The contents of the file can be edited in any text editor but an editor meant for html editing, like Notepad++, is suggested.


HandJointNumbers.jpg

It can be seen in the comments of the encoder device file that there are fields for both the encoder direction and offset. For each virtual hand joint whose rotational direction did not match that of the actual hand joint, the property direction should be changed. If it is a positive(+), change it to a negative(-). If negative, switch it to a positive.

<!-- enc_RT_24.DML -->
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 
...
 
  <specification byte="4" period="0" physics="..\..\..\devices\rDeviceERHandEncoder.rdd">
    <property name="channel" value="0"/>
 
    <property name="direction" value="+"/>   <!-- Encoder Direction -->
    <property name="offset" value="-1105"/>    <!-- Encoder Offset -->
 
    <property name="system device name" value="COMM"/>
  </specification>
 
</Device>

Once this has been done for all of the incorrect joints, it is wise to reload AAS and check once again the joint encoder directions. If any are incorrect, go back in and switch the sign of those affected. Once all joint encoder directions are correct, it is time to edit the offsets.

Encoder Offsets

Zeroing the joint encoders is an even simpler process than changing the signs. Once again, load Allegro Application Studio (AAS) and push the On button to connect to the Allegro Hand.

First, one should manually place all joints in their zero position. To do this, one must remove the hardware stop screw behind the thumb joint.

ThumbMechLimit.jpg
(v1.0)


ThumbMechLimit 3.0.jpg
(v2.0) (v3.0)



The hand's zero position includes all fingers, including the thumb, outstretched so that the hand is flat. All finger links should be aligned and the finger yaw joints should align with the palm plane. Once the joints are in their zero position, we can read the encoder values to determine the offset values necessary to make this position zero.

Note: You may have to support the thumb which reading the values as gravity will make it sag from the set position.

There are two buttons below the motion buttons entitled Test Encoders and Test Motors. Press the button entitled Test Encoders and the current raw encoder values will print to the terminal window likely hidden behind the AAS main window. These values correspond to each joint in the order where enc_11 = 0, end enc_23 = 6, etc. The values printed are the exact values that must be input into each corresponding encoder device file's offset field.

Note: Make sure you are editing the encoder files for the proper hand (left/right).

Once all of the offsets have been updated, restart AAS to see if the virtual hand joints match the positions of the actual hand joints. The virtual hand should now well-represent its real world companion in both joint angle and rotational direction.

Note: If any joints look to be way off, check the joint direction again for that joint. If incorrect, you must find the offset for that joint again after changing the joint direction.



ZeroAndDir.jpg

EnvoderOffsets.jpg

Motor Directions

The motor directions can be tested using the Test Motors button in AAS. Each time this button is pressed, a small torque will be applied to a consecutive motor, indicating the positive direction of rotation. Each time the button is pressed, the number of joint to which the torque is applied will iterated allowing you test each joint one at a time.

The joint directions considered positive can be seen in the diagrams below.

Right Hand

HandDimensionsCAD3.jpg




Left Hand

HandDimensionsCAD4.jpg




If, when commanded the positive torque, any of the joints move in a direction opposite the direction specified, the motor direction must be switched. The motor direction is changed in the same way the encoder direction is changed. Again, on both the left and right hands, the joints are numbered as follows: Finger one (1) is the index finger, finger two (2) the middle finger, finger three (3) the pinky and finger four (4) the thumb. On each finger, the yaw joint is considered joint one (1) and the three following knuckle joints are considered joints two (2), three (3) and the tip is joint four (4).

To edit the motor direction for a specific joint, the joint specific motor device file must be edited. These devices can be found in the devices folder:

[Allegro Application Studio Install Directory]\bin\models\Etc\ERHand\devices

For a right hand, the motor files are specified as motor_RT_## and the left hand motors are motorL_RT_##. The first number in the name of the motor file indicates the finger number and the second number indicates the joint number (as seen below). The contents of the file can be edited in any text editor but an editor meant for html editing, like Notepad++, is suggested.


HandJointNumbers.jpg

It can be seen in the contents of the motor device file the field for the motordirection. For each virtual hand joint whose rotational direction did not match that of the joint direction diagram, the property direction should be changed. If it is a positive(+), change it to a negative(-). If negative, switch it to a positive.

<!-- motor_RT_34.DML -->
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 
...
 
  <specification byte="4" period="0" physics="..\..\..\devices\rDeviceERHandMotor.rdd">
    <property name="channel" value="11"/>
    <property name="current lower" value="-1.0"/>
    <property name="current upper" value="1.0"/>
 
    <property name="direction" value="-"/>   <!-- Motor Direction -->
 
    <property name="gear ratio" value="1"/>
    <property name="system device name" value="COMM"/>
    <property name="torque constant" value="1"/>
    <property name="torque scale" value="1.0"/>
  </specification>
 
</Device>

Once this has been done for all of the incorrect joints, it is wise to reload AAS and check once again the joint motor directions. If any are incorrect, go back in and switch the sign of those affected. Once all joint offsets and directions are correct, you may safely test the supplied grasping algorithms.




Add your comment
Allegro Hand welcomes all comments. If you do not want to be anonymous, register or log in. It is free.




Copyright & Trademark Notice
Allegro, the Allegro logo, RoboticsLab, the RoboticsLab logo, and all related files and documentation are Copyright ⓒ 2008-2016 WONIK ROBOTICS. All rights reserved. RoboticsLab and Allegro are trademarks of WONIK ROBOTICS. All other trademarks or registered trademarks mentioned are the properties of their respective owners.

SimLab's Allegro Hand is based on licensed technology developed by the Humanoid Robot Hand research group at the Korea Institute of Industrial Technology (KITECH).

Any references to the BHand Library or the Allegro Hand Motion and/or Grasping Library refer to a library of humanoid robotic hand grasping algorithms and motions developed and published by KITECH researchers.
J.-H. Bae, S.-W. Park, D. Kim, M.-H. Baeg, and S.-R. Oh, "A Grasp Strategy with the Geometric Centroid of a Groped Object Shape Derived from Contact Spots," Proc. of the 2012 IEEE Int. Conf. on Robotics and Automation (ICRA2012), pp. 3798-3804

Wiki maintained by Sean Yi <seanyi@wonikrobotics.com>

KitechLogo.jpg Wonikrobotics logo.png





Whos here now:   Members 0   Guests 0   Bots & Crawlers 3