Home | Tutorials | Wiki | Issues
Ask Your Question

Controller / PID for controlling joints through multiple values (acceleration, velocity, position)

asked 2013-09-11 08:00:35 -0600

Christoph gravatar image

Hi all,

I am trying to control my simulated robot arm using a ROS action client / action server environment. In this context I'll be given a FollowJointTrajectoryGoal with all the trajectory points and for every trajectory point the required acceleration, velocity and position for all joints.

I am not sure how to set and control all theses values together. Our real robot can directly work with all theses values. To control the wheels of my robot base I use a pid that uses velocity values only.

Thanks for your help,


edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2013-09-14 20:40:40 -0600

nkoenig gravatar image

You will need to write a plugin that controls the joints of your robot model.

Here is a simple example that will directly set the positions of joints:


Here is an example for a skid-steering robot plugin: https://bitbucket.org/osrf/gazebo/src/90e970a82d2944491430a0061d8aaa10a3ab20d7/plugins/SkidSteerDrivePlugin.cc?at=default

Here is an example of a plugin that connects to ROS: https://bitbucket.org/osrf/drcsim/src/1bd6dd0488ccda910866b13c544bfa31eaede523/ros/atlas_msgs/DRCVehicleROSPlugin.cpp?at=default

edit flag offensive delete link more


Hey Nate! I already have a working plugin that controls one of the parameters, in my case the joint position, but I would like to control/use the acceleration and velocity parameters too to get a thorough movement.

Christoph gravatar imageChristoph ( 2013-09-23 13:02:57 -0600 )edit

You can modify your gazebo plugin to apply forces to a joint to achieve acceleration and velocity control. Check out this tutorial

nkoenig gravatar imagenkoenig ( 2013-09-25 12:39:41 -0600 )edit

answered 2013-09-16 14:39:55 -0600

davetcoleman gravatar image

The ros_control project has a trajectory controller that includes an FollowJointTrajectoryGoal action server. It can then connect to your simulated robot using the gazebo_ros_control plugin by adding <transmission> tags to your robot's URDF. This is documented here and the trajectory controller is documented here.

edit flag offensive delete link more


Thanks Dave! I'll have a look on that. I already got some kind of action server, but that controls only one paramter at the moment. I want to use the other two as well.

Christoph gravatar imageChristoph ( 2013-09-23 13:05:15 -0600 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2013-09-11 08:00:35 -0600

Seen: 2,974 times

Last updated: Sep 16 '13