Manus Arm Emulator Code
Status: Alpha
Brought to you by:
jmoliere
File | Date | Author | Commit |
---|---|---|---|
example | 2012-11-13 | jmoliere | [r32] added log4cpp properties file so the app will run. |
obj | 2009-11-04 | jmoliere | [r1] Starting point for Manus Arm Emulator |
scratchpad | 2010-04-29 | jmoliere | [r25] Added the scratchpad directory for some minor d... |
src | 2010-11-26 | jmoliere | [r30] Added log4cpp to replace cout. |
test | 2010-11-25 | jmoliere | [r29] Fixed a problem where the joints used an unsign... |
Makefile | 2012-11-13 | jmoliere | [r31] made minor changes to get the environment to co... |
ReadMe.txt | 2010-05-02 | jmoliere | [r26] |
log4cpp_inited.log4cpp_properties | 2012-11-13 | jmoliere | [r31] made minor changes to get the environment to co... |
Manus Arm Emulator version 0.10 Alpha ------------------------------------- The goal of this project is to emulate the robotic arm titled The Manus Arm by Exact Dynamics (see http://www.exactdynamics.com/). This project is not produced or sponsored by Exact Dynamics. This project was created to allow me to develop software for this arm in a safe manner -- I prefer to make mistakes with the simulated arm instead of the real arm and possibly break it. This project was open sourced to allow anyone (basically hobbiests, students at Universities, and professionals) the ability to 'play' with an arm without actually buying one. At this time, please download the source from Subversion (use svn). The Manus Arm Emulator simulates the Input/Output communication with the Manus Arm when the arm is in Transparent Mode. More work will be done to abstract the communication so interfacing between a real arm and the emulated arm will simply be a matter of instantiating the correct objects. The communication protocol that the real arm uses is called Controller Area Network (CAN). I have had success getting the communication to the Manus Arm working with 3 different CAN communication devices. Manus Arm Emulator compile dependencies --------------------------------------- At this time The Manus Arm Emulator has the following open source library dependencies: 1) Boost libraries (see http://www.boost.org) follow instructions from library on how to build and install library 2) OpenSceneGraph (see http://www.openscenegraph.org) follow instructions from library on how to build and install library but take note... 3) muParser (see http://muparser.sourceforge.net/) follow instructions from library on how to build and install library 4) CppUnit (see http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page) I recommend building and installing the libraries above before trying to compile the Manus Arm Emulator software. To compile the Manus Arm Emulator, simply type 'make' inside the working directory of ManusArmEmulator. This software has been developed for Linux. Hopefully soon a Windows version will be available. I must iterate that I DO NOT HAVE A MANUS ARM. There are some issues that I'm trying to resolve such as the rate at which the prismatic joint opens and closes as well as the rate that the gripper opens and closes. There are many other issues that require precise measurement from the actual arm. Hopefully almost all if not all the issues will be resolved in a timely manner. To use the software ---------------------------------------------------- At this time the software partially emulates the PCCan.c software that ships with the arm. After running the software, you will see the arm displayed. Type the number '4' to put the arm in Joint mode and then type the following characters all joints rotate about the z-axis (blue axis). q -- rotates the arm about joint 1 in + direction a -- rotates the arm about joint 1 in - direction w -- rotates the arm about joint 2 in + direction s -- rotates the arm about joint 2 in - direction e -- rotates the arm about joint 3 in + direction d -- rotates the arm about joint 3 in - direction r -- rotates the arm about joint 4 in + direction f -- rotates the arm about joint 4 in - direction t -- rotates the arm about joint 5 in + direction g -- rotates the arm about joint 5 in - direction y -- rotates the arm about joint 6 in + direction h -- rotates the arm about joint 6 in - direction Cartesion mode needs to be implemented along with Fold in and Fold out. Denavit Hartenberg (DH) Parameters ---------------------------------------------------- the DH parameters for the emulated arm are: cm = centimeters degree = 180/PI Joint a alpha d theta # cm degrees cm degrees ------------------------------------- 0 0 0 d0 0 1 0 0 45 theta1 2 0 90 17.5 theta2 3 41 0 -7.5 theta3+90 4 0 90 32.5 theta4-90 5 0 -90 0 theta5 6 0 90 0 theta6 Goals for the future ----------------------------------------- This software does not exactly emulate the Manus Arm. Here are the obvious differences: 0) In a nutshell, at this time, this project only simulates Joint Mode. 1) cartesian mode does not work 2) Fold in does not work 3) Fold out does not work 4) Prismatic joint does not work 5) gripper does not work 6) status display with sounds does not work. 7) Windows build and install. The near term goals are the following 2) get the gripper working 3) get the prismatic joint working 4) get Cartesian mode working 5) get Fold in and Fold out working (possibly) more distant term goals are: 1) get status display and sound working 2) get hit detection working 3) simulate all the capabilities of Joystick mode. -------------------------------------------