Gazebo | Ignition | Community
Ask Your Question

pablogaralv's profile - activity

2014-01-31 04:22:34 -0500 received badge  Taxonomist
2013-06-19 02:11:14 -0500 received badge  Famous Question (source)
2013-05-26 15:57:43 -0500 received badge  Famous Question (source)
2013-04-12 10:55:09 -0500 received badge  Notable Question (source)
2013-03-13 04:28:51 -0500 received badge  Notable Question (source)
2013-03-07 22:57:41 -0500 received badge  Popular Question (source)
2013-02-25 13:36:53 -0500 answered a question how to solve these errors :[ModelDatabase.cc:290]

I suppose that this errors occurs because in the newest version of Gazebo, the manifest.xml has a different structure and your parser (as mine, probably 1.3) is deprecated to parse this manifest.xml.

I hope you understand me, sorry for my English. Cheers.

2013-02-16 15:50:40 -0500 received badge  Popular Question (source)
2013-02-15 04:34:24 -0500 received badge  Famous Question (source)
2013-02-15 03:57:34 -0500 commented answer Double caster wheel problem

Hi! I have 3 doubts for you: 1-Why you use these values in mu and mu2 when these parameters only take a value between 0 and 1? 2-Why you add a new wheel to the caster? Look at my model, I have 2 visuals (left and right) but only 1 collision to less restrictions in the physical engine. 3-Where can I find the formulas you used? Is a rectangular box, and I haven't got the same values (having care the different mass value, of course). However, thanks you for your purpose! I'll try it.

2013-02-14 11:51:06 -0500 asked a question Doubt about ultrasonic and IR sensors

Hi all, I've seen in the SDF format, that there are IR sensors, but when I include one in a model, Gazebo gives me an error (Error [SensorManager.cc:151] Unable to create sensor of type[ir]).

How can I create an IR sensor?

And, the next one: to create an Ultrasonic (range) sensor, I need to create a ray sensor as it's parent?

I'm very noob with Gazebo, and still learning, but the tutorial on the web is with a contact sensor and doesn't works for my purposes.

Thank you.

2013-02-14 10:45:12 -0500 commented answer Double caster wheel problem

Fine! Finally, after many changes of the inertial matrix, I achieved best behavior, it's not perfect yet but it's something. I will upload a video to youtube to show the result. And I will edit the initial post with the new code ;)

2013-02-13 18:55:47 -0500 commented answer Double caster wheel problem

I've tried with random values of damping and friction and nothing better...I pasted the complete code of both models in pastebin to better comprehension.

2013-02-13 13:38:26 -0500 received badge  Notable Question (source)
2013-02-12 12:40:11 -0500 received badge  Popular Question (source)
2013-02-12 10:02:51 -0500 commented answer Double caster wheel problem

As I edited in my initial answer, the force I've applied was to the 2 big wheels, not to the caster. My only purpose is that the caster turn only with when the cassis change his direction, and avoid keep turning as I show in the video.

2013-02-12 09:25:22 -0500 received badge  Editor (source)
2013-02-12 05:24:24 -0500 answered a question Double caster wheel problem

Hi Andre, the limits are not the solution. I've tried the limit to PI (180 degrees are PI rads) and the behavior isn't good. The caster should turn totally free, but without affect the model chassis. It's like if the caster has more priority or weight at the moment of turning or movement.

A video better than 1000 words: http://www.youtube.com/watch?v=rKppVt...

Thank you so much!

2013-02-12 02:36:40 -0500 received badge  Student (source)
2013-02-11 18:36:19 -0500 asked a question Double caster wheel problem

Hi guys, I'm trying to implement a double wheeled caster. Obviously it's different from the other one of the tutorial, which it's a sphere.

My new caster works well, except when the model try to turn 180º. At this point, the joint doesn't turn 180º only, it continues turning...

Here is the code of my caster: (PASTED IN PASTEBIN) Here you have a picture with the bot having the issue: http://dl.dropbox.com/u/6821156/gazeb...

I tried with different types of joints, parameters as physics or surface with mu, etc. but nothing better (maybe I was doing wrong).

Sorry for my English and thank you very much!

EDIT 1: The limits are not the solution. I've tried the limit to PI (180 degrees are PI rads) and the behavior isn't good. The caster should turn totally free, but without affect the model chassis. It's like if the caster has more priority or weight at the moment of turning or movement.

A video better than 1000 words: http://www.youtube.com/watch?v=rKppVt...

