Robot mower system architecture
The robot mower system architecture consists of various mechanical, electronic and software components. They as shown on figure below and shortly described in the following paragraphs.

Element description
As shown above, the robot mower system architecture is made of several modules. Each one has a dedicated function shortly described in the following chapters. Modules communicates together therefore we are using CAN Bus.
On board computer
The on-board computer is the heart of the robot mower system architecture. It contain the software that manage the robot operation. The on-board computer is a Raspberry Pi. However, in order to not re-invent the wheel, the software used to operate the robot is ROS.
Communication bus
We are using CANBus and CANOpen for the communication between the different systems whenever possible. CANBus is a well known robust and real-time protocol used in different areas such as robotic or automation.
CANOpen is implemented on the top of CANBus. CANOpen implements a list of standard profiles that ease real-time communication between CANBus devices. There is also a CANOpen implementatin in ROS.org">ROS, that work on the top of SocketCAN.
Propulsionotor and BLDC controller
Motor
We have choosen Nema 23 motors with gearbox reductor for our prototype.

BLDC controller
We decided to use 4 brushless motors and a dedicated controller per motor. After several tests, we decided to use KYDBL 2430-1E brushless controller.

Cutting motor
The cutting motors drive the knives. We are also using brushless moter as the need les maintenance as DC motors.
Navigation system
The navigation system is made of three elements:
- The GPS
- The Lidar
- The accelerometer and compass
GPS
We are using a RTK GPS for calculating the position of the robot. This is very accurate. Therefore, it allows to get rid of the traditional wire that limit the operational zone of the robot.
Lidar
The Lidar continuously scans the environment. Hence, it helps the SLAM (simultaneous localization and mapping) software module of the robot to upgrade its environment knowledge. This is essential to calculate the optimal path.
Accelerometer and compass
The compass is there to help the robot to follow a path. It might not be absolutely necessary, but this has to be tested with the prototype.
The accelerometer have several goals such as measuring the slope, or detecting if the robot overturns.
Telemetry
Telemetry is in charge of communication with a central system. During the development phase, it allows to develop algorithms in a central system without having to deploy then in the robot. This feature is in the core of ROS.
Local contacts
We would like to cut grass very close to threes trunk, but without hurting them. The Lidar is not accurate enough: therefore, we are using local contact to detect when te robot is touching an obstacle.
Battery monitor
We continuously monitor the battery charge status as well as the consumption of the whole system. Consequently, this allows to detect when the robot has to go back to its charging station.