[ros-users] Gazebo C-Turtle API angle translation bug?
John Hsu
johnhsu at willowgarage.com
Tue Jun 22 08:55:47 UTC 2010
Indeed you're right. There is a mistake in which variable is used for
initial orientation. The fix is checked in r30363, I'll make a release
tomorrow.
Thanks,
John
On Mon, Jun 21, 2010 at 3:59 AM, Leonardo Scandolo <lscandolo at gmail.com>wrote:
> Sorry, I seem to have messed things up a little, actually the error does
> not present itself with set_model_state, but with spawn_gazebo_model. The
> behavior I'm getting is this:
>
> I call gazebo/spawn_gazebo_model with orientation x: 0 y: 0 z: 0.70709 w:
> 0.707123 (obtained from tf::createQuaternionMsgFromYaw(3.1415 / 2.0) to make
> sure)
>
> This spawns the object in gazebo, but with the wrong orientation, since
> afterwards I get
>
> $rosservice call gazebo/get_model_state '{model_name: person,
> relative_entity_name: map}'
> pose:
> position:
> x: -0.00155193534221
> y: 0.000118788809867
> z: 0.0239993194685
> orientation:
> x: -1.93747979438e-07
> y: -4.43560139729e-07
> z: 0.0141537562013
> w: 0.999899804592
> twist:
> linear:
> x: -0.000347819470335
> y: 0.000233947168454
> z: -0.000113238493213
> angular:
> x: -0.000709853426088
> y: -0.00107237440534
> z: -3.73239927285e-05
>
> This is the orientation for a (PI / 2) degrees yaw rotation, which is what
> shows on the gazebo gui : rpy: 0 0 1.57.
>
> Hope this helps to clarify things a little bit.
>
> Leonardo
>
>
> On Fri, Jun 18, 2010 at 9:02 PM, John Hsu <johnhsu at willowgarage.com>wrote:
>
>> Hi Leonardo,
>>
>> I've just tried the following,
>>
>>
>>
>> - roslaunch gazebo_worlds empty_world.launch
>> - rosrun gazebo spawn_model -file `rospack find
>> gazebo_worlds`/objects/000.580.67.model -gazebo -model cup -z 2
>> - rosservice call gazebo/get_model_state '{model_name: cup}'
>>
>>> rosservice call gazebo/get_model_state '{model_name: cup}'
>>> pose:
>>> position:
>>> x: 0.0
>>> y: 0.0
>>> z: 1.99999995232
>>> orientation:
>>> x: 0.0
>>> y: 0.0
>>> z: 0.0
>>> w: 1.0
>>> twist:
>>> linear:
>>> x: 0.0
>>> y: 0.0
>>> z: 0.0
>>> angular:
>>> x: 0.0
>>> y: 0.0
>>> z: 0.0
>>> success: True
>>> status_message: GetModelState: got properties
>>>
>> - rosservice call /gazebo/set_model_state '{model_state: { model_name:
>> cup, pose: { position: { x: 0, y: 0 ,z: 1 }, orientation: {x: 0, y: 0.7071,
>> z: 0, w: 0.7071} }, reference_frame: world } }'
>>
>>> success: True
>>
>> status_message: SetModelState: set model state done
>>>
>> - rosservice call gazebo/get_model_state '{model_name: cup}'
>>
>>> pose:
>>> position:
>>> x: 7.45058056917e-10
>>> y: 0.0
>>> z: 1.0
>>> orientation:
>>> x: 0.0
>>> y: 0.70710682869
>>> z: 0.0
>>> w: 0.70710682869
>>> twist:
>>> linear:
>>> x: 0.0
>>> y: 0.0
>>> z: 0.0
>>> angular:
>>> x: 0.0
>>> y: 0.0
>>> z: 0.0
>>> success: True
>>> status_message: GetModelState: got properties
>>>
>>
>> the model state seems to be as expected, not sure if I have the right
>> steps you are referring to in order to recreate the error?
>> thanks,
>> John
>>
>>
>> On Fri, Jun 18, 2010 at 6:10 AM, Leonardo Scandolo <lscandolo at gmail.com>wrote:
>>
>>> Hello, I've been trying out the new CTurtle Gazebo API and I've seem to
>>> stumbled into a bug, but since I'm not really sure about it maybe you can
>>> clarify the behavior I'm seeing before creating a ticket.
>>>
>>> The problem is this: when using the gazebo/set_model_state service,
>>> apparently the orientation quaternion appears to be translated to roll pitch
>>> and yaw and handed to gazebo, but the problem is that the rpy values handed
>>> are in radians and gazebo seems to work with degrees.
>>> Even if I input the orientation quaternion obtained from
>>> gazebo/get_model_state back in through gazebo/set_model_state, it will
>>> produce the same error (the quat obtained from get_model_state seems to be
>>> correct). For example if the rpy in the gazebo gui for a model is '90 0 0',
>>> I will get orientation quat '0.707114 0 0 0.7071' from get_model_state, send
>>> it back in through set_model_state and it will come up as rpy '0.78 0 0' in
>>> gazebo, which is the correct rpy, only that now it is in radians. Am I
>>> missing something here ?
>>>
>>> Leonardo Scandolo
>>>
>>>
>>> _______________________________________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/listinfo/ros-users
>>>
>>>
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100622/eed70e8c/attachment-0003.html>
More information about the ros-users
mailing list