Gazebo | Ignition | Community
Ask Your Question

mkoval's profile - activity

2015-01-12 12:20:25 -0500 received badge  Famous Question (source)
2014-12-17 11:35:33 -0500 commented answer InsertModelSDF potential race condition

Thanks. The `AddEntry` event looks like what I want. Is there any way to process the message queue without also triggering a simulation step?

2014-12-17 11:08:05 -0500 received badge  Notable Question (source)
2014-12-17 11:07:37 -0500 commented answer InsertModelSDF potential race condition

Thanks! What is the recommended way of waiting for the model to be inserted? @NickDP's post uses a spinlock to wait until GetModelCount() increases. I am attempting to use Gazebo programmatically (in-process), so it is undesirable to trigger several physics updates every time I add a model. Ideally, I'd like to run the message processing manually (without also triggering a simulation step).

2014-12-17 01:26:51 -0500 commented question InsertModelSDF potential race condition

I accidentally removed that line when cleaning up the code. It's fixed now (same URL).

2014-12-16 15:04:15 -0500 received badge  Popular Question (source)
2014-12-16 14:54:59 -0500 commented answer InsertModelSDF potential race condition

This is likely the source of the issue. However, I am not sure why. I am manually triggering simulation timesteps with the gazebo::runWorld function. Shouldn't this force processing of the queue?

2014-12-16 00:47:23 -0500 asked a question InsertModelSDF potential race condition

I am trying to programmatically add objects to an environment with InsertModelSDF. There seems to be a race condition that causes this to sporadically fail if InsertModelSDF is called too quickly after init_world. This test script reliably fails on the first iteration and, additionally, sometimes fails on the second iteration of the loop:

Additionally, I noticed a few other quirks that are potentially relevant:

  1. GetModel only returns the new model after runWorld has run for at least one timestep.
  2. There is no reliable way of telling if InsertModelSDF failed.

Am I doing something wrong in my test script (e.g. neglecting acquire a lock)? Also, is there any way to force this data to refresh without running a simulation timestep?

2014-03-13 13:08:36 -0500 received badge  Famous Question (source)
2014-02-06 14:01:03 -0500 received badge  Famous Question (source)
2014-02-03 14:16:42 -0500 received badge  Supporter (source)
2014-01-29 19:03:14 -0500 commented answer Using Gazebo as a physics simulation inside a motion planner

Thanks for doing this! I'll build a nightly locally and see if I can get it running.

2014-01-27 17:16:44 -0500 received badge  Notable Question (source)
2014-01-27 10:23:02 -0500 received badge  Student (source)
2014-01-26 13:52:53 -0500 received badge  Notable Question (source)
2014-01-24 11:28:35 -0500 received badge  Popular Question (source)
2014-01-23 17:45:10 -0500 received badge  Popular Question (source)
2014-01-23 14:19:31 -0500 commented question Using Gazebo as a physics simulation inside a motion planner

Thanks again for the reply. That sounds like what we're looking for. However, I don't actually see any functionality besides Init, Load, and Reset exposed through the SystemPlugin interface. How do I control the start/stop/run state from that interface? (This will likely already be answered by the example.)

2014-01-23 14:16:04 -0500 commented answer Adding a special-purpose physics simulator

Thanks for the quick reply! I just edited my original post to answer your questions.

2014-01-23 14:15:21 -0500 received badge  Editor (source)
2014-01-22 16:05:09 -0500 asked a question Adding a special-purpose physics simulator

I'm interested in adding a special-purpose physics simulation for simulating the interaction between specific pairs of objects. In our case, this is a quasistatic physics simulator that I would like to use to simulate the interaction between the robot's end-effector and a specific object on a table.

The most obvious way of going about this is to implement the Simbody physics wrapper in Gazebo, similar to the existing physics engines. However, this seems like overkill since our simulation is only for a subset of objects in the environment and can use the same collision detectors provided by the existing simulations.

None of the plugin interfaces are obviously a great fit for this. How should I go about implementing this? How do I override the default physics simulation for certain objects?


Edit: I only need to control the object when the gripper is touching it. I can't, however, get away with adding forces to the object since our simulator does not model the object's dynamics. I should be able to work around this by teleporting the object according to the appropriate collision response.

2014-01-22 12:32:03 -0500 asked a question Using Gazebo as a physics simulation inside a motion planner

I'm interested in using Gazebo physics simulator inside the inner loop of a motion planner. For example, I would like to set the environment in an initial state, run exactly 100 ms of simulation, then record the final state of the environment. Ideally, I would like to run the [relatively simple] simulation much faster than real-time.

This requires low-level control over starting, stopping, and stepping the simulation without waiting for Gazebo's main event loop to run. We've found callbacks that notify us of these event happen, but no way to trigger them ourselves.

Are there any functions in the API that give us this type of low-level control over the simulation loop? Do I need to bypass Gazebo entirely and write my own simulation loop?