Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shared pointers for melodic #23

Closed
jonbinney opened this issue Aug 17, 2018 · 10 comments
Closed

Shared pointers for melodic #23

jonbinney opened this issue Aug 17, 2018 · 10 comments

Comments

@jonbinney
Copy link

Starting in melodic, the urdf parser uses std::shared_ptr instead of boost::shared_ptr. I've made the fixes in a branch on my fork: jonbinney@9fcc361

I'm not PRing these into kinetic-devel of this repo since they are breaking changes. Could either create a melodic-devel branch or I could add a bunch of preprocessor stuff to change the code depending on distro. Preference?

@tonybaltovski
Copy link
Member

Thanks for bringing this up @jonbinney. My preference would be a melodic branch since it is a good chance to introduce other breaking changes. I made a melodic-devel branch.

@jonbinney
Copy link
Author

Thanks, I've create a PR to the melodic branch with the commit: #24

@tonybaltovski
Copy link
Member

Awesome, thank you @jonbinney. Merged! Out of curiosity, are you just using the controller?

@jonbinney
Copy link
Author

Yep - needed a good twist to mecanum controller for a custom robot :-)

@tonybaltovski
Copy link
Member

@jonbinney, if you have a need, we could move this out from here into a standalone package so other platforms can use it. I don't think this will ever get merged into ros-controls/ros_controllers#149.

@jonbinney
Copy link
Author

Oh! I had totally missed that PR discussion. It would be nice to have just the controller in its own repo (although it would be even better if it could get merged into ros_controllers). It sounds like the main barrier to getting this into ros_controllers is tests and gazebo support. No rush - I'll comment on that PR for now to see if I can get a good picture of what would be needed before getting this merged in.

@tonybaltovski
Copy link
Member

That was the barrier. There was no great way to simulate this at the time (haven't looked at it recently though). There is a holonomic simulation for the Ridgeback using the force move plugin here:https://github.com/ridgeback/ridgeback_simulator/tree/indigo-devel/ridgeback_gazebo_plugins or the PR for it https://github.com/tu-darmstadt-ros-pkg/hector_gazebo/pull/29/files. It should work to validate the mecanum controller.

@mikepurvis
Copy link
Member

The "force push" solution isn't really testing the controller though— it completely bypasses it for the sake of being able to test the whole robot end to end.

I really wanted the directional friction solution to work, and sunk a nontrivial amount of time on it, but all that was ~3 years ago and under Gazebo 7. It's possible that the situation is different under Gazebo 8 or 9— if anyone's interested to pick up the work again, you can start here:

https://github.com/ridgeback/ridgeback_simulator/blob/indigo-devel/mecanum_gazebo_plugin/src/mecanum_plugin.cpp

https://github.com/ridgeback/ridgeback/blob/kinetic-devel/ridgeback_description/urdf/ridgeback.gazebo#L89-L107

Basically just switch the plugins in the URDF over to the commented-out ones, launch the sim, and give it a series of twists that command it to move in X and Y. Generally I found that the "strafe" commands would seem to work correctly in either direction for a metre or two and then it would seemingly go unstable and spin out of control. I strongly suspect that the plugin was not correctly updating the directional friction as the wheel turned, but without a reliable way to visualize the friction vector, it seems like a dead end to try to fix it.

@jonbinney
Copy link
Author

Thanks @mikepurvis, really appreciate the work you put into that. If I find time I'll take another look.

@civerachb-cpr
Copy link
Contributor

Closing due to inactivity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants