Helios++
Helios software for LiDAR simulations
|
Class representing a linear path platform. More...
#include <LinearPathPlatform.h>
Public Member Functions | |
LinearPathPlatform ()=default | |
Default constructor for linear path platform. | |
std::shared_ptr< Platform > | clone () override |
void | _clone (std::shared_ptr< Platform > p) override |
void | doSimStep (int simFrequency_hz) override |
void | setDestination (glm::dvec3 dest) override |
![]() | |
MovingPlatform ()=default | |
Moving platform default constructor. | |
std::shared_ptr< Platform > | clone () override |
void | _clone (std::shared_ptr< Platform > p) override |
void | applySettings (std::shared_ptr< PlatformSettings > settings, bool manual) override |
void | doSimStep (int simFrequency_hz) override |
void | initLegManual () override |
void | initLegManualIterative () |
Method to assist manual leg initialization for moving platform when it fails. More... | |
bool | waypointReached () override |
glm::dvec3 | getVelocity () override |
void | setVelocity (glm::dvec3 v) |
Set velocity vector for moving platform. More... | |
bool | canMove () const override |
![]() | |
Platform ()=default | |
Default platform constructor. | |
virtual void | prepareSimulation (int simFrequency_hz) |
Prepare the platform to deal with simulation. More... | |
virtual void | prepareLeg (int const simFrequency_hz) |
Prepare the platform to deal with the next leg. More... | |
std::shared_ptr< PlatformSettings > | retrieveCurrentSettings () |
Retrieve current platform settings and build a new PlatformSettings object with them. More... | |
virtual void | updateStaticCache () |
Cache update which only needs to be performed after static modifications. Updating static cache also updates dynamic cache. More... | |
void | updateDynamicCache () |
Cache update which must be performed between simulation steps and after static modifications. Updating static cache also updates dynamic cache but updating dynamic cache does not update static cache. More... | |
virtual void | initLeg () |
Function to initialize leg when working in default mode. | |
virtual void | setAttitude (Rotation attitude) |
Set platform attitude. More... | |
virtual void | setOrigin (glm::dvec3 origin) |
Set platform origin way point. More... | |
virtual void | setAfterDestination (glm::dvec3 next) |
Set platform after destination way point. More... | |
void | setPosition (glm::dvec3 pos) |
Set platform position. More... | |
void | setOffset (glm::dvec3 pos) |
Set platform position. More... | |
Rotation | getAbsoluteMountAttitude () const |
Obtain platform absolute mount attitude. More... | |
glm::dvec3 | getAbsoluteMountPosition () const |
Obtain platform absolute mount position. More... | |
Rotation | getAttitude () const |
Obtain platform attitude. More... | |
virtual Rotation | getDirectionalAttitude () |
Obtain the directional attitude. While the attitude represents the platform orientation, the directional attitude represents the movement direction. More... | |
virtual glm::dvec3 | getCurrentDirection () |
Obtain platform current direction. | |
glm::dvec3 | getPosition () const |
Obtain platform position. More... | |
glm::dvec3 | getVectorToTarget () const |
Obtain platform vector to target (cache) More... | |
virtual void | getRollPitchYaw (double &roll, double &pitch, double &yaw) |
Obtain platform roll, pitch and yaw angles. Notice not all platforms track those angles. More... | |
virtual void | setHeadingRad (double rad) |
Set the heading angle in radians. This angle can be understood as yaw in most cases. More... | |
virtual double | getHeadingRad () |
Obtain platform heading angle in radians, which can be understood as yaw in most cases. More... | |
virtual bool | canStopAndTurn () const |
Check if platform support stop and turn mode (true) or not (false) More... | |
virtual bool | isInterpolated () const |
Check if platform is simulated (false) or interpolated (true) More... | |
![]() | |
std::string | getLocationString () |
Obtain asset location string. More... | |
virtual bool | isEgg () const |
Check whether the asset is an EggAsset or not. More... | |
Additional Inherited Members | |
![]() | |
glm::dvec3 | cfg_device_relativeMountPosition = glm::dvec3(0, 0, 0) |
Device mount position relative to the platform. | |
Rotation | cfg_device_relativeMountAttitude |
Device mount attitude relative to the platform. More... | |
double | lastCheckZ = 0 |
Not used at the moment. Might be removed in the future. | |
glm::dvec3 | lastGroundCheck = glm::dvec3(0, 0, 0) |
Not used at the moment. Might be removed in the future. | |
std::shared_ptr< Scene > | scene = nullptr |
Scene where the platform belongs to. | |
std::shared_ptr< NoiseSource< double > > | positionXNoiseSource = nullptr |
Noise source for x component of platform position. | |
std::shared_ptr< NoiseSource< double > > | positionYNoiseSource = nullptr |
Noise source for y component of platform position. | |
std::shared_ptr< NoiseSource< double > > | positionZNoiseSource = nullptr |
Noise source for z component of platform position. | |
std::shared_ptr< NoiseSource< double > > | attitudeXNoiseSource = nullptr |
Noise source for x component of platform attitude. | |
std::shared_ptr< NoiseSource< double > > | attitudeYNoiseSource = nullptr |
Noise source for y component of platform attitude. | |
std::shared_ptr< NoiseSource< double > > | attitudeZNoiseSource = nullptr |
Noise source for z component of platform attitude. | |
double | dmax = std::numeric_limits<double>::max() |
Not used at the moment. Might be removed in the future. | |
glm::dvec3 | prevWrittenPos = glm::dvec3(dmax, dmax, dmax) |
Not used at the moment. Might be removed in the future. | |
double | cfg_settings_movePerSec_m = 0 |
How meters per seconds the platform moves. NOTICE this behavior must be overridden by platforms implementing its own physics model. | |
glm::dvec3 | originWaypoint = glm::dvec3(0, 0, 0) |
Origin waypoint. | |
glm::dvec3 | targetWaypoint = glm::dvec3(0, 0, 0) |
Target waypoint (destination) | |
glm::dvec3 | nextWaypoint = glm::dvec3(0, 0, 0) |
Waypoint after target. For the last target, waypoint after target is equal to the target itself. | |
bool | onGround = false |
Flag to specify if the platform must be placed on ground (true) or not (false) | |
bool | stopAndTurn = false |
Flag to specify if platform must work in stop and turn mode (true) or not (false). Not all platforms support this mode, so it will only be used when possible. | |
bool | smoothTurn = false |
Flag to specify if platform must work in smooth turn mode (true) or not (false). Not all platforms support this mode, so it will only be used when possible. | |
bool | slowdownEnabled = true |
Flag to specify if slowdown stage must be enabled (true) or not (false). Not all platforms have a slowdown stage, so this flag will only be applied when it is necessary. | |
glm::dvec3 | position = glm::dvec3(0, 0, 0) |
Platform 3D position. | |
Rotation | attitude = Rotation(Directions::up, 0) |
Platform 3D attitude. | |
bool | mSetOrientationOnLegInit = false |
Not used at the moment. Might be removed in the future. | |
bool | writeNextTrajectory = true |
Flag to specify if next trajectory needs to be written (true) or not (false) | |
glm::dvec3 | cached_absoluteMountPosition = glm::dvec3(0, 0, 0) |
Cached absolute mount position. | |
Rotation | cached_absoluteMountAttitude = Rotation(glm::dvec3(0, 1, 0), 0) |
Cached absolute mount attitude. | |
glm::dvec3 | cached_dir_current = glm::dvec3(0, 0, 0) |
Current director vector over XY plane. | |
glm::dvec3 | cached_dir_current_xy = glm::dvec3(0, 0, 0) |
Current director vector over XY plane (z is always 0) | |
glm::dvec3 | cached_vectorToTarget = glm::dvec3(0, 0, 0) |
Distance vector from current position to target. | |
glm::dvec3 | cached_vectorToTarget_xy = glm::dvec3(0, 0, 0) |
Distance vector from current position to target over XY plane (z is always 0) | |
double | cached_distanceToTarget_xy = 0 |
Distance on XY plane between current position and target. | |
glm::dvec3 | cached_originToTargetDir_xy = glm::dvec3(0, 0, 0) |
Director vector from origin to target over the XY plane (z is always 0). | |
glm::dvec3 | cached_targetToNextDir_xy = glm::dvec3(0, 0, 0) |
Director vector from target to after target waypoint over the XY plane (z is always 0). | |
double | cached_endTargetAngle_xy |
Angle between director vector from origin to target and director vector from target to waypoint after target. | |
double | cached_currentAngle_xy |
Angle between current director vector and director vector from target to waypoint after target. | |
double | cached_originToTargetAngle_xy |
Angle in \([0, 2\pi)\) which identifies director vector from origin waypoint to target waypoint. | |
double | cached_targetToNextAngle_xy |
Angle in \([0, 2\pi)\) which identifies director vector from target waypoint to waypoint after target. | |
![]() | |
std::string | id = "" |
Asset identifier. | |
std::string | name = "Unnamed Asset" |
Asset name. | |
std::string | sourceFilePath = "" |
Path to asset file. | |
Class representing a linear path platform.
|
overridevirtual |
Reimplemented from Platform.
|
overridevirtual |
Reimplemented from Platform.