There are three pieces to the shuffleboard robot software:
mdc-telnet.py: Listens to the USB serial controllers, exposes an TCP port that prints the voltage and six raw count measurements.
Puma.py: Contacts the telnet server and uses
PumaFk.pyto translate the raw counts to joint angles and XYZ position / ASN angles. Accepts commands on stdin like
hold, and XYZ positions like
300 130 0.
Shuffleboard.py: Opens a TCP port to accept commands from the game server. Contacts the telnet server and translate commands line
move 300 -5into XYZ coordinates and ASN angles, Then uses
PumaIk.pyto generate raw joint commands to send the arm to the desired position.
To startup the arm:
- HIT THE E-STOP SWITCH
- Power up the the arm.
- Use the brake release switch to pose the arm into the home position.
- Power cycle the arm to reset the counters for the home position.
- Plug in the USB if it is not already.
mdc-telnet.py, wait for all six axes to report.
Puma.pyto contact the server. # Send
rcommand to read raw joint counters, # Send
acommand to read the joint angles. # Send
pcommand to print XYZ, ASN coordinates # Send
holdcommand to hold current position
Shuffleboard.pyto start the shuffleboard server
telnet localhost 27189to verify data
To unlock the arm:
- Twist the E-stop to unlock the brake.
- If anything looks weird -- HIT THE E-STOP SWITCH.
- If the sixth axis is spinning, hit the E-stop and wait a few seconds before releasing it.
- Sometimes it takes two or three times to settle back down.
To calibrate the arm positions at different distances:
- Values are in
- Yes, it could be written in a much better fashion.
- To test, send a command from the
350 130 0And then adjust the Z value downwards:
350 130 -20
350 130 -30**
350 130 -35, etc
- Write that value into the