|
ugv_nav4d
|
#include <EnvironmentXYZTheta.hpp>


Classes | |
| struct | Distance |
| struct | EnvironmentXYZThetaException |
| struct | Hash |
| struct | PlannerData |
| struct | ThetaNode |
Public Member Functions | |
| bool | obstacleCheck (const maps::grid::Vector3d &pos, double theta, const traversability_generator3d::TraversabilityConfig &travConf, const sbpl_spline_primitives::SplinePrimitivesConfig &splineConf, const std::string &nodeName="node") |
| EnvironmentXYZTheta (std::shared_ptr< const traversability_generator3d::TravMap3d > travMap, const traversability_generator3d::TraversabilityConfig &travConf, const sbpl_spline_primitives::SplinePrimitivesConfig &primitiveConfig, const Mobility &mobilityConfig) | |
| virtual | ~EnvironmentXYZTheta () |
| void | updateMap (std::shared_ptr< const traversability_generator3d::TravMap3d > travMap) |
| virtual bool | InitializeEnv (const char *sEnvFile) |
| virtual bool | InitializeMDPCfg (MDPConfig *MDPCfg) |
| std::shared_ptr< trajectory_follower::SubTrajectory > | findTrajectoryOutOfObstacle (const Eigen::Vector3d &start, double theta, const Eigen::Affine3d &ground2Body, bool setZToZero) |
| virtual int | GetFromToHeuristic (int FromStateID, int ToStateID) |
| heuristic estimate from state FromStateID to state ToStateID | |
| virtual int | GetStartHeuristic (int stateID) |
| heuristic estimate from start state to state with stateID | |
| virtual int | GetGoalHeuristic (int stateID) |
| heuristic estimate from state with stateID to goal state | |
| virtual void | GetPreds (int TargetStateID, std::vector< int > *PredIDV, std::vector< int > *CostV) |
| virtual void | GetSuccs (int SourceStateID, std::vector< int > *SuccIDV, std::vector< int > *CostV) |
| virtual void | GetSuccs (int SourceStateID, std::vector< int > *SuccIDV, std::vector< int > *CostV, std::vector< size_t > &motionIdV) |
| virtual void | PrintEnv_Config (FILE *fOut) |
| virtual void | PrintState (int stateID, bool bVerbose, FILE *fOut=0) |
| virtual void | SetAllActionsandAllOutcomes (CMDPSTATE *state) |
| virtual void | SetAllPreds (CMDPSTATE *state) |
| virtual int | SizeofCreatedEnv () |
| void | setStart (const Eigen::Vector3d &startPos, double theta) |
| void | setGoal (const Eigen::Vector3d &goalPos, double theta) |
| maps::grid::Vector3d | getStatePosition (const int stateID) const |
| traversability_generator3d::TravGenNode * | findMatchingTraversabilityPatchAt (const Eigen::Vector3d &pos) |
| const Motion & | getMotion (const int fromStateID, const int toStateID) |
| const std::shared_ptr< const traversability_generator3d::TravMap3d > | getTraversabilityMap () const |
| std::vector< Motion > | getMotions (const std::vector< int > &stateIDPath) |
| void | getTrajectory (const std::vector< int > &stateIDPath, std::vector< trajectory_follower::SubTrajectory > &result, bool setZToZero, const Eigen::Vector3d &startPos, const Eigen::Vector3d &goalPos, const double &goalHeading, const Eigen::Affine3d &plan2Body=Eigen::Affine3d::Identity()) |
| const PreComputedMotions & | getAvailableMotions () const |
| void | clear () |
| void | setTravConfig (const traversability_generator3d::TraversabilityConfig &cfg) |
| void | dijkstraComputeCost (const traversability_generator3d::TravGenNode *source, std::vector< double > &outDistances, const double maxDist) const |
| void | enablePathStatistics (bool enable) |
Public Attributes | |
| Eigen::Vector3d | robotHalfSize |
Protected Types | |
| typedef maps::grid::TraversabilityNode< PlannerData > | XYZNode |
Protected Member Functions | |
| ThetaNode * | createNewState (const DiscreteTheta &curTheta, EnvironmentXYZTheta::XYZNode *curNode) |
| XYZNode * | createNewXYZState (traversability_generator3d::TravGenNode *travNode) |
| ThetaNode * | createNewStateFromPose (const std::string &name, const Eigen::Vector3d &pos, double theta, ugv_nav4d::EnvironmentXYZTheta::XYZNode **xyzBackNode) |
| bool | checkStartGoalNode (const std::string &name, traversability_generator3d::TravGenNode *node, double theta) |
Protected Attributes | |
| maps::grid::TraversabilityMap3d< XYZNode * > | searchGrid |
| std::vector< Hash > | idToHash |
| std::vector< Distance > | travNodeIdToDistance |
| std::shared_ptr< const traversability_generator3d::TravMap3d > | travMap |
| PreComputedMotions | availableMotions |
| ThetaNode * | startThetaNode |
| XYZNode * | startXYZNode |
| ThetaNode * | goalThetaNode |
| XYZNode * | goalXYZNode |
|
protected |
A position on the traversability map
| ugv_nav4d::EnvironmentXYZTheta::EnvironmentXYZTheta | ( | std::shared_ptr< const traversability_generator3d::TravMap3d > | travMap, |
| const traversability_generator3d::TraversabilityConfig & | travConf, | ||
| const sbpl_spline_primitives::SplinePrimitivesConfig & | primitiveConfig, | ||
| const Mobility & | mobilityConfig | ||
| ) |
| generateDebugData | If true, lots of debug information will becollected and stored in members starting with debug |

