Inheritance diagram for ShmemVehPoseSource:
Public Member Functions | ||||||||||
ShmemVehPoseSource () | ||||||||||
virtual | ~ShmemVehPoseSource () | |||||||||
virtual bool | getPose (utils::Time time, VehPose &pose) | |||||||||
Returns the vehicle pose at the given time. The implementation will attempt to interpolate or extrapolate from known poses to get the pose at the desired time.
| ||||||||||
virtual bool | getCurPose (utils::Time &time, VehPose &pose, bool blocking=0) | |||||||||
Returns the latest vehicle pose along with the time at which it was collected. The call can be blocking, i.e., we block until the next unread vehicle pose is acquired, but it is usually polling, i.e., it returns immediately with the most recent vehicle pose
| ||||||||||
bool | init (utils::ConfigFile ¶ms, utils::SymbolTable *globals) | |||||||||
initialize | ||||||||||
Static Public Member Functions | ||||||||||
static void | interpolate (const VehPoseShmemStruct &prev_pose, const VehPoseShmemStruct &next_pose, double t, VehPose &veh_pose) | |||||||||
interpolate shmem structures |
This pose source is a little tricky in that it initiates a thread which collects the poses as they come through the shared memory individually and maintains a ring buffer which can be used, through interpolation and extrapolation, to generate poses anytime in the recent past or very near future. Pose requests too old to be in the ring buffer or too far in the future fail.
Tag: shmem
Parameters:
history_length:
integer, default 100
max_extrapolation:
float, default 0.2
ipt_spec:
specification, default {unix: port=0; }
name:
string, default VehPose
mem
is not defined, create an owned, managed shared memory region with this namemachine:
string, no default mem
is not defined, memory is on the machine named machine
(empty implies local host)port:
integer, default 1389 mem
is not defined, specifies the memory manager port.mem:
specification, no default
Definition at line 49 of file ShmemVehPoseSource.cc.