EDIT 2: I've applied the force to the joints of big wheels, not to the caster wheels. Caster wheels is always at 0 N/m². I want a behavior similar as the office chairs casters, only joint, without force.

EDIT 3: Matrix, Dumping, and many other intents of modify the physical or dynamic properties of the joint and nothing. Absolutely nothing. I paste the code of the robot and the castor models here, maybe you can see something wrong or try to implement the model in Gazebo (I'm in 1.3.1): Model: http://pastebin.com/pHcirtLC Double wheel castor: http://pastebin.com/dahypi5f

A little explanation from the castor: is a unique link for the body (with 3 parts, in 'S' form). At the top of this, there is a small cylinder to joint the castor with another model. And below are 1 collision (instead 2, 1 for each wheel) and 2 visual (1 for each wheel).

The name of the parts are in Spanish: Rueda = Wheel Eje = Axis/Hing Castor = Caster Izq = Left Der = Right

I don't know how much difficult could be this to implement...it's too simple: the castor must stop turning when the robot acquires a direction! :D

SOLUTION: As my German friend saids, the intertial matrix had the solution. Changing some values I have obtained a best behavior. Video: http://www.youtube.com/watch?v=x6YERS... It's not perfect, but better by far from the first one.

The code of this castor: http://pastebin.com/3ZA22s8T

Thank you !!

Now, I will try to improve the behavior :)

2013-01-31 05:00:42 -0500 answered a question onComplete SetAnimation problem...

Ok, 2 doubts: -How knows the second animation that "anim" (first animation) has finished? -It doesn't work for me, the two animations start at the same time. Should printf show in console or somewhere in Gazebo?

Thank you again.

2013-01-31 04:23:40 -0500 received badge  Scholar (source)
2013-01-31 04:23:28 -0500 received badge  Supporter (source)
2013-01-31 04:16:39 -0500 answered a question onComplete SetAnimation problem...

Thank you very much for your quick reply. I'm very noob and still I don't know how with this line

_parent->GetEntity("box_model2")->SetAnimation(anim2, boost::bind(&AnimationTest::Callback, this));

the plugin understand that it must start the "anim2" when "anim" finish...there is no reference to "anim" anywhere.

Thank you again!

2013-01-30 12:12:35 -0500 asked a question onComplete SetAnimation problem...

void SetAnimation (const common::PoseAnimationPtr &_anim, boost::function< void()> _onComplete)

With the second parameter...I'm trying to do "Things to try on your own" section in the wiki of Gazebo, "Controlling a Robot"...

Here is my code:

#include <boost/bind.hpp>
#include "common/CommonTypes.hh"
#include "common/Animation.hh"
#include "common/KeyFrame.hh"
#include "physics/Entity.hh"
#include "physics/World.hh"
#include "gazebo.hh"

namespace gazebo
{
  class AnimationTest : public WorldPlugin
  {
    public: void Load(physics::WorldPtr _parent, sdf::ElementPtr /*_sdf*/)
    {
      gazebo::common::PoseAnimationPtr anim(
          new gazebo::common::PoseAnimation("test", 1000.0, true));

      gazebo::common::PoseAnimationPtr anim2(
          new gazebo::common::PoseAnimation("test2", 1000.0, true));

      gazebo::common::PoseKeyFrame *key;

      gazebo::common::PoseKeyFrame *key2;

      key = anim->CreateKeyFrame(0);
      key->SetTranslation( math::Vector3(0,0,0) );
      key->SetRotation( math::Quaternion(0,0,0) );

      key = anim->CreateKeyFrame(10.0);
      key->SetTranslation( math::Vector3(5,0,0) );
      key->SetRotation( math::Quaternion(0,0,1.5707) );

      key2 = anim2->CreateKeyFrame(0);
      key2->SetTranslation( math::Vector3(0,0,0) );
      key2->SetRotation( math::Quaternion(0,0,0) );

      key2 = anim2->CreateKeyFrame(10.0);
      key2->SetTranslation( math::Vector3(0,3,0) );
      key2->SetRotation( math::Quaternion(0,0,0) );

      _parent->GetEntity("box_model")->SetAnimation(anim);
      _parent->GetEntity("box_model2")->SetAnimation(anim2, anim);
    }
  };
  // Register this plugin with the simulator
  GZ_REGISTER_WORLD_PLUGIN(AnimationTest)
}

Thank you so much!