Robot Mower Communications Standard
Aus www.wiki.ardumower.de
Version vom 7. Januar 2017, 22:13 Uhr von Alexanderg (Diskussion | Beiträge) (→Robot sensor trigger event (sensor trigger counters))
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)
- 6 Robot sensor data event (sensor values)
- 7 Robot sensor trigger event (sensor trigger counters)
- 8 Robot mower configuration (type of sensors)
- 9 Rotate and move until sensor trigger
- 10 Keep ongoing action (mower communications saftety)
- 11 DW1000 beacons ranging
- 12 Proprietary
Requirements
- Serial interface (or serial USB)
- ...
Message format
NMEA 0183 compatible format
example: $RMSEN,1,1,0,0,0,0,1,0,0,179,0,0,0,0<cr><lf>
message format:
- $: start of message symbol
- ID: RM - robot mower
- message type: SEN (see below)
- <cr><lf>: end of message symbol
Messages
- $RMMOW: Set mowing state (start mowing, stop mowing, go to docking station)
- $RMSTA: Robot state event (robot state, errors, battery)
- $RMSEN: Robot sensor event (sensor values, sensor trigger counters)
- $RMCFG: Robot mower configuration (available sensors)
- $RMMOV: Rotate with x degrees per second and move with speed y RPM until sensor trigger
- $RMKOA: Keep ongoing action (mower communications saftety)
- $DWDAT: DW1000 beacons ranging
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)
$RMSTA,s,e,b,c,h,d<cr><lf>
- s: stopped (0), mowing (1), busy (2)
- e: error
- b: battery percent
- c: charging percent
- h: absolute compass heading in degree
- d: moved distance in meter since last event
Robot sensor data event (sensor values)
$RMSEN,bl,br,bc,pfl,pfr,pfc,prl,prr,prc,ih,ip,ir,ga,go<cr><lf>
- bl: bumperLeft
- br: bumperRight
- bc: bumperCenter
- pfl: perimeterFrontLeft
- pfr: perimeterFrontRight
- pfc: perimeterFrontCenter
- prl: perimeterRearLeft
- prr: perimeterRearRight
- prc: perimeterRearCenter
- ih: IMUcompassHeading
- ip: IMUpitch
- pr: IMUroll
- ga: GPSlatitude
- go: GPSlongitude
Robot sensor trigger event (sensor trigger counters)
$RMTRIG,bl,br,bc,pfl,pfr,pfc,prl,prr,prc,ip,ir<cr><lf>
- bl: bumperLeft
- br: bumperRight
- bc: bumperCenter
- pfl: perimeterFrontLeft
- pfr: perimeterFrontRight
- pfc: perimeterFrontCenter
- prl: perimeterRearLeft
- prr: perimeterRearRight
- prc: perimeterRearCenter
- ip: IMUpitch
- pr: IMUroll
Robot mower configuration (type of sensors)
$RMCFG,d,pfl,pfr,pfc,prl,prr,prc,ih,ip,o,g
- 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)
Rotate and move until sensor trigger
$RMMOV,d,r<cr><lf>
- d: rotate dps
- r: move rpm
Keep ongoing action (mower communications saftety)
$RMKOA<cr><lf>
DW1000 beacons ranging
$DWDAT,t,b1,b2,b3,b4,...<cr><lf>
- t: timestamp
- b1,b2,b3,b4,...: beacon ranging in meter
Proprietary
- Any proprietary messages not defined by this protocol