Hi Simon,

Try:

this->body->SetPose(GzPose pose)

or

this->body->SetPosition(GzVector pos)
this->body->SetRotation(GzQuatern rot)

See:

http://playerstage.sourceforge.net/doc/Gazebo-manual-0.7.0-html/ 
classBody.html#a6d32b9b81d5e09ebaec8bc852184837

Nate

On Aug 27, 2007, at 3:24 PM, smonckton wrote:

>
> Hello All,
>
> I'm a newbie to libgazebo and trying to figure out the best way of  
> driving
> an aircraft model in gazebo through an external aviation simulator.  
> I'm not
> using player, since we use (IMHO) a more flexible device server  
> (MIRO, for
> those that are interested), so I'm talking directly to libgazebo.  
> I've tried
> a few experiments setting positions, which works...sort of. If I set
> position directly, I get odd results that makes me think I'm  
> fighting ODE.
> Basically, I just want to feed the aircraft state directly to a plugin
> model. I noticed that in the AvatarHeli model, the following  
> approach is
> used in AvatarHeli::PositionGetCmd():
> void AvatarHeli::PositionGetCmd()
> {
>   gz_position_lock(this->position, 1);
>
>   this->cmdLinVel = GzVectorSet(this->position->data->cmd_vel_pos[0],
>                              this->position->data->cmd_vel_pos[1],
>                              this->position->data->cmd_vel_pos[2]);
>
>   this->cmdAngVel = GzVectorSet(this->position->data->cmd_vel_rot[0],
>                                 this->position->data->cmd_vel_rot[1],
>                                 this->position->data->cmd_vel_rot[2]);
>
>   gz_position_unlock(this->position);
>
>   return;
> }
>
> and then in Update():
>       this->PositionGetCmd();
>   // Rotate velocities into global cs
>     pose = this->GetPose();
>     lv = GzCoordPositionAdd(this->cmdLinVel, GzVectorSet(0, 0, 0),
> pose.rot);
>     av = GzCoordPositionAdd(this->cmdAngVel, GzVectorSet(0, 0, 0),
> pose.rot);
>
>     // Dumb controller
>     this->body->SetLinearVel(lv);
>     this->body->SetAngularVel(av);
>
>
> ...which is a 'back door' method of setting the state. Over the  
> long haul
> the position within the external simulator and gazebo would diverge  
> using
> this method. A similar technique is used in Blimp. So the question  
> is: " Is
> there a way of directly setting the state of an actor in libgazebo  
> other
> than through derivative terms?"
>
> Simon
> -- 
> View this message in context: http://www.nabble.com/External- 
> simulators-and-Gazebo-tf4337753.html#a12355928
> Sent from the playerstage-gazebo mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------- 
> ---
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a  
> browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> Playerstage-gazebo mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo

Reply via email to