ControlSample Struct Reference

One cycle of the 100 Hz control task, i.e. one TrajectoryFollowingController::control. More...

#include <armarx/navigation/platform_controller/Diagnostics.h>

Public Attributes

float cappedFfVelocity {0.F}
 
float currentOrientation {0.F}
 
float desiredOrientation {0.F}
 
std::uint64_t episode {0}
 
float ffAngular {0.F}
 
bool ffSaturated {false}
 
bool finalSegment {false}
 
std::int32_t guard {0}
 traj_ctrl::global::GuardVerdict as an integer.
 
float limitAngular {0.F}
 
float limitLinear {0.F}
 The limits in force for this cycle.
 
float orientationError {0.F}
 
float positionError {0.F}
 Distance to the last trajectory point, which is what the controller calls positionError.
 
std::uint32_t projectionIndex {0}
 
float refVelocity {0.F}
 
float refX {0.F}
 The trajectory point the controller projected onto – the reference it is tracking.
 
float refY {0.F}
 
float refYaw {0.F}
 
std::uint64_t sequence {0}
 
std::int64_t timestampUs {0}
 
std::uint64_t trajectoryRevision {0}
 Which trajectory this cycle tracked. Indexes trajectory.json.
 
float velocityFactor {1.F}
 
float vFiltX {0.F}
 After the low-pass, i.e. what was handed to the real-time thread.
 
float vFiltY {0.F}
 
float vRawX {0.F}
 The controller's own output, base frame, before the alpha low-pass.
 
float vRawY {0.F}
 
float wFilt {0.F}
 
float wRaw {0.F}
 
float x {0.F}
 
float y {0.F}
 
float yaw {0.F}
 

Detailed Description

One cycle of the 100 Hz control task, i.e. one TrajectoryFollowingController::control.

Member Data Documentation

◆ cappedFfVelocity

float cappedFfVelocity {0.F}

◆ currentOrientation

float currentOrientation {0.F}

◆ desiredOrientation

float desiredOrientation {0.F}

◆ episode

std::uint64_t episode {0}

◆ ffAngular

float ffAngular {0.F}

◆ ffSaturated

bool ffSaturated {false}

◆ finalSegment

bool finalSegment {false}

◆ guard

std::int32_t guard {0}

◆ limitAngular

float limitAngular {0.F}

◆ limitLinear

float limitLinear {0.F}

The limits in force for this cycle.

Recorded per sample, not once in the metadata, because the safety guard drives them through updateVelocityLimits / updateVelocityFactor while the request runs – so a snapshot taken at dump time shows whatever they were restored to and an episode that was slowed down or stopped by the guard is indistinguishable from one that was not.

◆ orientationError

float orientationError {0.F}

◆ positionError

float positionError {0.F}

Distance to the last trajectory point, which is what the controller calls positionError.

The cross-track error is hypot(x - refX, y - refY).

◆ projectionIndex

std::uint32_t projectionIndex {0}

◆ refVelocity

float refVelocity {0.F}

◆ refX

float refX {0.F}

The trajectory point the controller projected onto – the reference it is tracking.

◆ refY

float refY {0.F}

◆ refYaw

float refYaw {0.F}

◆ sequence

std::uint64_t sequence {0}

◆ timestampUs

std::int64_t timestampUs {0}

◆ trajectoryRevision

std::uint64_t trajectoryRevision {0}

Which trajectory this cycle tracked. Indexes trajectory.json.

◆ velocityFactor

float velocityFactor {1.F}

◆ vFiltX

float vFiltX {0.F}

After the low-pass, i.e. what was handed to the real-time thread.

◆ vFiltY

float vFiltY {0.F}

◆ vRawX

float vRawX {0.F}

The controller's own output, base frame, before the alpha low-pass.

◆ vRawY

float vRawY {0.F}

◆ wFilt

float wFilt {0.F}

◆ wRaw

float wRaw {0.F}

◆ x

float x {0.F}

◆ y

float y {0.F}

◆ yaw

float yaw {0.F}

The documentation for this struct was generated from the following file: