Odometry#

#include "navground/sim/state_estimations/sensor_odometry.h"
struct OdometryStateEstimation : public navground::sim::Sensor#

A sensor that add normal error to the true twist and integrates it.

Registered properties:

Public Functions

inline explicit OdometryStateEstimation(ng_float_t longitudinal_speed_bias = 0, ng_float_t longitudinal_speed_std_dev = default_longitudinal_speed_std_dev, ng_float_t transversal_speed_bias = 0, ng_float_t transversal_speed_std_dev = default_transversal_speed_std_dev, ng_float_t angular_speed_bias = 0, ng_float_t angular_speed_std_dev = default_angular_speed_std_dev, bool update_sensing_state = true, bool update_ego_state = false, const std::string &name = "")#

Constructs a new instance.

Parameters:
  • longitudinal_speed_bias[in] The longitudinal speed bias

  • longitudinal_speed_std_dev[in] The longitudinal speed standard deviation

  • transversal_speed_bias[in] The longitudinal speed bias

  • transversal_speed_std_dev[in] The transversal speed standard deviation

  • angular_speed_bias[in] The longitudinal speed bias

  • angular_speed_std_dev[in] The angular speed standard deviation

  • update_sensing_state[in] Whether to update the behavior environment state

  • update_ego_state[in] Whether to update the behavior ego state

  • name[in] The name to use as a prefix

inline void set_longitudinal_speed_bias(ng_float_t value)#

Sets the longitudinal speed relative bias.

Parameters:

value[in] The desired value

inline void set_longitudinal_speed_std_dev(ng_float_t value)#

Sets the longitudinal speed relative standard deviation.

Parameters:

value[in] The desired (positive) value

inline ng_float_t get_longitudinal_speed_bias() const#

Gets the longitudinal speed relative bias. rangings.

Returns:

The bias.

inline ng_float_t get_longitudinal_speed_std_dev() const#

Gets the longitudinal speed relative standard deviation. rangings.

Returns:

The standard deviation.

inline void set_transversal_speed_bias(ng_float_t value)#

Sets the transversal speed relative bias.

Parameters:

value[in] The desired value

inline void set_transversal_speed_std_dev(ng_float_t value)#

Sets the transversal speed relative standard deviation.

Parameters:

value[in] The desired (positive) value

inline ng_float_t get_transversal_speed_bias() const#

Gets the transversal speed relative bias. rangings.

Returns:

The bias.

inline ng_float_t get_transversal_speed_std_dev() const#

Gets the transversal speed relative standard deviation. rangings.

Returns:

The standard deviation.

inline void set_angular_speed_bias(ng_float_t value)#

Sets the angular speed relative bias.

Parameters:

value[in] The desired value

inline void set_angular_speed_std_dev(ng_float_t value)#

Sets the angular speed relative standard deviation.

Parameters:

value[in] The desired (positive) value

inline ng_float_t get_angular_speed_bias() const#

Gets the angular speed relative bias. rangings.

Returns:

The bias.

inline ng_float_t get_angular_speed_std_dev() const#

Gets the angular speed relative standard deviation. rangings.

Returns:

The standard deviation.

inline bool get_update_sensing_state() const#

Gets whether to update the behavior environment state.

Returns:

True if it updates the behavior environment state.

inline void set_update_sensing_state(bool value)#

Sets whether to update the behavior environment state.

Parameters:

value[in] The desired value

inline bool get_update_ego_state() const#

Gets whether to update the behavior ego state.

Returns:

True if it updates the behavior ego state.

inline void set_update_ego_state(bool value)#

Sets whether to update the behavior ego state.

Parameters:

value[in] The desired value

void update_odom(Agent *agent, World *world)#

Runs an update.

Like update but without writing a core::SensingState.

Parameters:
  • agent – The agent

  • world – The world

inline std::optional<core::Pose2> read_pose(core::SensingState &state) const#

Reads an (odometry) pose from a core::SensingState.

Calls read_pose_with_name, passing Sensor::get_name.

Parameters:

state – The state

Returns:

A pose or null if none was found.

inline Pose2 get_pose() const#

Gets the current pose.

Returns:

The pose.

inline Twist2 get_twist() const#

Gets the current twist.

Returns:

The twist.

Public Static Functions

static std::optional<core::Pose2> read_pose_with_name(core::SensingState &state, const std::string &name)#

Reads an (odometry) pose from a core::SensingState.

Parameters:
  • state – The state

  • name[in] The namespace of the odometry

Returns:

A pose or null if none was found.

Public Static Attributes

static const ng_float_t default_longitudinal_speed_std_dev = 0#

The default longitudinal speed standard deviation.

static const ng_float_t default_transversal_speed_std_dev = 0#

The default transversal speed standard deviation.

static const ng_float_t default_angular_speed_std_dev = 0#

The default angular speed standard deviation.