Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
DifferentialDrive.hpp File Reference

Defines and implements namespaces and functions for algorithms that pertain to differential drive (tank drive) robots. More...

Include dependency graph for DifferentialDrive.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  diffdrive::DrivePowers
 This struct is used to store the left and right drive powers for the robot. Storing these values in a struct allows for easy handling and access to said variables. More...
 

Namespaces

namespace  diffdrive
 Namespace containing algorithms related to calculating drive powers, odometry, trajectories, kinematics, etc of differential drive (tank drive) robots.
 

Enumerations

enum class  DifferentialControlMethod { eArcadeDrive , eCurvatureDrive }
 

Functions

DrivePowers diffdrive::CalculateTankDrive (double dLeftSpeed, double dRightSpeed, bool bSquareInputs=false)
 Tank drive inverse kinematics for differential drive robots.
 
DrivePowers diffdrive::CalculateArcadeDrive (double dSpeed, double dRotation, const bool bSquareInputs=false)
 Arcade drive inverse kinematics for differential drive robots.
 
DrivePowers diffdrive::CalculateCurvatureDrive (double dSpeed, double dRotation, const bool bAllowTurnInPlace, const bool bSquareInputs=false)
 Curvature drive inverse kinematics for differential drive robots. The rotation parameter controls the curvature of the robot's path rather than it's rate of heading change. This makes the robot more controllable at high speeds.
 
DrivePowers diffdrive::CalculateMotorPowerFromHeading (double dGoalSpeed, double dGoalHeading, double dActualHeading, const DifferentialControlMethod eDriveMethod, controllers::PIDController &PID, const bool bSquareControlInput=false, const bool bCurvatureDriveAllowTurningWhileStopped=true)
 This function will calculate the drive powers for a given speed and absolute heading. The method used to get the drive powers is determined by the given enumerator (must be arcade or curvature). The turning rate or curvature is determined by the given PID controller which must be properly configured.
 

Detailed Description

Defines and implements namespaces and functions for algorithms that pertain to differential drive (tank drive) robots.

Author
clayjay3 (clayt.nosp@m.onra.nosp@m.ycowe.nosp@m.n@gm.nosp@m.ail.c.nosp@m.om)
Date
2023-09-21