# How to control a joint with position and velocity using ros_control?

Right now I have postion controllers for all of my joints. I can set every joint to the position I want and It takes the velocity limit into account. But I can't get it to move slower then the limit. Im trying to move my robot to a position with a certain speed (less then limit). I tried something with safely limits and the combination of position and velocity controllers. I have also tried the trajectory controller but since I don't want to set a completion time, it didn't come to use to me.

My guess is that the solution should be fairly simple but cant see it atm... Any help is welcome! Thanks! Btw I need to do this without MoveIt unfortunately and I'm using latest ROS Kinetic.

Originally posted by msabur on ROS Answers with karma: 98 on 2017-05-17

Post score: 5

If you are using a position controller, it will move to the commanded position as fast as possible (max velocity). If you want it to move slower than that, you can 1) set the velocity limit to be lower, 2) send incremental position commands that will ensure it arrives at the speed you want, or 3) use the velocity controller instead.

Originally posted by Dave Coleman with karma: 1396 on 2017-05-17

This answer was ACCEPTED on the original site

Post score: 3

Comment by msabur on 2017-05-17:
Thank you so much!

Comment by thejose on 2020-08-04:
Is it possible to have both position and velocity controller for the same joint? The velocity controller to move the joint at a specific speed and the position controller to hold the the joint's position once a desired position is reached and velocity controller is turned off.

Comment by amjack on 2020-12-02:
Any update on this ? to have both position and velocity controller for the same joint?

Comment by SimonJ on 2022-04-18:
I would also like to know if it is possible to use a position and velocity controller for the same joint.

Comment by CroCo on 2022-05-25:
It is difficult for the velocity controller to maintain the zero setpoint. Do you know if there is a good strategy to overcome this limitation?