Robot Arm: Difference between revisions

From CSCWiki
Jump to navigation Jump to search
(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:
<source>
<pre>
#<servo id> P<position> S<speed> T<time>
#<servo id> P<position> S<speed> T<time>
</source>
</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&deg;; 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