Skip to content

RoboticsCollaborative/rdda_interface

Repository files navigation

rdda_interface

The rdda_interface is a ROS package developed for RDDA control library. It lets users control the 2-DOF remote-direct-drive gripper on ROS by sharing the input/output data between the ROS interface proccess and the gripper control process (based on RDDA library) using shared-memory technique. rdda_interface is mainly responsible for:

  • data synchronization for joint states and commanded reference between high-level ROS nodes and low-level controller,
  • dynamical parameters tuning (e.g. max velocity/torque and stiffness),
  • data collection and visualization.

Table of Contents

  1. Requirements
  2. Installation
  3. Joint Control
  4. Parameter Tuning
  5. Data Collection & Visualization

Requirements

  1. ROS Kinetic
  2. RDDA Control Library

Installation

The following instruction have been tested on Ubuntu 16.04. Similar instructions should not work for other Linux distributions.

  1. Install ROS Kinetic. If you have ROS Kinetic installed, you should be good to go.

  2. Install RDDA Control Library

  3. Clone the repository into the ROS package directory:

    git clone https://github.com/RoboticsCollaborative/rdda_interface
    
  4. Go to the directory of ROS workspace, then build the package:

    cd $<workspace>
    catkin_make
    
  5. If you can launch the interface, then you should be good to control the gripper:

    roscd rdda_interface
    roslaunch rdda_interface rdda_interface.launch
    

    To request the homing routine when launching the interface, set the argument:

    roslaunch rdda_interface rdda_interface.launch home:=1
    

    The homing routine is only required to run once after launching roscore, such that you can obtain upper/lower bounds and origins of the gripper through rosparam.

    A test to stream joints data with plotJuggler.

Joint Control

Obtain following joint states by subscribing to "rdda_interface/joint_states" ROS topic with sensor_msgs/JointState message.

  • float64[] position ~ joint angles w.r.t. motor coords (rad)
  • float64[] velocity ~ joint angles w.r.t. motor coords (rad/s)
  • float64[] effort ~ external torque/force (Nm)

Publish joint reference positions to "rdda_interface/joint_cmds" with trajectory_msgs/JointTrajectoryPoint message.

  • float64[] positions ~ joint reference position (rad)

Parameter Tuning

rdda_interface provides ROS services to tune dynamical parameters at runtime.

  • Velocity saturation ~ "/rdda_interface/set_max_vel" (rad/s)
  • Effort/torque saturation ~ "/rdda_interface/set_max_eff" (Nm)
  • Stiffness ~ "/rdda_interface/set_stiff" (Nm/rad)

Data Collection & Visualization

Monitor the streaming data with plotJuggler.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors