The Odometry class handles odometry readings (2D pose and velocity with related timestamp)
More...
#include <odometry.h>
|
typedef bacc::accumulator_set< double, bacc::stats< bacc::tag::rolling_mean > > | RollingMeanAcc |
| Rolling mean accumulator and window: More...
|
|
typedef bacc::tag::rolling_window | RollingWindow |
|
The Odometry class handles odometry readings (2D pose and velocity with related timestamp)
Definition at line 27 of file odometry.h.
Integration function, used to integrate the odometry:
Definition at line 32 of file odometry.h.
Rolling mean accumulator and window:
Definition at line 125 of file odometry.h.
ackermann_controller::Odometry::Odometry |
( |
size_t |
velocity_rolling_window_size = 10 | ) |
|
Constructor Timestamp will get the current time value Value will be set to zero.
- Parameters
-
velocity_rolling_window_size | Rolling window size used to compute the velocity mean |
Definition at line 17 of file odometry.cpp.
double ackermann_controller::Odometry::getAngular |
( |
| ) |
const |
|
inline |
angular velocity getter
- Returns
- angular velocity [rad/s]
Definition at line 106 of file odometry.h.
double ackermann_controller::Odometry::getHeading |
( |
| ) |
const |
|
inline |
heading getter
- Returns
- heading [rad]
Definition at line 70 of file odometry.h.
double ackermann_controller::Odometry::getLinear |
( |
| ) |
const |
|
inline |
linear velocity getter
- Returns
- linear velocity [m/s]
Definition at line 97 of file odometry.h.
double ackermann_controller::Odometry::getX |
( |
| ) |
const |
|
inline |
x position getter
- Returns
- x position [m]
Definition at line 79 of file odometry.h.
double ackermann_controller::Odometry::getY |
( |
| ) |
const |
|
inline |
y position getter
- Returns
- y position [m]
Definition at line 88 of file odometry.h.
void ackermann_controller::Odometry::init |
( |
const ros::Time & |
time | ) |
|
Initialize the odometry.
- Parameters
-
Definition at line 32 of file odometry.cpp.
void ackermann_controller::Odometry::integrateExact |
( |
double |
linear, |
|
|
double |
angular |
|
) |
| |
|
private |
Integrates the velocities (linear and angular) using exact method.
Other possible integration method provided by the class.
- Parameters
-
linear | Linear velocity m computed by encoders |
angular | Angular velocity rad computed by encoders |
linear | linear speed |
angular | angular speed |
Exact integration (should solve problems when angular is zero):
Definition at line 132 of file odometry.cpp.
void ackermann_controller::Odometry::integrateRungeKutta2 |
( |
double |
linear, |
|
|
double |
angular |
|
) |
| |
|
private |
Integrates the velocities (linear and angular) using 2nd order Runge-Kutta.
- Parameters
-
linear | Linear velocity m computed by encoders |
angular | Angular velocity rad computed by encoders |
Runge-Kutta 2nd order integration:
Definition at line 117 of file odometry.cpp.
void ackermann_controller::Odometry::resetAccumulators |
( |
| ) |
|
|
private |
Reset linear and angular accumulators.
Definition at line 147 of file odometry.cpp.
void ackermann_controller::Odometry::setVelocityRollingWindowSize |
( |
size_t |
velocity_rolling_window_size | ) |
|
Velocity rolling window size setter.
- Parameters
-
velocity_rolling_window_size | Velocity rolling window size |
Definition at line 110 of file odometry.cpp.
void ackermann_controller::Odometry::setWheelbase |
( |
double |
wheelbase | ) |
|
|
inline |
bool ackermann_controller::Odometry::update |
( |
const std::vector< ActuatedJoint > & |
steering_joints, |
|
|
const std::vector< Wheel > & |
odometry_joints, |
|
|
const ros::Time & |
time |
|
) |
| |
Updates the odometry class with latest wheels position.
- Parameters
-
- Returns
- true if the odometry is actually updated
Integrate odometry:
Estimate speeds using a rolling mean to filter them out:
Definition at line 39 of file odometry.cpp.
void ackermann_controller::Odometry::updateOpenLoop |
( |
double |
linear, |
|
|
double |
angular, |
|
|
const ros::Time & |
time |
|
) |
| |
Updates the odometry class with latest velocity command.
- Parameters
-
linear | Linear velocity [m/s] |
angular | Angular velocity [rad/s] |
time | Current time |
Save last linear and angular velocity:
Integrate odometry:
Definition at line 98 of file odometry.cpp.
double ackermann_controller::Odometry::angular_ |
|
private |
double ackermann_controller::Odometry::heading_ |
|
private |
Integration funcion, used to integrate the odometry:
Definition at line 170 of file odometry.h.
double ackermann_controller::Odometry::linear_ |
|
private |
ros::Time ackermann_controller::Odometry::timestamp_ |
|
private |
size_t ackermann_controller::Odometry::velocity_rolling_window_size_ |
|
private |
Rolling mean accumulators for the linar and angular velocities:
Definition at line 165 of file odometry.h.
double ackermann_controller::Odometry::wheelbase_ |
|
private |
std::map<std::string, double> ackermann_controller::Odometry::wheels_old_pos_ |
|
private |
Previou wheel position/state [rad]:
Definition at line 162 of file odometry.h.
double ackermann_controller::Odometry::x_ |
|
private |
double ackermann_controller::Odometry::y_ |
|
private |
The documentation for this class was generated from the following files: