ros-controls / ros_controllers

Generic robotic controllers to accompany ros_control
http://wiki.ros.org/ros_control
BSD 3-Clause "New" or "Revised" License
557 stars 527 forks source link

Add more controllers support #303

Open jacknlliu opened 6 years ago

jacknlliu commented 6 years ago

I got many ros controllers from robot_mechanism_controllers , which including

Force/Impedance Controllers:

Could these support in ros controllers?

bmagyar commented 6 years ago

Thanks for bringing this up. You may have noticed the overlap between these controllers and the ones in ros_controllers. The difference historical: the ones you've posted are from the pr2_controller_manager days which is where ros_control originates from. That system was specific for the PR2 robot, while ros_control is robot-agnostic.

I agree that we should have a look at those controllers and see if they are worth porting over.

mathias-luedtke commented 6 years ago

It might be even possible to wrap the PR2 controller interface to our controller interface, but I think this is worth the effort only if the controllers are generic (as @bmagyar already pointed out).

bmagyar commented 6 years ago

I was actually thinking to propose to the PR2 folks to consider reimplementing the pr2_controller_manager-related software with ros_control while keeping interface support but I think it'd almost be the same anyways.

On 3 November 2017 at 14:33, Mathias Lüdtke notifications@github.com wrote:

It might be even possible to wrap the PR2 controller interface to our controller interface, but I this is worth the effort only if the controllers are generic (as @bmagyar https://github.com/bmagyar already pointed out).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ros-controls/ros_controllers/issues/303#issuecomment-341720426, or mute the thread https://github.com/notifications/unsubscribe-auth/ADXH4QtBqpGKkEC4U11_X85u2MvhTXpcks5syyQ6gaJpZM4QQmB1 .

graiola commented 6 years ago

I think it should be possible to transform them in ros_controllers, but I have two concerns:

bmagyar commented 6 years ago

Well... It turns out we don't actually have tests for any of our effort controllers and rrbot only has dummy inertial parameters set up but in theory that should still allow tests to work.

bmagyar commented 6 years ago

@jacknlliu any thoughts on this?

jacknlliu commented 6 years ago

@bmagyar A lot of times, I want to use the effort controller interface(including joint trajectory controller and cartesian space controller), but I searched many ROS packages, especially ROS-Industrial and the GitHub projects about ROS, I find that no works on this, especially work with gazebo. I think this is very important for modern robotics research in Gazebo and ROS.

And I try to use the joint trajectory controller with effort interface, but we should first make the gravity compensation for Gazebo simulation robot, or the robot will not stable only with PID configuration about joint trajectory controller? An exploration about this, see Change the RRRBot to use torque control instead of position control by @JoshMarino. The same thing in joint velocity interface with Gazebo, see Controlling joints with velocity commands by @JenniferBuehler.

I think that there is some work left unfinished.

bmagyar commented 6 years ago

Gazebo has 2 approaches for this. One is through the ros_control interface where they leave controller implementations up to the user and one where the controllers are provided as standalone Gazebo plugins such as the gazebo differential drive plugin.

Thanks for pointing out those posts, the comments and changes of the authors would be very much valued for fixing our tutorials. Using open-source and contributing back are essential for keeping things running. We can't go out hunting for posts telling if a tutorial is wrong, we are to be approached.

The mode-switch should also be implemented for the Gazebo RobotHW so any joint interface could be used for the example robots. I personally can't allocate time to that now but would be happy to review PR-s on it.

JenniferBuehler commented 6 years ago

Thanks for letting me know about this. I was initially planning to make a PR proposing the addition of velocity controllers like the one I was playing around with, but haven't found the time yet. My package is now over a year old (or almost 2, oh time flies!) so it probably would need updating again anyway. If you think it would be really useful to have the sample velocity controller PR soon, I'll try to move this up in my TODO list :)

jacknlliu commented 6 years ago

hope you share your research about this up to date.

@bmagyar What do you think about the PR proposing about new type velocity controller from @JenniferBuehler ?

destogl commented 6 years ago

Hi,

we have some solution for generic Cartesian controllers extending ros_control controllers and using moveIt IK-plugin interface to dynamically load different IKs. We tested them on multiple ros_control enabled robots and they work perfectly. Would this be of your interests?

jacknlliu commented 6 years ago

:thumbsup: could you share your codes about these? And is it tested with Gazebo RobotHW?