Robot Arm: Difference between revisions
(Created page with "= Hardware = The arm is a [http://www.lynxmotion.com/c-130-al5d.aspx Lynxmotion AL5D]. = Operation = Currently the arm is controlled by interfacing directly with /dev/ttySx or /…") |
m (Note that the arm is long gone) |
||
(9 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
=== (2022-10-17): This arm is long gone === |
|||
= Software = |
|||
The robot arm was purchased with the intent of being used to create a mechanical turk. |
|||
The code going towards this goal lives in ~ssalbiz/arm, use "git clone ~ssalbiz/arm" to make a copy. |
|||
= Hardware = |
= Hardware = |
||
The arm is a [http://www.lynxmotion.com/c-130-al5d.aspx Lynxmotion AL5D]. |
The arm is a [http://www.lynxmotion.com/c-130-al5d.aspx Lynxmotion AL5D]. |
||
Line 4: | Line 11: | ||
= Operation = |
= Operation = |
||
Currently the arm is controlled by interfacing directly with /dev/ttySx or /dev/ttyUSBx . The syntax for controlling this is by sending the following string to the board: |
Currently the arm is controlled by interfacing directly with /dev/ttySx or /dev/ttyUSBx . The syntax for controlling this is by sending the following string to the board: |
||
< |
<pre> |
||
#<servo id> P<position> S<speed> T<time> |
#<servo id> P<position> S<speed> T<time> |
||
</ |
</pre> |
||
You can control multiple servos with one command |
|||
<pre> |
|||
#<servo id> P<position> S<speed> #<servo id> P<position> S<speed> T<time> |
|||
</pre> |
|||
S and T are optional parameters |
|||
Key: |
|||
* <servo id> - id of the servo being controlled (includes jaw) |
|||
* <position> - servo rotation position, generally between (500,2500) |
|||
* <speed> - speed of rotation; 100 means 10s to rorate 90°; leaving this off generates fast movement, 400 seems like a "safe" value? |
|||
* <time> - time it takes to complete the motion in ms; specified once for the entire motion |
|||
if both speed(s) and time are specified, time is a "minimum" and speed is a "maximum", i.e. the motion will take at minimum T milliseconds, but servoA will move no faster than speed SA |
|||
== Servo key and degree of motion == |
== Servo key and degree of motion == |
||
* 0 - Base |
|||
* 1 - Shoulder |
|||
* 2 - Elbow |
|||
* 3 - Wrist |
|||
* 4 - Grip |
|||
* 5 - Wrist Rotate |
|||
= Purpose = |
|||
The current purpose of the robot arm is to make an entity that can play chess against a human. |
|||
==Status== |
|||
Not being worked on. Need to complete the following: |
|||
* Complete physical modifications to robot arm to allow it to reach all pieces on the board |
|||
* Calibrate arm base mount against chess board squares |
|||
* Make the robot arm code talk to a chess program |
|||
* Make the chess program talk to the chess vision code |
|||
* Make the arm not have terrible things happen when the servos heat up |
|||
= External Links = |
|||
* a manual [http://www.lynxmotion.com/images/data/rios106h.pdf] |
|||
* j3parker's [http://csclub.uwaterloo.ca/~j3parker/arm.png 3D model of the arm] |
Latest revision as of 12:12, 19 October 2022
(2022-10-17): This arm is long gone
Software
The robot arm was purchased with the intent of being used to create a mechanical turk. The code going towards this goal lives in ~ssalbiz/arm, use "git clone ~ssalbiz/arm" to make a copy.
Hardware
The arm is a Lynxmotion AL5D.
Operation
Currently the arm is controlled by interfacing directly with /dev/ttySx or /dev/ttyUSBx . The syntax for controlling this is by sending the following string to the board:
#<servo id> P<position> S<speed> T<time>
You can control multiple servos with one command
#<servo id> P<position> S<speed> #<servo id> P<position> S<speed> T<time>
S and T are optional parameters
Key:
- <servo id> - id of the servo being controlled (includes jaw)
- <position> - servo rotation position, generally between (500,2500)
- <speed> - speed of rotation; 100 means 10s to rorate 90°; leaving this off generates fast movement, 400 seems like a "safe" value?
if both speed(s) and time are specified, time is a "minimum" and speed is a "maximum", i.e. the motion will take at minimum T milliseconds, but servoA will move no faster than speed SA
Servo key and degree of motion
- 0 - Base
- 1 - Shoulder
- 2 - Elbow
- 3 - Wrist
- 4 - Grip
- 5 - Wrist Rotate
Purpose
The current purpose of the robot arm is to make an entity that can play chess against a human.
Status
Not being worked on. Need to complete the following:
- Complete physical modifications to robot arm to allow it to reach all pieces on the board
- Calibrate arm base mount against chess board squares
- Make the robot arm code talk to a chess program
- Make the chess program talk to the chess vision code
- Make the arm not have terrible things happen when the servos heat up
External Links
- a manual [1]
- j3parker's 3D model of the arm