Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ergodic_exploration Namespace Reference

Namespaces

 models
 

Classes

class  Basis
 Fourier cosine basis. More...
 
class  Collision
 2D collision detection More...
 
struct  CollisionConfig
 Collision detection parameters. More...
 
class  DynamicWindow
 Dynamic window approach. More...
 
class  ErgodicControl
 Receding horizon ergodic trajectory optimization. More...
 
class  Exploration
 Exploration template. More...
 
struct  Gaussian
 2D gaussian More...
 
class  GridMap
 Constructs an 2D grid. More...
 
class  OccupancyMapper
 Occupancy grid mapping. More...
 
class  ReplayBuffer
 Store and smaple past states. More...
 
class  RungeKutta
 4th order Runge-Kutta integration More...
 
class  RungeKutta45
 
class  Target
 Target distribution. More...
 

Typedefs

typedef std::function< vec(const vec &, const vec &, const vec &, const mat &)> CoStateFunc
 Function representing the time derivatve of the co-state variable. More...
 
typedef std::vector< GaussianGaussianList
 
typedef std::vector< int8_t > GridData
 Occupancy grid data. More...
 

Enumerations

enum  CollisionMsg { CollisionMsg::crash, CollisionMsg::obstacle, CollisionMsg::none }
 State of the collision detector. More...
 

Functions

bool almost_equal (double d1, double d2, double epsilon=1.0e-12)
 approximately compare two floating-point numbers More...
 
unsigned int axis_length (double lower, double upper, double resolution)
 Length of a grid axis. More...
 
double axis_upper (double lower, double resolution, unsigned int size)
 Upper axis limit. More...
 
nav_msgs::Path constTwistPath (const std::string &map_frame_id, const vec &x0, const vec &u, double dt, double horizon)
 Visualize path from following a constant twist. More...
 
double distance (double x0, double y0, double x1, double y1)
 Euclidean distance between two points. More...
 
double entropy (double p)
 Entropy of a single grid cell. More...
 
double getYaw (double qx, double qy, double qz, double qw)
 Get yaw from quaternion. More...
 
vec integrate_twist (const vec &x, const vec &u, double dt)
 Integrate a constant twist. More...
 
double logOdds2Prob (double l)
 Convert log odds to a probability. More...
 
double normalize_angle_2PI (double rad)
 Wraps angle between 0 and 2pi or 0 to -2pi. More...
 
double normalize_angle_PI (double rad)
 Wraps angle between -pi and pi. More...
 
vec polar2Cartesian (double angle, double range)
 Convert polar to cartesian coordinates. More...
 
vec polar2CartesianHomo (double angle, double range)
 Convert polar to cartesian homogenous coordinates. More...
 
double prob2LogOdds (double p)
 Convert probability to log odds. More...
 
vec rhodot (const vec &rho, const vec &gdx, const vec &dbar, const mat &fdx)
 Time derivatve of the co-state variable. More...
 
mat transform2d (double angle)
 Construct 2D transformation. More...
 
mat transform2d (double x, double y)
 Construct 2D transformation matrix. More...
 
mat transform2d (double x, double y, double angle)
 Construct 2D transformation matrix. More...
 
mat transform2dInv (const mat &trans2d)
 Construct 2D transformation inverse. More...
 
bool validate_control (const Collision &collision, const GridMap &grid, const vec &x0, const vec &u, double dt, double horizon)
 Determine if control will cause a collision. More...
 

Variables

constexpr char LOGNAME [] = "ergodic exploration"
 
constexpr double PI = 3.14159265358979323846
 

Typedef Documentation

◆ CoStateFunc

typedef std::function<vec(const vec&, const vec&, const vec&, const mat&)> ergodic_exploration::CoStateFunc

Function representing the time derivatve of the co-state variable.

inputs are co-state, ergodic measure derivatve, barrier derivatve, and the jacobian of the dynamics w.r.t state

Definition at line 60 of file integrator.hpp.

◆ GaussianList

Definition at line 52 of file target.hpp.

◆ GridData

typedef std::vector<int8_t> ergodic_exploration::GridData

Occupancy grid data.

Definition at line 52 of file grid.hpp.

Enumeration Type Documentation

◆ CollisionMsg

State of the collision detector.

Enumerator
crash 
obstacle 
none 

Definition at line 55 of file collision.hpp.

Function Documentation

◆ almost_equal()

bool ergodic_exploration::almost_equal ( double  d1,
double  d2,
double  epsilon = 1.0e-12 
)
inline

approximately compare two floating-point numbers

Parameters
d1- a number to compare
d2- a second number to compare
epsilon- absolute threshold required for equality
Returns
true if abs(d1 - d2) < epsilon

Definition at line 67 of file numerics.hpp.

◆ axis_length()

unsigned int ergodic_exploration::axis_length ( double  lower,
double  upper,
double  resolution 
)
inline

Length of a grid axis.

Parameters
lower- lower limit
upper- upper limit
resolution- resolution of grid
Returns
length

Definition at line 61 of file grid.hpp.

◆ axis_upper()

double ergodic_exploration::axis_upper ( double  lower,
double  resolution,
unsigned int  size 
)
inline

Upper axis limit.

Parameters
lower- position of lower axis limit
resolution- grid resolution
size- length of axis
Returns
axis upper limit

Definition at line 73 of file grid.hpp.

◆ constTwistPath()

nav_msgs::Path ergodic_exploration::constTwistPath ( const std::string &  map_frame_id,
const vec &  x0,
const vec &  u,
double  dt,
double  horizon 
)
inline

