164 std::unique_ptr<Impl> impl_;
184 std::filesystem::path
DriveParamsPath(
const std::string& robot =
"Armar7");
double lastDuration() const
Duration [s] of the profile behind lastSamples(). Zero until apply() has run.
SampleColumn
Column layout of lastSamples().
@ TANGENTIAL_ACCELERATION
static bool available()
Whether the python side was found at configure time. False means apply() throws.
DriveType
Which drive the platform has.
static std::string unavailableReason()
Why it is unavailable, as recorded at configure time. Empty when available.
Toppra(const core::GeneralConfig &config, const DriveParams &drive)
const Eigen::MatrixXd & lastSamples() const
The time-parametrized profile from the most recent apply(), (M, 8).
void apply(core::GlobalTrajectory &trajectory, float startVelocity) const override
Re-assign the velocities of trajectory in place.
Assigns the velocities along an already planned path.
This file is part of ArmarX.
Toppra::DriveParams LoadDriveParams(const std::filesystem::path &configFile)
Read Toppra::DriveParams from a PlatformDynamics<Robot>.json.
std::filesystem::path DriveParamsPath(const std::string &robot)
Resolve config/platform/PlatformDynamics<robot>.json inside the armarx_navigation package.
Everything the python side needs that does not change between paths.
OmniWheelGeometry omniWheel
float motorMaxTorque
Drive train.
int numSamples
Waypoints the result should have. 0 keeps the input count.
float maxWheelVelocity
Motor/gearbox speed rating referred to the wheel [rad/s], always in rad/s regardless of the drive's o...
float maxAcceleration
Device command ramp. Infinite leaves the profile bounded by torque alone.
std::string configuration
float maxAngularAcceleration
DriveType driveType
Selects which of the two geometries below is used.
std::string robotFile
Robot model the inverse dynamics is built from.
ARMAR-6's and ARMAR-DE's four-wheel drive, following VirtualRobot::MecanumPlatformKinematics.
float gauge
Half the lateral wheel spacing (l1).
float wheelbase
Half the longitudinal wheel spacing (l2).
ARMAR-7's three-wheel drive, in the units VirtualRobot::OmniWheelPlatformKinematics uses: mm for the ...
Eigen::Vector3i invertWheel