Gazebo | Ignition | Community
Ask Your Question

Joao Britto's profile - activity

2018-07-20 03:23:44 -0600 received badge  Famous Question (source)
2017-05-02 04:08:16 -0600 received badge  Famous Question (source)
2016-11-29 10:27:29 -0600 received badge  Notable Question (source)
2016-11-29 02:39:17 -0600 received badge  Popular Question (source)
2016-10-18 08:08:11 -0600 received badge  Notable Question (source)
2016-10-18 08:08:11 -0600 received badge  Popular Question (source)
2016-10-11 07:13:19 -0600 received badge  Famous Question (source)
2016-10-10 15:05:27 -0600 asked a question Get accumulated force/torque in a link

Is there a way to have access to the accumulated forces/torques in a link in the actual step, before those forces are applied? I mean the dBodyGetForce/Toque, called in the callback ConnectBeforePhysicsUpdate? I want to update the force/torque before they are applied in the link.

It seems to me that we only can have access of the forces/torques applied in previous step, is that right?

2016-10-10 11:48:44 -0600 asked a question Hydrodynamics effect - added mass

Hi,

Is there a way to represent the added mass and fluid inertial forces for underwater vehicles in gazebo?

I'd like to consider an added mass on my vehicle like a 6x6 matrix, to be taken in account altogether with the vehicle inertial ([m*eye(3x3), zeros(3x3); zeros(3x3), I]).

Regards

2016-09-11 01:16:58 -0600 received badge  Student (source)
2016-09-11 01:15:28 -0600 received badge  Self-Learner (source)
2016-09-11 01:15:28 -0600 received badge  Teacher (source)
2016-09-11 01:14:53 -0600 received badge  Notable Question (source)
2016-09-09 12:39:19 -0600 answered a question Physics integration from acceleration to velocity doesn't match

I think I found the problem.

The default physics properties are: max step size = 0.001, real time update rate = 1000 and real time factor = 1. I was expecting it be kept true and I got the above results.

But when I change them to: max step size = 0.01, real time update rate = 100 and keep real time factor = 1, I got the result in the graph below, which seems to be rigth (acceleration of 0.25m/s² and velocity of 1 m/s in 4 seconds).

So my guess is that my pc was not able to perform the 1000 interactions/second (specially with plots and visualization going on). I just need to reduce the amount of interaction/second to make sure my pc can run the simulation respecting the real time factor.

image description

2016-09-09 03:29:14 -0600 received badge  Popular Question (source)
2016-09-08 07:41:24 -0600 answered a question Physics integration from acceleration to velocity doesn't match

To better explain, here is a graph

I apply a force in a link and plot the resulting force using model->GetLink("my_link")->GetRelativeForce() and the acceleration with model->GetLink("my_link")->GetRelativeLinearAccel(). The mass of the link is 350 kg, and for a 90N force gives a acceleration of ~0.25 m/s².

But for the velocity, displayed at the last graph with model->GetLink("my_link")->GetRelativeLinearVel(), the rate of increase is not what I expected (~2.5 m/s /10s). Gazebo provides a much slower velocity.

Gazebo indeed computes acceleration by dividing the force by the mass. But how it computes the velocity? Should not the acceleration being the derivative of the velocity?

image description

2016-09-07 17:25:03 -0600 received badge  Enthusiast
2016-09-06 14:16:19 -0600 asked a question Physics integration from acceleration to velocity doesn't match

Hi,

I have a SDF defining a AUV. It has several links, with joints of revolute and with 0 limits connecting them. So I can consider my robot one of rigid body. I also set the inertia of the main link with an known value and the others with a near zero mass and inertia. I also have my own dynamic model integrator, where I set the same model as my robot, with the same damping and buoyancy and apply the same efforts (in my case going forward).

Differently of what I expected, both simulations doesn't match. The forces and accelerations are the same (checked on the main link), but the velocities are not even close (I checked all in body frame). To get the velocity on my dynamic model, I integrate the acceleration. But looks like gazebo gets the velocity some other way, which doesn't match the expected.

Anyone knows how gazebo compute the velocities? Does it make the model behavior differently of an acceleration integrator? Is there any embedded damping on gazebo to force the model be stable?

To better explain, here is a graph

I apply a force in a link and plot the resulting force using model->GetLink("my_link")->GetRelativeForce() and the acceleration with model->GetLink("my_link")->GetRelativeLinearAccel(). The mass of the link is 350 kg, and for a 90N force gives a acceleration of ~0.25 m/s².

But for the velocity, displayed at the last graph with model->GetLink("my_link")->GetRelativeLinearVel(), the rate of increase is not what I expected (~2.5 m/s /10s). Gazebo provides a much slower velocity.

Gazebo indeed computes acceleration by dividing the force by the mass. But how it computes the velocity? Should not the acceleration being the derivative of the velocity?

image description

2016-09-03 06:32:24 -0600 received badge  Popular Question (source)
2016-07-13 15:38:29 -0600 asked a question Link::GetAccel considering inertial forces.

Hi,

I'd like to know if Link::GetWorldLinearAccel() takes in account the inertial force as Link::GetWorldAngularAccel() does? It seems to me that it's missing the inertial force in Link::GetWorldLinearAccel(), as described here, in eq 4.16. It means: return m^-1 * (F - w x m*v) = F/m - w x v.

If the above is right, my second question: How does the physical engine knows the acceleration for integration in the update step? The Link::GetWorldLinear/AngularAccel() should be the ones used in integral for providing the WorldLinear/AngularVel, right?