Add generateTrajectory overload (#1944)

Add an overload for the generateTrajectory method that accepts a DifferentialDriveKinematics instance instead of a list of constraints. This instance is used to automatically create a DifferentialDriveKinematicsConstraint behind the scenes, saving the user some verbosity.
This commit is contained in:
Prateek Machiraju
2019-10-18 11:02:42 -04:00
committed by Peter Johnson
parent 63cfa64fb3
commit c10f2003c5
3 changed files with 178 additions and 0 deletions

View File

@@ -75,3 +75,38 @@ Trajectory TrajectoryGenerator::GenerateTrajectory(
points, std::move(constraints), startVelocity, endVelocity, maxVelocity,
maxAcceleration, reversed);
}
Trajectory TrajectoryGenerator::GenerateTrajectory(
const std::vector<Pose2d>& waypoints,
const DifferentialDriveKinematics& differentialDriveKinematics,
units::meters_per_second_t startVelocity,
units::meters_per_second_t endVelocity,
units::meters_per_second_t maxVelocity,
units::meters_per_second_squared_t maxAcceleration, bool reversed) {
std::vector<std::unique_ptr<TrajectoryConstraint>> constraints;
constraints.emplace_back(
std::make_unique<DifferentialDriveKinematicsConstraint>(
differentialDriveKinematics, maxVelocity));
return GenerateTrajectory(waypoints, std::move(constraints), startVelocity,
endVelocity, maxVelocity, maxAcceleration,
reversed);
}
Trajectory TrajectoryGenerator::GenerateTrajectory(
const Pose2d& start, const std::vector<Translation2d>& waypoints,
const Pose2d& end,
const DifferentialDriveKinematics& differentialDriveKinematics,
units::meters_per_second_t startVelocity,
units::meters_per_second_t endVelocity,
units::meters_per_second_t maxVelocity,
units::meters_per_second_squared_t maxAcceleration, bool reversed) {
std::vector<std::unique_ptr<TrajectoryConstraint>> constraints;
constraints.emplace_back(
std::make_unique<DifferentialDriveKinematicsConstraint>(
differentialDriveKinematics, maxVelocity));
return GenerateTrajectory(start, waypoints, end, std::move(constraints),
startVelocity, endVelocity, maxVelocity,
maxAcceleration, reversed);
}