http://outgoing.energid.info/ROS/wiki/images/gamma1.jpg

Robai Cyton Gamma 7DOF Arm

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/

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.

  1. End effector control
  2. Joint-space control

End effector control

1.png

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.

actinSE_node

Subscribed Topics
  • /cyton/goal

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

Published Topics
  • /cyton/result
  • /cyton/feedback

/cyton/result Parameters
  • float32 position - Joint values

/cyton/feedback Parameters
  • float32 position - Joint Values
  • float32 rate - Joint rates
  • float32 time - Simulation time
  • float32 gripper_feed_value
  • float32 gripper_feed_rate

guide_frame node(input node)

This node act as the action client. It will publish the following topics.

Published Topics
  • /cyton/goal

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

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.

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

Joint-level Control

2.png

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.

Subscribed Topics
  • /cyton/goal

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

Published Topics
  • /cyton/feedback

Parameters
  • float32 position :Joint Values
  • float32 rate :Joint rates
  • float32 time :Simulation time
  • float32 gripper_feed_value
  • float32 gripper_feed_rate

send_joints

This node acts as an actionclient of the hardware_node. This will publish joint values to topic /cyton/goal.

Published Topics
  • /cyton/goal

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

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 .

Subscribed Topics
  • /cyton/feedback

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 .

Installation

  1. Set the PATH instruction in README file inside the cyton module folder
  2. Execute roscd cyton
  3. rosmake –rosdep-install cyton

Execution

  1. Change the USBToDynamixel permission before execution

3.png

For EE control

Initializes cyton hardware node and actinSE actionclient

roslaunch cyton cyton.launch  

Send EE values to cyton

rosrun cyton guide_frame_node 

Setting cyton to home position

rosrun cyton set_home 

For Joint Control

Initializes cyton hardware

roslaunch cyton hardware.launch 

Send direct joint command to cyton

rosrun cyton send_joints 

Wiki: Robots/Cyton-Gamma (last edited 2013-09-25 19:39:43 by lentin)