MRMS
Public Member Functions | List of all members
RobotSoccer Class Reference

#include <mrm-robot-soccer.h>

Inheritance diagram for RobotSoccer:
Robot

Public Member Functions

 RobotSoccer (char name[]=(char *)"RCJ Soccer")
 
uint16_t back ()
 
int16_t ballAngle ()
 
bool barrier ()
 
void bitmapsSet ()
 
uint16_t brightness (uint8_t transistorNumber, uint8_t deviceNumber)
 
bool button (uint8_t number)
 
void catchBall ()
 
uint16_t front ()
 
void go (float speed, float angleDegrees, float rotation, uint8_t speedLimit)
 
void goAhead ()
 
float heading ()
 
void idle ()
 
uint16_t left ()
 
bool line (uint8_t transistorNumber, uint8_t deviceNumber)
 
void loop ()
 
void play ()
 
float pitch ()
 
uint16_t right ()
 
float roll ()
 
void sign (uint8_t number)
 
- Public Member Functions inherited from Robot
 Robot (char name[15]=(char *)"MRMS robot", char ssid[15]=(char *)"MRMS", char wiFiPassword[15]=(char *)"mrms")
 
void actionAdd (ActionBase *action)
 
void actionEnd ()
 
bool actionPreprocessing (bool andFinish=true)
 
void actionPreprocessingEnd ()
 
void add (Board *aBoard)
 
void blink ()
 
void bluetoothTest ()
 
void end ()
 
void canBusSniffToggle ()
 
void canIdChange ()
 
void colorIlluminationOff ()
 
void colorIlluminationOn ()
 
void colorPatternErase ()
 
void colorPatternPrint ()
 
void colorPatternRecognize ()
 
void colorPatternRecord ()
 
void delayMs (uint16_t pauseMs)
 
void delayMicros (uint16_t pauseMicros)
 
uint8_t devicesScan (bool verbose)
 
void devicesStart (uint8_t measuringMode=0)
 
void devicesStop ()
 
void errors ()
 
void firmwarePrint ()
 
float fpsGet ()
 
void fpsPrint ()
 
void i2cTest ()
 
void info ()
 
void irFinder3Test ()
 
void irFinder3TestCalculated ()
 
void lidar2mTest ()
 
void lidar4mTest ()
 
void lidarCalibrate ()
 
void menu ()
 
void menuColor ()
 
void menuMainAndIdle ()
 
void menuReflectance ()
 
void menuSystem ()
 
void messagePrint (CANBusMessage *msg, bool outbound)
 
void messagesReceive ()
 
void motorTest ()
 
void nodeTest ()
 
void noLoopWithoutThis ()
 
void oscillatorTest ()
 
void reflectanceArrayCalibrationPrint ()
 
void run ()
 
uint16_t serialReadNumber (uint16_t timeoutFirst=3000, uint16_t timeoutBetween=500, bool onlySingleDigitInput=false, uint16_t limit=0xFFFE, bool printWarnings=true)
 
void servoInteractive ()
 
bool setup (bool andFinish=true)
 
bool sniffing ()
 
void stopAll ()
 
bool stressTest ()
 
void thermoTest ()
 
bool userBreak ()
 
void verboseToggle ()
 

Additional Inherited Members

- Public Attributes inherited from Robot
Mrm_can_busmrm_can_bus
 
Mrm_8x8amrm_8x8a
 
Mrm_bldc2x50mrm_bldc2x50
 
Mrm_bldc4x2_5mrm_bldc4x2_5
 
Mrm_col_bmrm_col_b
 
Mrm_col_canmrm_col_can
 
Mrm_fet_canmrm_fet_can
 
Mrm_imumrm_imu
 
Mrm_ir_finder3mrm_ir_finder3
 
Mrm_lid_can_bmrm_lid_can_b
 
Mrm_lid_can_b2mrm_lid_can_b2
 
Mrm_mot2x50mrm_mot2x50
 
Mrm_mot4x3_6canmrm_mot4x3_6can
 
Mrm_mot4x10mrm_mot4x10
 
Mrm_nodemrm_node
 
Mrm_ref_canmrm_ref_can
 
Mrm_servomrm_servo
 
Mrm_switchmrm_switch
 
Mrm_therm_b_canmrm_therm_b_can
 
Mrm_us_bmrm_us_b
 
Mrm_us1mrm_us1
 
- Protected Member Functions inherited from Robot
void actionProcess ()
 
void actionSet ()
 
void actionSet (ActionBase *newAction)
 
uint8_t boardsDisplayAll ()
 
bool boardDisplayAndSelect (uint8_t *selectedBoardIndex, uint8_t *selectedDeviceIndex, uint8_t *maxInput, uint8_t *lastBoardAndIndex)
 
bool boardSelect (uint8_t selectedNumber, uint8_t *selectedBoardIndex, uint8_t *selectedDeviceIndex, uint8_t *maxInput)
 
