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-tf4337753.html#a12357858 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
