|
MRMS
|
#include <mrm-board.h>
Public Member Functions | |
| MotorGroupStar (Robot *robot, MotorBoard *motorBoardFor45Degrees, uint8_t motorNumberFor45Degrees, MotorBoard *motorBoardFor135Degrees, uint8_t motorNumberFor135Degrees, MotorBoard *motorBoardForMinus135Degrees, uint8_t motorNumberForMinus135Degrees, MotorBoard *motorBoardForMinus45Degrees, uint8_t motorNumberForMinus45Degrees) | |
| void | go (float speed, float angleDegrees=0, float rotation=0, uint8_t speedLimit=127) |
| void | goToEliminateErrors (float errorX, float errorY, float headingToMaintain, Mrm_pid *pidXY, Mrm_pid *pidRotation, bool verbose=false) |
Public Member Functions inherited from MotorGroup | |
| MotorGroup (Robot *robot) | |
| void | stop () |
Additional Inherited Members | |
Protected Member Functions inherited from MotorGroup | |
| float | angleNormalized (float angle) |
Protected Attributes inherited from MotorGroup | |
| MotorBoard * | motorBoard [MAX_MOTORS_IN_GROUP] = { NULL, NULL, NULL, NULL } |
| uint8_t | motorNumber [MAX_MOTORS_IN_GROUP] |
| Robot * | robotContainer |
Motors' axles for a star - they all point to a central point. Useful for driving soccer robots with omni-wheels.
| MotorGroupStar::MotorGroupStar | ( | Robot * | robot, |
| MotorBoard * | motorBoardFor45Degrees, | ||
| uint8_t | motorNumberFor45Degrees, | ||
| MotorBoard * | motorBoardFor135Degrees, | ||
| uint8_t | motorNumberFor135Degrees, | ||
| MotorBoard * | motorBoardForMinus135Degrees, | ||
| uint8_t | motorNumberForMinus135Degrees, | ||
| MotorBoard * | motorBoardForMinus45Degrees, | ||
| uint8_t | motorNumberForMinus45Degrees | ||
| ) |
| motorBoardFor45Degrees | - motor controller for the motor which axle is inclined 45 degrees clockwise from robot's front. |
| motorNumberFor45Degrees | - Controller's output number. |
| motorBoardFor13Degrees | - motor controller for the motor which axle is inclined 135 degrees clockwise from robot's front. |
| motorNumberFor135Degrees | - Controller's output number. |
| motorBoardForMinus135Degrees | - motor controller for the motor which axle is inclined -135 degrees clockwise from robot's front. |
| motorNumberForMinus135Degrees | - Controller's output number. |
| motorBoardForMinus45Degrees | - motor controller for the motor which axle is inclined -45 degrees clockwise from robot's front. |
| motorNumberForMinus45Degrees | - Controller's output number. |
| void MotorGroupStar::go | ( | float | speed, |
| float | angleDegrees = 0, |
||
| float | rotation = 0, |
||
| uint8_t | speedLimit = 127 |
||
| ) |
Control of a robot with axles connected in a star formation, like in a RCJ soccer robot with omni wheels. Motor 0 is at 45 degrees, 1 at 135, 2 at -135, 3 at -45.
| speed | - 0 to 100. |
| angleDegrees | - Movement direction in a robot's coordinate system, in degrees. 0 degree is the front of the robot and positive angles are to the right. Values between -180 and 180. |
| rotation | - Rotation speed (around the vertical axis), -100 to 100. Positive numbers turn the robot to the right. It makes sense to use smaller numbers because a value 100 turns on all the motors at maximal speed. |
| speedLimit | - Speed limit, 0 to 127. For example, 80 will limit all the speeds to 80/127%. 0 will turn the motors off. |
| void MotorGroupStar::goToEliminateErrors | ( | float | errorX, |
| float | errorY, | ||
| float | errorRotation, | ||
| Mrm_pid * | pidXY, | ||
| Mrm_pid * | pidRotation, | ||
| bool | verbose = false |
||
| ) |
Moves the robot in order to elinimate errors (for x and y directions).
| errorX | - X axis error. |
| errorY | - Y axis error. |
| headingToMaintain | - Heading to maintain. |
| verbose | - print details |