void fpsPause ()
 
void fpsUpdate ()
 
void fpsReset ()
 
void verbosePrint ()
 
void vprint (const char *fmt, va_list argp)
 
- Protected Attributes inherited from Robot
ActionBase_action [ACTIONS_LIMIT]
 
uint8_t _actionNextFree = 0
 
ActionBase_actionCANBusStress
 
ActionBase_actionCurrent
 
ActionBase_actionDoNothing
 
ActionBase_actionLoop
 
ActionBase_actionMenuMain
 
ActionBase_actionPrevious
 
ActionBase_actionStop
 
Boardboard [BOARDS_LIMIT]
 
uint8_t _boardNextFree = 0
 
uint8_t _devicesAtStartup = 0
 
bool _devicesScanBeforeMenu = true
 
uint32_t fpsMs [2] = { 0, 0 }
 
uint8_t fpsNextIndex = 0
 
uint32_t fpsTopGap = 0
 
uint8_t menuLevel = 1
 
CANBusMessage_msg
 
char _name [16]
 
bool _sniff = false
 
char _ssid [16]
 
bool verbose = false
 
char _wiFiPassword [16]
 

Detailed Description

Robot for RCJ Soccer

Constructor & Destructor Documentation

◆ RobotSoccer()

RobotSoccer::RobotSoccer ( char  name[] = (char*)"RCJ Soccer")

Constructor

Parameters
name- it is also used for Bluetooth so a Bluetooth client (like a phone) will list the device using this name.

Member Function Documentation

◆ back()

uint16_t RobotSoccer::back ( )

Rear distance to wall

Returns
- in mm

◆ ballAngle()

int16_t RobotSoccer::ballAngle ( )

Ball's direction

Returns
- robot's front is 0�, positive angles clockwise, negative anti-clockwise. Back of the robot is 180�.

◆ barrier()

bool RobotSoccer::barrier ( )

Read barrier

Returns
- true if interrupted

◆ bitmapsSet()

void RobotSoccer::bitmapsSet ( )
virtual

Store bitmaps in mrm-led8x8a.

Implements Robot.

◆ brightness()

uint16_t RobotSoccer::brightness ( uint8_t  transistorNumber,
uint8_t  deviceNumber 
)

Line sensor - brightness of the surface

Parameters
transistorNumber- starts from 0 and end value depends on sensor. Usually 7 (for mrm-ref-can8) or 8 (for mrm-ref-can9).
deviceNumber- Device's ordinal number. Each call of function add() assigns a increasing number to the device, starting with 0.
Returns
- brightness as an analog value.

◆ button()

bool RobotSoccer::button ( uint8_t  number)

Reads push button switch @number - 0 to 3, push button's ordinal number

Returns
- true if pressed

◆ catchBall()

void RobotSoccer::catchBall ( )

Go around the ball and approach it.

◆ front()

uint16_t RobotSoccer::front ( )

Front distance to wall

Returns
- in mm

◆ go()

void RobotSoccer::go ( float  speed,
float  angleDegrees,
float  rotation,
uint8_t  speedLimit 
)

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.

Parameters
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.

◆ goAhead()

void RobotSoccer::goAhead ( )
virtual

Test - go straight ahead.

Implements Robot.

◆ heading()

float RobotSoccer::heading ( )

Compass

Returns
- North is 0�, clockwise are positive angles, values 0 - 360.

◆ idle()

void RobotSoccer::idle ( )

No ball detected - return to Your goal.

◆ left()

uint16_t RobotSoccer::left ( )

Front distance to wall

Returns
- in mm

Left distance to wall

Returns
- in mm

◆ line()

bool RobotSoccer::line ( uint8_t  transistorNumber,
uint8_t  deviceNumber 
)

Line sensor

Parameters
transistorNumber- starts from 0 and end value depends on sensor. Usually 7 (for mrm-ref-can8) or 8 (for mrm-ref-can9).
deviceNumber- Device's ordinal number. Each call of function add() assigns a increasing number to the device, starting with 0.
Returns
- true if white line found

◆ loop()

void RobotSoccer::loop ( )
virtual

Custom test

Custom test.

Implements Robot.

◆ pitch()

float RobotSoccer::pitch ( )

Pitch

Returns
- Pitch in degrees. Inclination forwards or backwards. Leveled robot shows 0�.

◆ play()

void RobotSoccer::play ( )

Starts robot.

Starts robot

◆ right()

uint16_t RobotSoccer::right ( )

Right distance to wall

Returns
- in mm

◆ roll()

float RobotSoccer::roll ( )

Roll

Returns
- Roll in degrees. Inclination to the left or right. Values -90 - 90. Leveled robot shows 0�.

◆ sign()

void RobotSoccer::sign ( uint8_t  number)

Display fixed sign stored in sensor sign's number


The documentation for this class was generated from the following files: