Home | Tutorials | Wiki | Issues
Ask Your Question

peci1's profile - activity

2017-10-12 17:17:02 -0600 answered a question Windows 7 64bit install problem

The wiki with instructions is a bit outdated. It says it is for building gazebo 6. I now successfully build gazebo8 br

2017-10-12 17:13:57 -0600 received badge  Critic (source)
2017-10-12 17:08:57 -0600 answered a question Installing Gazebo on Windows. Missing Protobuf

It's an inconsistency in the Protobuf archive provided by OSRF. This path from instructions protobuf-2.6.0-win64-vc12

2017-10-12 17:01:51 -0600 answered a question How to install gazebo on windows 10

See http://answers.gazebosim.org/question/16234/how-to-install-ignition-math3-on-windows-10/ . You're building default b

2017-10-05 13:54:21 -0600 received badge  Nice Question (source)
2017-10-04 11:41:53 -0600 asked a question List of per-physics engine capabilities/compatibility/known incompatibilities

List of per-physics engine capabilities/compatibility/known incompatibilities Is there a place where one could quickly d

2017-04-18 16:25:23 -0600 received badge  Nice Answer (source)
2017-03-16 15:40:49 -0600 received badge  Necromancer (source)
2017-03-16 13:40:56 -0600 answered a question Parameters for a skid steering/simulated tracked robot (use of the fdir1 tag)

I know I'm resurrecting an old thread, but maybe others might still be interested.

Setting fdir1would be a solution if it worked correctly. For some reason, the direction is not treated as relative to the link, but in world coordinates, so you'd need to update it in every frame to the correct world direction. See https://bitbucket.org/osrf/gazebo/iss... .

Also, an omni-wheel needs the most precise friction computations that are available to work properly. Recently, the friction_cone model was added, which helped a lot in my case:

physics::PhysicsEnginePtr physics = world->GetPhysicsEngine();
const std::string frictionModel = "cone_model";
physics->SetParam("friction_model", frictionModel);

Last, a bit unrelated, but nevertheless, now there's (my) PR to add proper support of tracked vehicles. Everybody's welcome to try it out. https://bitbucket.org/osrf/gazebo/pul...

2017-02-23 07:31:46 -0600 received badge  Enthusiast
2017-01-27 06:56:58 -0600 answered a question Using TensorFlow with Gazebo

I agree the "ROS way" would be the easiest one.

I tried using the C++ API of tensorflow in Gazebo, and there you are stopped by the fact that Tensorflow requires libprotobuf >= 3, but Gazebo requires libprotobuf < 3. This is generally a big problem if you want to link your app. I'm right now trying some tricks with PIMPL and static linking, so let's see if it's at least possible with a lot of effort.

2016-11-04 05:36:40 -0600 received badge  Famous Question (source)
2016-06-14 10:26:42 -0600 received badge  Notable Question (source)
2016-06-10 10:31:27 -0600 received badge  Popular Question (source)
2016-06-10 09:56:15 -0600 commented question Offset Center of Gravity on a parsed model?

After some more digging, I concluded it is possibly a bug. I've reported it here: https://bitbucket.org/osrf/gazebo/issues/1981 .

2016-06-10 05:10:11 -0600 commented question Offset Center of Gravity on a parsed model?

I've also tried to replicate the way it is done in `InertiaMsgsTest::SetCoG()` test (via publishing a Model message), but the behavior is the same. Could it mean the test is insufficient?

2016-06-10 04:12:11 -0600 commented question How to spawn a robot with a joint to another robot(which is already spawned)?

Have you tried writing a model/world plugin to do that? When you get the `ModelPtr` of the arm, you should be able to add a joint to it... There is also support for nested models, which should also be doable programatically.

2016-06-10 04:11:46 -0600 answered a question How to spawn a robot with a joint to another robot(which is already spawned)?

Have you tried writing a model/world plugin to do that? When you get the ModelPtr of the arm, you should be able to add a joint to it... There is also support for nested models, which should also be doable programatically.

2016-06-10 04:04:43 -0600 commented question Offset Center of Gravity on a parsed model?

Yes, I did... It triggers no other updates than setting the whole Inertia...

2016-06-09 11:02:36 -0600 asked a question Offset Center of Gravity on a parsed model?

Hello, I have a physics::Model (i.e. not just its SDF representation, but the parsed model). I want to offset the center of gravity of one of its links during runtime (and reset the world afterwards to run a simulation with a different CoG).

I've tried virtually anything, and without success. I start with *link->GetInertial() = original_inertial_with_shifted_cog, then I call link->UpdateMass(). All of this is called inside the Load method of a model plugin. The robot shows correctly in the first step of the paused simulation, but after stepping further, the whole body goes wrong, flies away, or the CoG "tries" to get to its original position (shifting the link to an incorrect position and leaving large joint positional errors).

I tried "repairing" the relative pose of the link, relative parent pose of its joints (this is protected, but nevermind), virtually anything (before the call to UpdateMass). Always the same behavior.

If I modify the <inertial><pose> tag in the SDF, the model loads correctly with the CoG shifted, and the simulation can be run normally. The problem is I don't want to reload (delete, spawn) the model every time I want to move the CoG.

It seems to me there is some "ghost force" acting on the link that pushes its CoG always to the same position.

Is there a way to achieve this at runtime?

Before the first step of the simulation (everything's like I'd want): image description

After a few simulation steps (the CoG moved to its original position, shifting the main body): image description

2016-06-01 07:42:27 -0600 received badge  Supporter (source)
2016-03-14 18:23:26 -0600 received badge  Nice Answer (source)
2016-03-13 18:14:05 -0600 received badge  Famous Question (source)
2015-06-19 23:53:17 -0600 received badge  Necromancer (source)
2015-04-21 11:59:38 -0600 received badge  Famous Question (source)
2015-03-13 23:01:46 -0600 marked best answer Using_A_URDF_In_Gazebo: package:// URIs not described

When I read through the tutorials Using A URDF In Gazebo and Using roslaunch files to Spawn Models I have the impression that it is possible to run Gazebo with ROS without using Gazebo's model database.

To explain, I need to work with some models from ROS using Gazebo. In my view, adding the models to a local database doesn't make sense, because the users of my code just want to git clone and catkin_make and that's all.

So I searched for a way to specify paths to mesh files from my URDF relatively to the package they are contained in. Using the file:// protocol doesn't seem to be a good option, since its resolution is dependent on the working directory.

Somewhere I've found that a package:// protocol can be used, and it actually works in my models. However, there doesn't seem to be any documentation for that. Do you know of docs page that would explain the details and prerequisites for using that?

I've thought about another way to use my models without the need to install them locally. I could just add the package path to GAZEBO_RESOURCE_PATH. But where to do this? Should I use <env> tag in the launch file? Do you have any experience with that?

2015-02-02 18:55:31 -0600 received badge  Famous Question (source)
2015-02-02 18:55:31 -0600 received badge  Notable Question (source)
2015-01-22 17:53:57 -0600 received badge  Notable Question (source)
2015-01-13 09:57:47 -0600 received badge  Popular Question (source)
2015-01-07 01:32:51 -0600 received badge  Famous Question (source)
2015-01-05 09:20:08 -0600 asked a question Robot falling apart on unsmooth terrain

I have a multi-link robot SDF in Gazebo 2.1. It is a simple "static" model with just inertia and collision elements defined, no transmission elements or motors specified.

When I let the robot fall down on a plane, everything is ok.

However, I need to use a terrain model obtained from point cloud triangulation. Such terrain contains lots of small triangles with varying normals and errors (because of precision of the measurements and triangulation). When I let the robot fall on this terrain, it instantly begins to fall apart (even if the terrain is quite planar/the normals do not differ much).

My workaround so far is to preprocess the SDF to remove all joints (in different words - the links remain, just the joints are static), so that for every joint config I have a different SDF model. Highly ineffective, I know. Luckily, by this modification, the model stops falling apart and behaves in an expected way.

Do you have an idea on how to have a model with non-static joints that doesn't fall apart?

2014-12-10 12:14:18 -0600 answered a question URI paths to packages in the SDF model file?

It is possible using a weird hack.

In the package.xml of the package where you want to load the model (or just any package that gets loaded before your models are needed), declare the following export:

<export>
    <!-- gazebo_ros_paths_plugin automatically adds these to
        GAZEBO_PLUGIN_PATH and GAZEBO_MODEL_PATH when you do this export inside
        the package.xml file. You can than use URIs of type model://my_package/stuff. -->
    <gazebo_ros                                                                 
        gazebo_plugin_path="${prefix}/lib"
        gazebo_model_path="${prefix}/.." /> 
</export>

After doing this and loading the package (running a node from it? don' know exactly), you're allowed to specify things like <uri>model://my_package/models/foo.dae</uri>.

The ${prefix}/.. means to add the parent of your package directory to the model path, which should usually be the workspace itself. So then you can reference all packages from that workspace. If you need models from a different workspace, I think you have to declare the export in all needed workspaces somewhere.

I've learnt this knowledge from http://answers.gazebosim.org/question/6416/usingaurdfingazebo-package-uris-not-described/?answer=6419#post-id-6419 .

2014-12-05 12:37:45 -0600 received badge  Notable Question (source)
2014-12-02 15:37:25 -0600 received badge  Popular Question (source)
2014-11-11 08:48:39 -0600 received badge  Student (source)
2014-11-10 06:18:42 -0600 asked a question What is the difference between red and green contact force visualization in Gazebo client?

When 2 bodies are colliding and I set Gazebo (2.2) to show contacts, there is a blue ball and a line for each contact point. The lines are either red or green.

What do the colors mean?

My estimate is that green is for normal collisions, whereas red is for penetration (which should not occur with rigid bodies).

I assume these two cases can be distinguished using the contact depth information provided in the contact message, and that there is a threshold to tell if the line should be green or red. Where is the definition of the threshold? Or am I completely wrong?

2014-11-05 06:03:46 -0600 received badge  Necromancer (source)
2014-11-05 06:03:46 -0600 received badge  Teacher (source)
2014-09-15 05:12:33 -0600 received badge  Popular Question (source)
2014-08-29 04:52:33 -0600 answered a question The inertia matrix explained

I've created a tutorial explaining step-by-step how to estimate the inertia matrix of your robot from 3D models using Meshlab.

It is based on the same ideas @Martin Günther has in the end of his answer.

http://gazebosim.org/tutorials?tut=inertia&cat=build_robot