Robot Mower Communications Standard: Unterschied zwischen den Versionen
Aus www.wiki.ardumower.de
(→Robot sensor trigger event (sensor trigger counters)) |
(→Robot mower configuration (type of sensors)) |
||
Zeile 89: | Zeile 89: | ||
=Robot mower configuration (type of sensors)= | =Robot mower configuration (type of sensors)= | ||
− | $RMCFG,d,pfl,pfr,pfc,prl,prr,prc,ih,ip,o,g,ul,ur,uc | + | $RMCFG,d,pfl,pfr,pfc,prl,prr,prc,ih,ip,o,g,ul,ur,uc<cr><lf> |
*d: Docking station available (1/0) | *d: Docking station available (1/0) | ||
*pfl: perimeterFrontLeft available (1/0) | *pfl: perimeterFrontLeft available (1/0) |
Version vom 8. Januar 2017, 00:32 Uhr
Describes message format used to externally control a robot mower (e.g. Ardumower-based).
Inhaltsverzeichnis
- 1 Requirements
- 2 Message format
- 3 Messages
- 4 Set mowing state (start,stop,dock)
- 5 Robot state event (robot state, errors, battery, charger)
- 6 Robot sensor data event (sensor values)
- 7 Robot sensor trigger event (sensor trigger counters)
- 8 Robot mower configuration (type of sensors)
- 9 Move robot until sensor trigger
- 10 Keep ongoing action (mower communications saftety)
- 11 Beacons ranging data (e.g. DW1000)
- 12 Proprietary
Requirements
- Serial interface (or serial USB)
- ...
Message format
NMEA 0183 compatible format (ASCII encoded)
message structure: $IDMSG,data,<cr><lf>
message components:
- $: start of message symbol
- ID: device ID - RM (robot mower), DW (ranging beacons), ...
- data: comma separated message data (see below)
- <cr><lf>: end of message symbol
- if a value is not existing it can be empty
example: $RMSEN,1,1,,,,0,1,,0,179,,,0,0<cr><lf>
Messages
- $RMMOW: Set mowing state (start mowing, stop mowing, go to docking station)
- $RMSTA: Robot state event (robot state, errors, battery, charger)
- $RMSEN: Robot sensor data event (sensor values)
- $RMTRG: Robot sensor trigger event (sensor trigger counters)
- $RMCFG: Robot mower configuration (available sensors)
- $RMMOV: Move robot until sensor trigger
- $RMKOA: Keep ongoing action (mower communications saftety)
- $DWDAT: beacons ranging data (e.g. DW1000)
Set mowing state (start,stop,dock)
$RMMOW,s<cr><lf>
- s: stop mowing (0), start mowing (1), go to docking station (2)
Robot state event (robot state, errors, battery, charger)
$RMSTA,ts,s,e,b,c,h,l,r<cr><lf>
- ts: timestamp ms
- s: robot state: stopped (0), mowing (1), busy (2), error (3), going to dock (4)
- o: docking state: not docked (0), docked (1)
- e: error code
- b: battery percent
- c: charging percent
- h: absolute compass heading in degree
- l: left odometry counter
- r: right odometry counter
Robot sensor data event (sensor values)
$RMSEN,ts,bl,br,bc,pfl,pfr,pfc,prl,prr,prc,ih,ip,ir,ga,go,ul,ur,uc<cr><lf>
- ts: timestamp ms
- bl: bumperLeft
- br: bumperRight
- bc: bumperCenter
- pfl: perimeterFrontLeft
- pfr: perimeterFrontRight
- pfc: perimeterFrontCenter
- prl: perimeterRearLeft
- prr: perimeterRearRight
- prc: perimeterRearCenter
- ih: IMUcompassHeading degree
- ip: IMUpitch degree
- pr: IMUroll degree
- ga: GPSlatitude
- go: GPSlongitude
- ul: ultrasonicLeft
- ur: ultrasonicRight
- uc: ultrasonicCenter
Robot sensor trigger event (sensor trigger counters)
$RMTRG,ts,ml,mr,bl,br,bc,pfl,pfr,pfc,prl,prr,prc,t,ul,ur,uc<cr><lf>
- ts: timestamp ms
- ml: motorLeftStall
- mr: motorRightStall
- bl: bumperLeft
- br: bumperRight
- bc: bumperCenter
- pfl: perimeterFrontLeft
- pfr: perimeterFrontRight
- pfc: perimeterFrontCenter
- prl: perimeterRearLeft
- prr: perimeterRearRight
- prc: perimeterRearCenter
- t: robot orientation tilt
- ul: ultrasonicLeft
- ur: ultrasonicRight
- uc: ultrasonicCenter
Robot mower configuration (type of sensors)
$RMCFG,d,pfl,pfr,pfc,prl,prr,prc,ih,ip,o,g,ul,ur,uc<cr><lf>
- d: Docking station available (1/0)
- pfl: perimeterFrontLeft available (1/0)
- pfr: perimeterFrontRight available (1/0)
- pfc: perimeterFrontCenter available (1/0)
- prl: perimeterRearLeft available (1/0)
- prr: perimeterRearRight available (1/0)
- prc: perimeterRearCenter available (1/0)
- ih: IMU compass available (1/0)
- ip: IMU pitch/roll available (1/0)
- o: Odometry available (1/0)
- g: GPS available (1/0)
- ul: ultrasonicLeft available (1/0)
- ur: ultrasonicRight available (1/0)
- uc: ultrasonicCenter available (1/0)
Move robot until sensor trigger
$RMMOV,l,r,p,i,d,o<cr><lf>
- l: left motor target ticks per frame
- r: right motor target ticks per frame
- p: PID_Kp
- i: PID_Ki
- d: PID_Kd
- o: PID_Ko
Keep ongoing action (mower communications saftety)
$RMKOA<cr><lf>
- mower will stop moving if not receiving another message within 2 seconds
Beacons ranging data (e.g. DW1000)
$DWDAT,t,b1,b2,b3,b4,...<cr><lf>
- t: timestamp ms
- b1,b2,b3,b4,...: beacon ranging in meter
Proprietary
- Any proprietary messages not defined by this protocol