Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

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.

Recent activity

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.