Robot Mower Communications Standard: Unterschied zwischen den Versionen

Aus www.wiki.ardumower.de
Wechseln zu: Navigation, Suche
(Messages)
(Robot sensor trigger event (sensor trigger counters))
Zeile 60: Zeile 60:
  
 
=Robot sensor trigger event (sensor trigger counters)=
 
=Robot sensor trigger event (sensor trigger counters)=
$RMTRIG,bl,br,bc,pfl,pfr,pfc,prl,prr,prc,ip,ir<cr><lf>
+
$RMTRG,bl,br,bc,pfl,pfr,pfc,prl,prr,prc,ip,ir<cr><lf>
 
*bl: bumperLeft
 
*bl: bumperLeft
 
*br: bumperRight
 
*br: bumperRight

Version vom 7. Januar 2017, 22:14 Uhr

Describes message format used to externally control a robot mower (e.g. Ardumower-based).

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 data event (sensor values)
  • $RMTRG: Robot sensor trigger event (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)

$RMTRG,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