Skip to content

Cyton Gamma 300: MoveIt! + Gazebo / Actual Robot

Notifications You must be signed in to change notification settings

MerAARIZOU/cyton_gamma_300-1

 
 

Repository files navigation

Cyton Gamma 300 + MoveIt + RWT

This work describes my contribution to manipulate the Cyton Gamma 300 from a web page using MoveIt and RWT.

  1. Host www folder in any HTTP server.
  2. Check for the Host and ROS addresses, and set the correct values in robot_gui.js file
  3. Launch roslaunch cyton_gamma_300_moveit_config rwt_demo.launch
  4. From a web browser go to <yourHostAddress>/www/cyton.html

Cyton Gamma 300 (GazeboSim/RealRobot + MoveIt)

  1. Description
  2. Packages
  3. Dependencies
  4. Quick start
  5. Tutorial
  6. Related Sources
  7. Rationale
  8. Maintainer

1. Description

Yet another repository that holds a collection of ROS packages to simulate and actuate the Cyton Gamma 300 7-DOF robotic arm. The simulation is done in Gazebo and the MoveIt! is used as a motion planning framework. The code has been tested with the kinetic distribution of ROS (as of mid March 2017).

2. Packages

  • cyton_gamma_300_controllers: controllers for actuating gazebo model or the real robot using MoveIt framework;

  • cyton_gamma_300_description: xacro description of the URDF robot model;

  • cyton_gamma_300_gazebo: gazebo simulation of the robot;

  • cyton_gamma_300_moveit: configuration files of the setup assistant to enable MoveIt functionality.

The aforementioned cyton_gamma_300_* packages enable motion planning for the Cyton Gamma 300 arm. These packages are not self-contained and the dependencies should be met to successfully run the software.

3. Dependencies

First, one needs a full installation of ROS, otherwise some other packages might be missing (refer here for the full ROS installation instructions). Second, one needs to install MoveIt. Third, for sensing one needs to install OpenCV (refer here for the installation instructions). Finally, these packages are additionally required to be in your ROS workspace (or on your $ROS_PACKAGE_PATH):

  • dynamixel_motor -- cyton_gamma_300_controllers depends on the package to actuate the robot motors;

  • ros_controllers -- are instantiated in cyton_gamma_300_controllers;

  • ros_control -- ros_controllers depend on this package;

  • control_toolbox -- ros_controllers depend on this package;

  • realtime_tools -- ros_controllers dependency;

  • warehouse_ros -- required if one wants to use the warehouse database server while using motion planning (included by default when running moveit setup_assistant)

Fortunately, one can use available ROS tools to install missing dependencies:

rosdep install --from-paths WORKSPACE --ignore-src --rosdistro=ROSDISTRO

4. Quick start: Plan & Execute

  1. In Gazebo simulation:

roslaunch cyton_gamma_300_controllers gazebo_moveit.launch

  1. On the real robot:

roslaunch cyton_gamma_300_controllers robot_moveit.launch

5. Tutorial

  1. Visualize the URDF model in RViz:

roslaunch cyton_gamma_300_description urdf_in_rviz.launch

  1. Spawn the URDF model in Gazebo:

roslaunch cyton_gamma_300_gazebo gazebo_world.launch

The model is subject to gravity forces and falls down from its original position.

  1. Test different types of ros_controllers in Gazebo simulation:
  • E.g. JointPositionController from effort_controllers:

roslaunch cyton_gamma_300_controllers gazebo_effort_controllers.launch

  • Or another example of JointPositionController from position_controllers:

roslaunch cyton_gamma_300_controllers gazebo_position_controllers.launch

  • JointTrajectoryController from position_controllers allows to control groups of joints:

roslaunch cyton_gamma_300_controllers gazebo_joint_trajectory_controllers.launch

  1. Specify a target pose in RViz, plan in MoveIt! using OMPL and execute a plan in Gazebo:

roslaunch cyton_gamma_300_controllers gazebo_moveit.launch

  1. Run MoveIt on the actual robot:
  • Make sure you are in the dialout group or you have read/write access to /dev/ttyUSB0 (assuming that /dev/ttyUSB0 is your dynamixel bus address). The following launch file will start everything one needs to plan and execute the plan on the actual robot:

roslaunch cyton_gamma_300_controllers robot_moveit.launch

  • Alternatively, it is possible to launch the same functionality separately (e.g. for debugging purposes):

First, we need to run a controller_manager.py script from dynamixel package that queries the stepper motors on the bus and initializes them. We logically separate motors 0-6 for the arm (or the manipulator planning group) and the stepper motor 7 for the gripper (the gripper planning group). We start initialization with the manipulator planning group:

roslaunch cyton_gamma_300_controllers robot_manipulator_manager.launch

Second, we need to spawn controllers that would activate the manipulator joints (i.e. motors 0-6 on the bus):

roslaunch cyton_gamma_300_controllers robot_manipulator_controller_spawner.launch

Third, we need to repeat steps one and two for the gripper:

roslaunch cyton_gamma_300_controllers robot_gripper_manager.launch

roslaunch cyton_gamma_300_controllers robot_gripper_controller_spawner.launch

Finally, we bring up MoveIt:

roslaunch cyton_gamma_300_controllers robot_moveit_movegroup.launch

6. Related Sources

Andras Fekete pioneered in his work migrating Cyton Gamma 300 arm to open source software from manufacturer's proprietary one. I must confess that I was not able to run his code due to some errors, still he was a source of inspirations for the follow up projects. Tyler Slabinski created beautiful meshes of the Cyton Gamma 300 arm and wrote the URDF file that others extensively use. AssistiveRoboticsUNH and Andreas Lydakis provided here and here respectively the repositories for running the actual robot using MoveIt, but did not include Gazebo support for simulations of Cyton Gamma 300.

7. Rationale

As already quite a lot of related sources exist on the github, the goal is (i) provide a functional step-by-step tutorial, (ii) to document the working setup for the current version of ROS.

8. Maintainer

Konstantin Selyunin, for suggestions/questions/comments please contact: selyunin [dot] k [dot] v [at] gmail [dot] com

About

Cyton Gamma 300: MoveIt! + Gazebo / Actual Robot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.0%
  • CSS 9.2%
  • Other 1.8%