Robai Cyton Gamma 7DOF Arm
The instructions and software provided via this page are obsolete and deprecated now. Please visit the Google Group for details on the new API for Actin ROS communication and instructions.
ROS Software Maintainer: Robai , Lentin Joseph
The ROS-Cyton Module provides a ROS interface for Energid's actinSE and Robai's Cyton 7-DOF humanoid manipulators. The aim of this module is to expose actinSE and the Cyton hardware API through ROS .
Source : git clone https://code.google.com/p/cyton-ros-pkg/
Contents
Overview
Using the ROS-actionlib a user can access the methods of Actin-SE and the Cyton hardware API. The methods included allow for direct, real-time control of the Cyton robot arms in both jointspace and end-effector modes.
The module consist of six nodes named as follows: actinSE_node ,cyton ,guide frame ,hardware ,send joints ,and set home .The core node(action server) is called actinse. The actinse node accepts end effector (EE) coordinates and publishes joint values and joint rates. The node which sends EE coordinates is called the guide frame node. It can be any program which is configured to send EE coordinates to a particular topic .The cyton node will subscribe to the output of the actinse node and send the valued to the cyton arm using the cyton hardware API (or the hardware node). The set home node moves the cyton to a default home position .
Cyton can also be directly controlled using joint space values. There are two nodes for doing this task, the hardware node and send joints node. The hardware node is an action server which will receive the joint values from the send_joints action client and publishes to a topic. The cyton node will subscribe to the topic and move the cyton according to the joint values.
Detailed Description
For additional details on the control interface or Actin please see the Actin-SE API or the Cyton Hardware Interface API.
ActinSE API's Cyton Hardware API's
ROS-Cyton Module Architecture
The ROS-Cyton module is using actinSE and the cyton-hardware library for its operation. The module mainly consist of actionservers and actionclients. There are two actionservers and two actionclients. The first actionserver is called actinse. It performs EE to joint-space conversion using the ActinSE Cyton IK engine. Its actionclient is the guide frame node. It will send guide frame values to the actionserver. The second actionserver is the hardware node. It is responsible for marshalling joint values from the actionClient to the /cyton/feedback topic. Its actionclient is the send joints node .It will send the joint values to the hardware node .The user can control the cyton in two ways.
End effector control
Joint-space control
1. End effector control
During end effector control ,the actinse node acts as action server and the guide frame node is the action client. The EE values are published from the guide frame node to the actinse node . The actinse node subscribes to the values and feeds back the resulting values in the /cyton/feedback topic.
1.1. actinSE_node
1.1.1. Subscribed Topics
/cyton/goal
1.1.2. Parameters
float32 position - Endeffector coordinates or jointvalues
float32 rate - Jointrates
float32 time - Simulation time
int32 eeindex - Endeffector type
uint32 home - Home flag to move cyton to home position
float32 gripper_value - Gripper joint angle for controlling gripper separately
float32 gripper_rate - Gripper joint rate
1.1.3. Published Topics
/cyton/result
/cyton/feedback
1.1.4. /cyton/result Parameters
float32 position - Joint values
1.1.5. /cyton/feedback Parameters
float32 position - Joint Values
float32 rate - Joint rates
float32 time - Simulation time
float32 gripper_feed_value
float32 gripper_feed_rate
1.2. guide_frame node(input node)
This node act as the action client. It will publish the following topics.
1.2.1. Published Topics
/cyton/goal
1.2.2. Parameters
float32 position - Endeffector coordinates
float32 rate - Joint rates
float32 time - Simulation time
int32 eeindex - Endeffector type
uint32 home - Home flag to move the cyton to home position
float32 gripper_value - Gripper joint angle for controlling gripper separately
float32 gripper_rate - Gripper joint rate
1.3. cyton_node
This node handles the movement of the cyton robotic arm. It uses the cyton hardware API for movement. It will subscribe to the /cyton/feedback topic from the actinSE node and push data to the hardware.
1.4. set_home
Moves the cyton to a default home position. It will only work when the user is working with EE coordinates .
Execution - rosrun cyton set_home
2. Joint-level Control
This node handles the movement of cyton through direct joint values .It acts as an actionserver. It will publish joint values to the topic /cyton/feedback.
2.0.1. Subscribed Topics
/cyton/goal
2.0.2. Parameters
float32 position - jointvalues
float32 rate - Joint-rates
float32 time - Simulation time
int32 eeindex - Endeffector type
uint32 home - Home flag to move cyton to home position
float32 gripper_value - Gripper joint angle for controlling gripper separately
float32 gripper_rate - Gripper joint rate
2.0.3. Published Topics
/cyton/feedback
2.0.4. Parameters
float32 position :Joint Values
float32 rate :Joint rates
float32 time :Simulation time
float32 gripper_feed_value
float32 gripper_feed_rate
2.1. send_joints
This node acts as an actionclient of the hardware_node. This will publish joint values to topic /cyton/goal.
2.1.1. Published Topics
/cyton/goal
2.1.2. Parameters
float32 position - Endeffector coordinates
float32 rate - Joint-rates
float32 time - Simulation time
int32 eeindex - Endeffector type
uint32 home - Home flag to move cyton to home position
float32 gripper_value - Gripper joint angle for controlling gripper separately
float32 gripper_rate - Gripper joint rate
2.2. cyton_node
This node handles the movement of the cyton robotic arm. It uses the cyton hardware API for movement. It will subscribe to the /cyton/feedback topic from the actinSE node and send to hardware .
2.2.1. Subscribed Topics
/cyton/feedback
2.2.2. Parameters
float32 position - Joint Values
float32 rate - Joint rates
float32 time - Simulation time
float32 gripper_feed_value
float32 gripper_feed_rate
Here the action-client is called the guide frame node. The function of the guide frame node is to send guide frame values (End effector coordinates) to the actinSE node .The guide frame node can be any program which can send the guide frame coordinates .
Tutorials
This package will works well on Ubuntu 11.04 ,for other distribution it is still in testing .
1. Installation
Set the PATH instruction in README file inside the cyton module folder
Execute roscd cyton
rosmake –rosdep-install cyton
2. Execution
Change the USBToDynamixel permission before execution
2.1. For EE control
Initializes cyton hardware node and actinSE actionclient
Send EE values to cyton
Setting cyton to home position
2.2. For Joint Control
Initializes cyton hardware
Send direct joint command to cyton