Gazebo | Ignition | Community
Ask Your Question

Render plugin force for debugging

asked 2021-02-24 18:50:51 -0500

jonesv gravatar image

updated 2021-03-04 16:57:04 -0500

I have a plugin that is applying a force on a link, and I would want that plugin to inject a visual for that force into the link. For instance, say that the link is a box, and my plugin applies a force on the side of the box that makes it translate in the world, I would want my plugin to add an arrow showing that force.

Because I don't know how to make an arrow, for now let's say I just draw a sphere where that force applies. So in my plugin's Load function, I get the model and the SDF:

void MyPlugin::Load(physics::ModelPtr model, sdf::ElementPtr sdf)

I can get the link, say my_link, with model->GetLink("my_link"). And I would like to inject the following visual into it:

  <visual name='test_sphere_visual'>
    <pose>0 0 1</pose>

I have been following the "spawn spheres" tutorial, where I successfully manage to create an msgs::Model from a string and inject it into the world. But in this case, instead of injecting a whole new model, I want to inject a visual into an existing link.

Is there a way to do that from a plugin?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2021-03-06 02:40:11 -0500

mz gravatar image

updated 2021-03-06 02:40:56 -0500

If there is any contact that's applying the force to the box, you can visualize the contact force by selecting in the menu View > Contacts.

If the force isn't covered by any of the items in the View menu, are you using ROS with Gazebo? If you are, a much easier way that's usually done is to visualize in RViz:

All the supported types, including arrows, are listed here

Adding a visual dynamically is really not the usual way that this is done.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2021-02-24 18:50:51 -0500

Seen: 31 times

Last updated: Mar 06