|
virtual |

|
protected |


| void ugv_nav4d::EnvironmentXYZTheta::clear | ( | ) |
Clears the state of the environment.

|
protected |

|
protected |


|
protected |

| void ugv_nav4d::EnvironmentXYZTheta::dijkstraComputeCost | ( | const traversability_generator3d::TravGenNode * | source, |
| std::vector< double > & | outDistances, | ||
| const double | maxDist | ||
| ) | const |
| maxDist | The value that should be used as maximum distance. This value is used for non-traversable nodes and for initialization. |
| void ugv_nav4d::EnvironmentXYZTheta::enablePathStatistics | ( | bool | enable | ) |
Should a computationally expensive obstacle check be done to check whether the robot bounding box is in collision with obstacles. This mode is useful for highly cluttered and tight spaced environments
| traversability_generator3d::TravGenNode * ugv_nav4d::EnvironmentXYZTheta::findMatchingTraversabilityPatchAt | ( | const Eigen::Vector3d & | pos | ) |

| std::shared_ptr< SubTrajectory > ugv_nav4d::EnvironmentXYZTheta::findTrajectoryOutOfObstacle | ( | const Eigen::Vector3d & | start, |
| double | theta, | ||
| const Eigen::Affine3d & | ground2Body, | ||
| bool | setZToZero | ||
| ) |
Returns the trajectory of least resistance to leave the obstacle.
| start | start position that is inside an obstacle | |
| theta | robot orientation | |
| [out] | outNewStart | The new start position of the robot after it has moved out of the obstacle in the map frame |

| const PreComputedMotions & ugv_nav4d::EnvironmentXYZTheta::getAvailableMotions | ( | ) | const |
|
virtual |
heuristic estimate from state FromStateID to state ToStateID
|
virtual |
heuristic estimate from state with stateID to goal state

| const Motion & ugv_nav4d::EnvironmentXYZTheta::getMotion | ( | const int | fromStateID, |
| const int | toStateID | ||
| ) |
returns the motion connection fromStateID and toStateID.
| std::runtime_error | if no matching motion exists |


| vector< Motion > ugv_nav4d::EnvironmentXYZTheta::getMotions | ( | const std::vector< int > & | stateIDPath | ) |

|
virtual |
|
virtual |
heuristic estimate from start state to state with stateID

| maps::grid::Vector3d ugv_nav4d::EnvironmentXYZTheta::getStatePosition | ( | const int | stateID | ) | const |

|
virtual |

|
virtual |
| void ugv_nav4d::EnvironmentXYZTheta::getTrajectory | ( | const std::vector< int > & | stateIDPath, |
| std::vector< trajectory_follower::SubTrajectory > & | result, | ||
| bool | setZToZero, | ||
| const Eigen::Vector3d & | startPos, | ||
| const Eigen::Vector3d & | goalPos, | ||
| const double & | goalHeading, | ||
| const Eigen::Affine3d & | plan2Body = Eigen::Affine3d::Identity() |
||
| ) |

| const std::shared_ptr< const traversability_generator3d::TravMap3d > ugv_nav4d::EnvironmentXYZTheta::getTraversabilityMap | ( | ) | const |
|
virtual |
|
virtual |
| bool ugv_nav4d::EnvironmentXYZTheta::obstacleCheck | ( | const maps::grid::Vector3d & | pos, |
| double | theta, | ||
| const traversability_generator3d::TraversabilityConfig & | travConf, | ||
| const sbpl_spline_primitives::SplinePrimitivesConfig & | splineConf, | ||
| const std::string & | nodeName = "node" |
||
| ) |
| pos | Position in map frame |


|
virtual |
|
virtual |
|
virtual |
|
virtual |
| void ugv_nav4d::EnvironmentXYZTheta::setGoal | ( | const Eigen::Vector3d & | goalPos, |
| double | theta | ||
| ) |

| void ugv_nav4d::EnvironmentXYZTheta::setStart | ( | const Eigen::Vector3d & | startPos, |
| double | theta | ||
| ) |

| void ugv_nav4d::EnvironmentXYZTheta::setTravConfig | ( | const traversability_generator3d::TraversabilityConfig & | cfg | ) |
|
virtual |
| void ugv_nav4d::EnvironmentXYZTheta::updateMap | ( | std::shared_ptr< const traversability_generator3d::TravMap3d > | travMap | ) |

|
protected |
|
protected |
|
protected |
|
protected |
maps sbpl state ids to internal planner state (Hash).
| Eigen::Vector3d ugv_nav4d::EnvironmentXYZTheta::robotHalfSize |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Contains the distance from each travNode to start-node and goal-node Stored in real-world coordinates (i.e. do NOT scale with gridResolution before use)