DYNAPose - DYNAMIXEL/ArbotiX Pose Tool

Description:

mt_ignore
Pose Playback
mt_ignore
PC Control

All the InterbotiX robots turrets, arms, and crawlers use DYNAMIXEL servos. These servos all have positional feedback, allowing the ArbotiX-M Robocontroller to read the current position of each servo. This makes it possible to physically pose an InterbotiX robot, then capture the positions for each servo, allowing the user to save/capture the current pose. By capturing multiple poses, a user can create a sequence that can be repeated.

This firmware does not use any Inverse Kinematic calculations to position the servos - it simply moves the servos to a pre-set position. Please see the 'Demo' section for your Robot for more information on code examples that us IK engines.

If you are using an InterbotiX Robot Arm. see this article for more information on posing and playing back movements with the Arm Link software and IK engine.

Project Parts List:

OR

Any InterbotiX Robot Kit

Wiring:

Connection diagram for ArbotiX Robocontroller to servos and FTDI cable
Pin Device
DYNAMIXEL Bus DYNAMIXEL HUB/ Servo Chain
DC Jack SMPS Power Supply, Battery, or other 11-12v power

Setup:

Before using the dynaPose firmware, you will need to setup your robot and servos - see the Getting Started Guide for your robot. This firmware will need you to to connect a series of servos with sequential ID numbers set

Download Code:

Download DYNApose Code for ArbotiX Robocontroller

Unzip the DYNApose Code and open the dynaPoseSerial.ino file in the Arduino IDE

dynaPose -> dynaPoseSerial -> dynaPoseSerial.ino

Before you can load the code onto the ArbotiX-M, you will need to make some minor modifications to the code.

  • One line 3 of the code
    #define SERVO_COUNT 1
    Change the number to match the number of servos attached to the ArbotiX. For example, if you are using the PhantomX Pincher which uses 5 servos, the line would look like
    #define SERVO_COUNT 5
  • By default, the firmware will store/playback up to 5 poses. To adjust this, change the number in line 4
    #define POSE_COUNT 5

    Now you can load the code onto your ArbotiX-M. If you have problems loading your code onto your ArbotiX-M, see the ArbotiX Getting Started Guide.

    Once loaded onto the ArbotiX-M Robocontroller, open the Serial Monitor . Set the baud rate in the lower right hand corner to 38400 baud. You will see a series of error checks and then a menu

Using DYNAPose

1 - Relax Servos

Send a 1 using the Serial Monitor to relax all the servos. This will allow you to pose the robot.

2 - Enable Torque

Send a 2 using the Serial Monitor to turn the Torque on for all of the servos. The servos will stay in the current position.

AX servos have a 300 degree limit - make sure to only pose each servo within its range.

3 - Save Pose

Send a 3 using the Serial Monitor to save the current pose to the next avaialble pose in memory. The current positions of the servos will be saved, whether the servos torque is on or off. Once you have saved a pose, the 'next available pose' will increase by one, allowing you to save to the save to the next pose every time you send a 3. When you have saved the maximum number of poses (5 by default) the 'next avaialble pose' value will wrap around to the first pose.

If there is an error in reading all of the servos, you will get an error message, and the 'next avaialble pose' value will stay the same.

4 - Display All Poses

Send a 4 using the Serial Monitor to display all of the current poses. Once you've set all the poses, save this code to put in your own code.

5 - Play Sequence - Once

Send a 5 using the Serial Monitor to play through all of the poses once. Any pose that has not have data set to it will be skipped.

Send any number to the serial monitor to stop the sequence. Keep in mind that the sequence can only be stopped at the end of a pose change, so you may need to wait for the current pose to finish.

6 - Play Sequence - Repeat

Send a 6 using the Serial Monitor toplay through all of the poses repeatedly. Any pose that has not have data set to it will be skipped. The poses will continue to cycle until you power off the arm, or send a stop signal.

Send any number to the serial monitor to stop the sequence. Keep in mind that the sequence can only be stopped at the end of a pose change, so you may need to wait for the current pose to finish.

7 - Change Speed

Send a 7 using the Serial Monitor to initiate the speed adjustment. You will now be able to enter a number between 500 and 10000. This represents the number of milliseconds between each pose, so a smaller number will increase the speed.

8 - Set Next Pose Number

Everytime you sucessfully save a pose, the 'next avaialble pose' will increase by one. If you would like to overwrite a specific pose, use this option.

Once this option is selected, you can enter in the number of the next pose you would like to save over.

9 - Center Servos

Send a 9 using the Serial Monitor to set all the servos to their centered positions. This can be useful to check servo alignment.

Troubleshooting Errors

The dynaPoseSerial firmware will do a series of checks to make sure that all of the servos are present. If you get errors, check the following:

  • Check for loose/broken cables
  • Check that all servos have IDs set correctly
  • Make sure that you are using an appropriate power supply
  • Make sure you have properly set the SERVO_COUNT define
×

PC Control These demos and projects allow the robot to be controlled via a computer.

ArbotiX Commander Control - These demos and projects control the Robot using the ArbotiX Commander, the handheld Arduino based remote control.

Direct Control - These demos and projects control the Robot directly from sensors connected directly to the Robot's control board.

Pose Control - These demos and projects allow you to create and playback a sequence of poses.

Serial Control - These demos and projects control the robot using a serial packet protocol.

Standalone - These demos and projects are deisgned to let your robot function without a computer or additional microcontroller.

Wireless Control - These demos and projects allow you to control the robot wirelessly - usually by replacing the Serial Connection with XBee modules.

Reference - These articles have technical details regarding the control and operation of the robot.

×

More info here