Visualize path from following a constant twist.

Parameters
x0- current state
u- twist [vx, vy, w]
dt- time step
horizon- control horizon
Returns
trajectory

Definition at line 340 of file numerics.hpp.

◆ distance()

double ergodic_exploration::distance ( double  x0,
double  y0,
double  x1,
double  y1 
)
inline

Euclidean distance between two points.

Parameters
x0- x-position point 0
y0- y-position point 0
x1- x-position point 1
y1- y-position point 1
Returns
euclidean distance

Definition at line 152 of file numerics.hpp.

◆ entropy()

double ergodic_exploration::entropy ( double  p)
inline

Entropy of a single grid cell.

Parameters
p- probability grid cell is occupied represented as a decimal
Returns
entropy

Definition at line 164 of file numerics.hpp.

◆ getYaw()

double ergodic_exploration::getYaw ( double  qx,
double  qy,
double  qz,
double  qw 
)
inline

Get yaw from quaternion.

Parameters
qx- x-axis rotation component
qy- y-axis rotation component
qz- z-axis rotation component
qw- rotation magnitude
Returns
yaw (rad)

Definition at line 118 of file numerics.hpp.

◆ integrate_twist()

vec ergodic_exploration::integrate_twist ( const vec &  x,
const vec &  u,
double  dt 
)
inline

Integrate a constant twist.

Parameters
x- current state [x, y, theta]
vb- current twist [vx, vy, w]
dt- time step
Returns
new pose

Definition at line 273 of file numerics.hpp.

◆ logOdds2Prob()

double ergodic_exploration::logOdds2Prob ( double  l)

Convert log odds to a probability.

Parameters
l- log odds
Returns
probability

Definition at line 51 of file mapping.cpp.

◆ normalize_angle_2PI()

double ergodic_exploration::normalize_angle_2PI ( double  rad)
inline

Wraps angle between 0 and 2pi or 0 to -2pi.

Parameters
rad- angle in radians
Returns
wrapped angle in radians

Definition at line 96 of file numerics.hpp.

◆ normalize_angle_PI()

double ergodic_exploration::normalize_angle_PI ( double  rad)
inline

Wraps angle between -pi and pi.

Parameters
rad- angle in radians
Returns
wrapped angle in radians

Definition at line 77 of file numerics.hpp.

◆ polar2Cartesian()

vec ergodic_exploration::polar2Cartesian ( double  angle,
double  range 
)
inline

Convert polar to cartesian coordinates.

Parameters
angle- angle in radians
range- range measurement

Definition at line 186 of file numerics.hpp.

◆ polar2CartesianHomo()

vec ergodic_exploration::polar2CartesianHomo ( double  angle,
double  range 
)
inline

Convert polar to cartesian homogenous coordinates.

Parameters
angle- angle in radians
range- range measurement

Definition at line 198 of file numerics.hpp.

◆ prob2LogOdds()

double ergodic_exploration::prob2LogOdds ( double  p)

Convert probability to log odds.

Parameters
p- probability
Returns
log odds

Definition at line 61 of file mapping.cpp.

◆ rhodot()

vec ergodic_exploration::rhodot ( const vec &  rho,
const vec &  gdx,
const vec &  dbar,
const mat &  fdx 
)
inline

Time derivatve of the co-state variable.

Parameters
rho- co-state variable
gdx- gradient of the ergodic metric
dbar- derivatve of barrier function
fdx- jacobian of the dynamics w.r.t state A = D1(f(x,u))
Returns
d/dt[rho]

Definition at line 65 of file ergodic_control.hpp.

◆ transform2d() [1/3]

mat ergodic_exploration::transform2d ( double  angle)
inline

Construct 2D transformation.

Parameters
angle- yaw in radians

2D transformation

Definition at line 239 of file numerics.hpp.

◆ transform2d() [2/3]

mat ergodic_exploration::transform2d ( double  x,
double  y 
)
inline

Construct 2D transformation matrix.

Parameters
x- x position
y- y position

2D transformation

Definition at line 227 of file numerics.hpp.

◆ transform2d() [3/3]

mat ergodic_exploration::transform2d ( double  x,
double  y,
double  angle 
)
inline

Construct 2D transformation matrix.

Parameters
x- x position
y- y position
angle- yaw in radians

2D transformation

Definition at line 212 of file numerics.hpp.

◆ transform2dInv()

mat ergodic_exploration::transform2dInv ( const mat &  trans2d)
inline

Construct 2D transformation inverse.

Parameters
trans2d- 2D transformation

2D transformation inverse

Definition at line 252 of file numerics.hpp.

◆ validate_control()

bool ergodic_exploration::validate_control ( const Collision collision,
const GridMap grid,
const vec &  x0,
const vec &  u,
double  dt,
double  horizon 
)
inline

Determine if control will cause a collision.

Parameters
collision- collision detector
grid- grid map
x0- initial state
u- twist [vx, vy, w]
dt- time step in integration
horizon- length of integration
Returns
true if the control is collision free

The control is assumed to be constant and a twist is integrated for a fixed amout of time

Definition at line 312 of file numerics.hpp.

Variable Documentation

◆ LOGNAME

constexpr char ergodic_exploration::LOGNAME[] = "ergodic exploration"
constexpr

Definition at line 57 of file exploration.hpp.

◆ PI

constexpr double ergodic_exploration::PI = 3.14159265358979323846
constexpr

Definition at line 58 of file numerics.hpp.



ergodic_exploration
Author(s): bostoncleek
autogenerated on Wed Mar 2 2022 00:17:13