Well, after being away from this for awhile I'm back at this project trying
to get an aircraft (driven by an external simulator) to render in gazebo
(svn version). Of course everything has changed so I'm trying to figure out
the best way of doing this. I can see how a custom (invisible) controller
could be used to move an aircraft model around the 'world' ...is there a
better way? If I use simIface, I can only set modelPose and thus get the
snapping effect I encountered in my earlier experience in 0.7.0.

Suggestions?


smonckton wrote:
> 
> Hmmm, I tried this before (and I tried it again just to be sure). Using
> only SetPose (or the other Sets) snaps the model from point to point. Ok,
> I can understand that, I'm only updating the model at 3 Hz and no
> velocities are set. So if I then add the velocities put out by the
> external simulator the results are smoother...but still odd. I think I may
> have some coordinate transform issues here! In any case tracking the
> results is hard since the UAV moves out of the rendered area very quickly.
> Is there a way to enlarge the rendered volume w.r.t. the ObserverCam?
> 
> Simon
> 
> Nathan Michael wrote:
>> 
>> 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
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/External-simulators-and-Gazebo-tp12355928p21446949.html
Sent from the playerstage-gazebo mailing list archive at Nabble.com.


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo

Reply via email to