Using pioneer with position3D on height map

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Using pioneer with position3D on height map

ximengzhu
Hello all,
I'm new to gazebo and I'm trying to simulate a pioneer in a 3d environment. I'm using the last svn version (7561) on ubuntu 8.10, player 2.1.1, ogre1.6 and ode0.11. I need to use the pioneer on a heightmap, receiving GPS and imu measures.
I'm experimenting some issues in this work:

first, I've read that gps and imu are not supported yet, so I'm trying to get the true 3d position from the simulator. However, I can't understand which controller I can use to get the 3d pose of the pioneer. The following is the model of the pioneer I'm using.

  <model:physical name="pioneer2dx_model1">
    <xyz>0 0 1.145</xyz>
    <rpy>0.0 0.0 0.0</rpy>

    <controller:differential_position2d name="controller1">
      <leftJoint>left_wheel_hinge</leftJoint>
      <rightJoint>right_wheel_hinge</rightJoint>
      <wheelSeparation>0.39</wheelSeparation>
      <wheelDiameter>0.15</wheelDiameter>
      <torque>5</torque>
      <interface:position name="position_iface_0"/>
    </controller:differential_position2d>

    <include embedded="true">
      <xi:include href="../positions/pioneer2dx.model" />
    </include>

  </model:physical>

Of course, the pioneer2dx.model file is the standard model.
the player cfg file that I use is:

driver
(
  name "gazebo"
  provides ["simulation:0"]
  plugin "libgazeboplugin"
  server_id "default"
  alwayson 1
)

driver
(
  name "gazebo"
  provides ["position3d:0"]
  gz_id "position_iface_0"
)

However, when I read the position in my c++ project I always get the z, roll and pitch at 0.0. I think it is a problem of the controller (probably it is stupid to use a 2d controller to get a position3d, isn't it?) but I can't understand the right controller to use.

Second, I've tried to put the pioneer on a height map, but there is no collision between the pioneer and the map. More, I've tried to put a ground plane at 1 m of elevation, (also the pioneer of course), but still no collision. In both cases, the result is that the pioneer falls on the ground plane at elevation 0.

Any idea or suggestion?
My best regards,
XimengZhu (alias Paolo)
Reply | Threaded
Open this post in threaded view
|

Re: Using pioneer with position3D on height map

Nate Koenig
You can use the simulation iface to get the true position of models in gazebo.

Take a look at the example here: <gazebo_sources>/examples/libgazebo/simiface

-nate

On Tue, Mar 31, 2009 at 9:19 AM, ximengzhu <[hidden email]> wrote:

>
> Hello all,
> I'm new to gazebo and I'm trying to simulate a pioneer in a 3d environment.
> I'm using the last svn version (7561) on ubuntu 8.10, player 2.1.1, ogre1.6
> and ode0.11. I need to use the pioneer on a heightmap, receiving GPS and imu
> measures.
> I'm experimenting some issues in this work:
>
> first, I've read that gps and imu are not supported yet, so I'm trying to
> get the true 3d position from the simulator. However, I can't understand
> which controller I can use to get the 3d pose of the pioneer. The following
> is the model of the pioneer I'm using.
>
>  <model:physical name="pioneer2dx_model1">
>    <xyz>0 0 1.145</xyz>
>    <rpy>0.0 0.0 0.0</rpy>
>
>    <controller:differential_position2d name="controller1">
>      <leftJoint>left_wheel_hinge</leftJoint>
>      <rightJoint>right_wheel_hinge</rightJoint>
>      <wheelSeparation>0.39</wheelSeparation>
>      <wheelDiameter>0.15</wheelDiameter>
>      <torque>5</torque>
>      <interface:position name="position_iface_0"/>
>    </controller:differential_position2d>
>
>    <include embedded="true">
>      <xi:include href="../positions/pioneer2dx.model" />
>    </include>
>
>  </model:physical>
>
> Of course, the pioneer2dx.model file is the standard model.
> the player cfg file that I use is:
>
> driver
> (
>  name "gazebo"
>  provides ["simulation:0"]
>  plugin "libgazeboplugin"
>  server_id "default"
>  alwayson 1
> )
>
> driver
> (
>  name "gazebo"
>  provides ["position3d:0"]
>  gz_id "position_iface_0"
> )
>
> However, when I read the position in my c++ project I always get the z, roll
> and pitch at 0.0. I think it is a problem of the controller (probably it is
> stupid to use a 2d controller to get a position3d, isn't it?) but I can't
> understand the right controller to use.
>
> Second, I've tried to put the pioneer on a height map, but there is no
> collision between the pioneer and the map. More, I've tried to put a ground
> plane at 1 m of elevation, (also the pioneer of course), but still no
> collision. In both cases, the result is that the pioneer falls on the ground
> plane at elevation 0.
>
> Any idea or suggestion?
> My best regards,
> XimengZhu (alias Paolo)
> --
> View this message in context: http://www.nabble.com/Using-pioneer-with-position3D-on-height-map-tp22805219p22805219.html
> Sent from the playerstage-gazebo mailing list archive at Nabble.com.
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> High Quality Requirements in a Collaborative Environment.
> Download a free trial of Rational Requirements Composer Now!
> http://p.sf.net/sfu/www-ibm-com
> _______________________________________________
> Playerstage-gazebo mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
>

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Playerstage-gazebo mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo