Generic ROS Driver to Connect Any Arm with ROS

Hi I tried to create a generic ROS driver in order to connect almost any real or simulated robot arm with ROS

I tried to make the URDF as easily configurable as possible with some global parameters in order to modify it to your needs

For hardware interface i used this package


Where in the read and write function we assume perfect execution e.g
joint_position_[joint_id] = joint_position_command_[joint_id];

This has the effect that you can move the arm with ros control and Moveit using only RViz instead of Gazebo and ros_control_plugin

After that if you want to connect a real robot arm all you have to do is to transform the joint_states into appropiate servo commands with an extra node and send them to the arm for execution e.g with rosserial
I have included some examples of this node in the arm_bringup package and an arduino code on how to do just that

Furthermore i would soon include a publisher and subscriber in the hardware interface so you can easily connect and robot arms that have feedback.

Lastly i have include a 3D Perception package and a Pick and Place Server with Moveit Visual Tools

You can run the demo scripts in Melodic if you like for the simulation and pseudo real

For 3D Perception Demo you will need to be able to import in python pcl and sklearn, and i have pretrained a simple classifier model.sav file.

More details on the git

Github : https://github.com/panagelak/Generic_Arm

P.S I might make a similar package in order to connect any mobile base with ros_control (Diff_Drive_Controller) and the corresponding arduino code

P.S This is a KickOff project of my Open Mobile Manipulator Project
Github : https://github.com/panagelak/Open_Mobile_Manipulator
ROS Discourse : Mobile Manipulator - Cheap Educational - with GIF's

Cheers!!

4 Likes