|
LightLib
PROS library for VEX V5: EKF/MCL localization, RAMSETE path following, high-level chassis API
|
#include <motorGroup.hpp>
Public Member Functions | |
| MotorGroup (const std::initializer_list< Motor > &imotors, const std::shared_ptr< Logger > &ilogger=Logger::getDefaultLogger()) | |
| A group of V5 motors which act as one motor (i.e. | |
| MotorGroup (const std::initializer_list< std::shared_ptr< AbstractMotor > > &imotors, const std::shared_ptr< Logger > &ilogger=Logger::getDefaultLogger()) | |
| A group of V5 motors which act as one motor (i.e. | |
| std::int32_t | moveAbsolute (double iposition, std::int32_t ivelocity) override |
| Motor movement functions | |
| std::int32_t | moveRelative (double iposition, std::int32_t ivelocity) override |
| Sets the relative target position for the motor to move to. | |
| std::int32_t | moveVelocity (std::int16_t ivelocity) override |
| Sets the velocity for the motor. | |
| std::int32_t | moveVoltage (std::int16_t ivoltage) override |
Sets the voltage for the motor from -12000 to 12000. | |
| std::int32_t | modifyProfiledVelocity (std::int32_t ivelocity) override |
| Changes the output velocity for a profiled movement (moveAbsolute or moveRelative). | |
| double | getTargetPosition () override |
| Motor telemetry functions | |
| double | getPosition () override |
| Gets the absolute position of the motor in its encoder units. | |
| std::int32_t | tarePosition () override |
| Sets the "absolute" zero position of the motor to its current position. | |
| std::int32_t | getTargetVelocity () override |
| Gets the velocity commanded to the motor by the user. | |
| double | getActualVelocity () override |
| Gets the actual velocity of the motor. | |
| std::int32_t | getCurrentDraw () override |
| Gets the current drawn by the motor in mA. | |
| std::int32_t | getDirection () override |
| Gets the direction of movement for the motor. | |
| double | getEfficiency () override |
| Gets the efficiency of the motor in percent. | |
| std::int32_t | isOverCurrent () override |
| Checks if the motor is drawing over its current limit. | |
| std::int32_t | isOverTemp () override |
| Checks if the motor's temperature is above its limit. | |
| std::int32_t | isStopped () override |
| Checks if the motor is stopped. | |
| std::int32_t | getZeroPositionFlag () override |
| Checks if the motor is at its zero position. | |
| uint32_t | getFaults () override |
| Gets the faults experienced by the motor. | |
| uint32_t | getFlags () override |
| Gets the flags set by the motor's operation. | |
| std::int32_t | getRawPosition (std::uint32_t *timestamp) override |
| Gets the raw encoder count of the motor at a given timestamp. | |
| double | getPower () override |
| Gets the power drawn by the motor in Watts. | |
| double | getTemperature () override |
| Gets the temperature of the motor in degrees Celsius. | |
| double | getTorque () override |
| Gets the torque generated by the motor in Newton Metres (Nm). | |
| std::int32_t | getVoltage () override |
| Gets the voltage delivered to the motor in millivolts. | |
| std::int32_t | setBrakeMode (AbstractMotor::brakeMode imode) override |
| Motor configuration functions | |
| brakeMode | getBrakeMode () override |
| Gets the brake mode that was set for the motor. | |
| std::int32_t | setCurrentLimit (std::int32_t ilimit) override |
| Sets the current limit for the motor in mA. | |
| std::int32_t | getCurrentLimit () override |
| Gets the current limit for the motor in mA. | |
| std::int32_t | setEncoderUnits (AbstractMotor::encoderUnits iunits) override |
| Sets one of AbstractMotor::encoderUnits for the motor encoder. | |
| encoderUnits | getEncoderUnits () override |
| Gets the encoder units that were set for the motor. | |
| std::int32_t | setGearing (AbstractMotor::gearset igearset) override |
| Sets one of AbstractMotor::gearset for the motor. | |
| gearset | getGearing () override |
| Gets the gearset that was set for the motor. | |
| std::int32_t | setReversed (bool ireverse) override |
| Sets the reverse flag for the motor. | |
| std::int32_t | setVoltageLimit (std::int32_t ilimit) override |
| Sets the voltage limit for the motor in Volts. | |
| void | controllerSet (double ivalue) override |
| Writes the value of the controller output. | |
| size_t | getSize () |
| Gets the number of motors in the motor group. | |
| std::shared_ptr< ContinuousRotarySensor > | getEncoder () override |
| Get the encoder associated with the first motor in this group. | |
| virtual std::shared_ptr< ContinuousRotarySensor > | getEncoder (std::size_t index) |
| Get the encoder associated with this motor. | |
Public Member Functions inherited from okapi::AbstractMotor | |
| virtual | ~AbstractMotor () |
| double | getPositionError () |
| Gets the positional error (target position minus actual position) of the motor in its encoder units. | |
| double | getVelocityError () |
| Gets the difference between the target velocity of the motor and the actual velocity of the motor. | |
Protected Attributes | |
| std::vector< std::shared_ptr< AbstractMotor > > | motors |
Additional Inherited Members | |
Public Types inherited from okapi::AbstractMotor | |
| enum class | brakeMode { coast = 0 , brake = 1 , hold = 2 , invalid = INT32_MAX } |
| Indicates the 'brake mode' of a motor. More... | |
| enum class | encoderUnits { degrees = 0 , rotations = 1 , counts = 2 , invalid = INT32_MAX } |
| Indicates the units used by the motor encoders. More... | |
| enum class | gearset { red = 100 , green = 200 , blue = 600 , invalid = INT32_MAX } |
| Indicates the internal gear ratio of a motor. More... | |
Definition at line 15 of file motorGroup.hpp.
| okapi::MotorGroup::MotorGroup | ( | const std::initializer_list< Motor > & | imotors, |
| const std::shared_ptr< Logger > & | ilogger = Logger::getDefaultLogger() |
||
| ) |
A group of V5 motors which act as one motor (i.e.
they are mechanically linked). A MotorGroup requires at least one motor. If no motors are supplied, a std::invalid_argument exception is thrown.
| imotors | The motors in this group. |
| ilogger | The logger this instance will log initialization warnings to. |
| okapi::MotorGroup::MotorGroup | ( | const std::initializer_list< std::shared_ptr< AbstractMotor > > & | imotors, |
| const std::shared_ptr< Logger > & | ilogger = Logger::getDefaultLogger() |
||
| ) |
A group of V5 motors which act as one motor (i.e.
they are mechanically linked). A MotorGroup requires at least one motor. If no motors are supplied, a std::invalid_argument exception is thrown.
| imotors | The motors in this group. |
| ilogger | The logger this instance will log initialization warnings to. |
|
overridevirtual |
Writes the value of the controller output.
This method might be automatically called in another thread by the controller. The range of input values is expected to be [-1, 1].
| ivalue | the controller's output in the range [-1, 1] |
Implements okapi::ControllerOutput< double >.
|
overridevirtual |
Gets the actual velocity of the motor.
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the brake mode that was set for the motor.
Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the current drawn by the motor in mA.
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the current limit for the motor in mA.
The default value is 2500 mA.
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the direction of movement for the motor.
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the efficiency of the motor in percent.
An efficiency of 100% means that the motor is moving electrically while drawing no electrical power, and an efficiency of 0% means that the motor is drawing power but not moving.
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Get the encoder associated with the first motor in this group.
0. Implements okapi::AbstractMotor.
|
virtual |
Get the encoder associated with this motor.
| index | The index in motors to get the encoder from. |
index.
|
overridevirtual |
Gets the encoder units that were set for the motor.
Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the faults experienced by the motor.
Compare this bitfield to the bitmasks in pros::motor_fault_e_t.
0b00000100 = Current Limit Hit Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the flags set by the motor's operation.
Compare this bitfield to the bitmasks in pros::motor_flag_e_t.
Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the gearset that was set for the motor.
gearset::invalid if the operation failed. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the absolute position of the motor in its encoder units.
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the power drawn by the motor in Watts.
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the raw encoder count of the motor at a given timestamp.
| timestamp | A pointer to a time in milliseconds for which the encoder count will be returned. If NULL, the timestamp at which the encoder count was read will not be supplied. |
PROS_ERR if the operation failed. Implements okapi::AbstractMotor.
| size_t okapi::MotorGroup::getSize | ( | ) |
Gets the number of motors in the motor group.
|
overridevirtual |
Motor telemetry functions
These functions allow programmers to collect telemetry from motors
Gets the target position set for the motor by the user.
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the velocity commanded to the motor by the user.
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the temperature of the motor in degrees Celsius.
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the torque generated by the motor in Newton Metres (Nm).
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Gets the voltage delivered to the motor in millivolts.
PROS_ERR_F if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Checks if the motor is at its zero position.
Although this function forwards data from the motor, the motor presently does not provide any value. This function returns PROS_ERR with errno set to ENOSYS.
0 if the motor has moved from its absolute zero, or PROS_ERR if the operation failed, setting errno Implements okapi::AbstractMotor.
|
overridevirtual |
Checks if the motor is drawing over its current limit.
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Checks if the motor's temperature is above its limit.
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Checks if the motor is stopped.
Although this function forwards data from the motor, the motor presently does not provide any value. This function returns PROS_ERR with errno set to ENOSYS.
PROS_ERR if the operation failed, setting errno Implements okapi::AbstractMotor.
|
overridevirtual |
Changes the output velocity for a profiled movement (moveAbsolute or moveRelative).
This will have no effect if the motor is not following a profiled movement.
| ivelocity | The new motor velocity from +-100, +-200, or +-600 depending on the motor's gearset. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Motor movement functions
These functions allow programmers to make motors move
Sets the target absolute position for the motor to move to.
This movement is relative to the position of the motor when initialized or the position when it was most recently reset with setZeroPosition().
| iposition | The absolute position to move to in the motor's encoder units |
| ivelocity | The maximum allowable velocity for the movement in RPM |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets the relative target position for the motor to move to.
This movement is relative to the current position of the motor. Providing 10.0 as the position parameter would result in the motor moving clockwise 10 units, no matter what the current position is.
| iposition | The relative position to move to in the motor's encoder units |
| ivelocity | The maximum allowable velocity for the movement in RPM |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets the velocity for the motor.
This velocity corresponds to different actual speeds depending on the gearset used for the motor. This results in a range of +-100 for pros::c::red, +-200 for green, and +-600 for blue. The velocity is held with PID to ensure consistent speed, as opposed to setting the motor's voltage.
| ivelocity | The new motor velocity from -+-100, +-200, or +-600 depending on the motor's gearset |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets the voltage for the motor from -12000 to 12000.
| ivoltage | The new voltage value from -12000 to 12000. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Motor configuration functions
These functions allow programmers to configure the behavior of motors
Sets one of AbstractMotor::brakeMode to the motor.
This function uses the following values of errno when an error state is reached: EACCES - Another resource is currently trying to access the port.
| imode | The new motor brake mode to set for the motor. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets the current limit for the motor in mA.
This function uses the following values of errno when an error state is reached: EACCES - Another resource is currently trying to access the port.
| ilimit | The new current limit in mA. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets one of AbstractMotor::encoderUnits for the motor encoder.
| iunits | The new motor encoder units. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets one of AbstractMotor::gearset for the motor.
| igearset | The new motor gearset. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets the reverse flag for the motor.
This will invert its movements and the values returned for its position.
| ireverse | True reverses the motor, false is default. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets the voltage limit for the motor in Volts.
| ilimit | The new voltage limit in Volts. |
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
overridevirtual |
Sets the "absolute" zero position of the motor to its current position.
PROS_ERR if the operation failed, setting errno. Implements okapi::AbstractMotor.
|
protected |
Definition at line 398 of file motorGroup.hpp.