puma /

Filename Size Date modified Message
120 B
58 B
347 B
6.0 KB
283 B
1.7 KB
6.3 KB
529 B
2.8 KB
4.7 KB
2.0 KB
2.5 KB
1.8 KB
2.5 KB
1.1 KB
4.1 KB
1.4 KB
871 B
316 B
3.2 KB
634 B
21.1 KB

PUMA robot

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.py to translate the raw counts to joint angles and XYZ position / ASN angles. Accepts commands on stdin like home, 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 -5 into XYZ coordinates and ASN angles, Then uses PumaIk.py to 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.
  • Run mdc-telnet.py, wait for all six axes to report.
  • Run Puma.py to contact the server. # Send r command to read raw joint counters, # Send a command to read the joint angles. # Send p command to print XYZ, ASN coordinates # Send hold command to hold current position
  • Run Shuffleboard.py to start the shuffleboard server
  • Run telnet localhost 27189 to verify data

To unlock the arm:

  • Send hold command.
  • 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 Shuffleboard.py function map_z.
  • Yes, it could be written in a much better fashion.
  • To test, send a command from the Puma.py program: 350 130 0 And then adjust the Z value downwards: 350 130 -20 350 130 -30 ** 350 130 -35, etc
  • Write that value into the map_z function.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.