Skip to content

lara-unb/Cyton-LARA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cyton-LARA

Cyton Alpha 7D1G is a 7 DOF Robot Arm developed by Robai. It presents 9 servo motors controlled by a SSC-32 board. However, the servo motors does not provide position feedback. For this reason, the Cyton Alpha only allows open-loop projects, restricting a lot the possibilities of development. This project has as main goal closing the loop of the Cyton arm and developing a Matlab-Arduino user interface with some functions.

some text

Hardware Required

  1. Cyton Alpha 7D1G
  2. Arduino Mega

Software Required

  1. Arduino IDE
  2. Matlab

Hardware Modification - Closing the Loop

In order to close the loop of the arm, it is necessary to get the position of each servo motor (only 7 of them). Each servo motor has a potentiometer inside. Somehow, most of them doesn't have a wire solded on it. The ideia is to open the servos and sold a wire on the potentiometer. Doing so, for each servo position, the potentiometer will show a different voltage. Also, it is possible to see that the voltage grows linearly according to the servo position. Obs.: Do this at your own risk.

some text
some text

Arduino Mega

The Cyton C++ API provided by Robai is a good way to program the arm, however, as we are working with the feedback, the Arduino Mega is included in the hardware for reading the servo voltage values and also to execute the servo movement. How? Plugging a wire on the Arduino Mega TX1 port on the SSC-32 RX port will allow to communicate both boards through Serial1. This allow us to use the Serial to connect with ROS. Also, it is needed to plug a wire from Arduino Ground to the SSC-32 ground. It is recommended to set the baud rate of SSC-32 to 9600 (just disconnect to first jumper located in the BAUD section of the board). And one final detail: connect the Arduino AREF port tot he 3.3 V port in order to augment the servo feedback resolution.

some text

Matlab

The Matlab is mainly used to calculate the Forward Kinematics of the arm, as the Arduino is not powerful enough to do so. Also, it is used to present the User Interface with a Menu with some options.

Required Arduino Libraries

  1. LibSSC32: modified from original to use port TX1 instead TX
  2. Filters: https://github.com/JonHub/Filters
  3. StandardCplusplus: https://github.com/maniacbug/StandardCplusplus

Required Maltab Toolbox

  1. DQ Robotics: http://dqrobotics.sourceforge.net/

Required ROS Package

  1. Rosserial: http://wiki.ros.org/rosserial

DH Parameters

theta = [0, 0, 0, 0, pi, pi/2, 0]
d = [0.0379, -0.0046, 0.145, -0.011, 0.175, 0.0074, 0.0]
a = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0677]
alpha = [0, pi/2, -pi/2, pi/2, -pi/2, pi/2, pi/2]