Autonomous Robotic Lawn Mower
Mowing the lawn is tedious work. And it's a year-round project. But it doesn't seem so tedious once there is a robotic lawn mower ready to do the job for you.
A company in the consumer robotics industry was working on a robotic mower. They needed a professional company that could provide an independent design review for their first version of the printed circuit board that had been created by another electronics design company. Integra Sources' expertise and our ability to predict possible risks impressed the client so he decided to continue the development of the robotic mower with our company.
We were chosen to build peripheral device drivers for the first version of the lawn mower and then continued working on the second, more advanced version of the circuit board.
Our major goal was to develop a machine that could independently cut grass in specified areas of home gardens with minimal supervision. We achieved it by doing research, designing a robotic movement mechanism with electronic control circuitry and programming the controller.
We went through several iterations to build the electronics and develop firmware for the robot so it could meet the customer's expectations. The main challenge was to keep within the budget for hardware components. Our client wanted to make the lawn mower accessible to the mass market. Therefore, it needed to be cheaper than its competitors.
- STM32F4 series MCU with Cortex-M4 core was used for this project.
- FreeRTOS was used for firmware development.
- Microsoft Visual Studio with Visual GDB plugin was used for firmware implementation.
- CMOS sensor (camera) with DVP bus was used.
- The device can connect to the cloud (server) using WiFi or 3G connection.
- The first prototype of the device has a wireless module NRF24L01 to communicate with the base station and LCD with touchscreen for GUI.
- For precision positioning, GPS, accelerometer, gyroscope, compass (magnetometer) and computer vision algorithms are used.
- Altium Designer IDE was used for Schematics and PCB design.
- The firmware was implemented using C/C++.
Integra Sources managed to put the project on solid technical footing while lowering the estimated cost of the development effort required. We provided hardware design, prototyping, firmware development, and testing.
The delivered result is a fully completed hardware solution for an autonomous robot that doesn't need any supervision. The robotic lawn mower is equipped with algorithms and sensors – camera, accelerometer, gyroscope – that allow the robot to map the area it's about to work on. It's also equipped with a charger and a Wi-Fi and 3G module.
To set up the area of operation, you just need to walk around the lawn with the robot so it remembers where to work. After that, it is ready to cut the lawn’s grass 24/7 and will charge itself when it runs out of battery.
Scope of work
Embedded hardware development
This project is based on STM32F4 microcontroller and runs on RTOS. The robot has a lot of peripherals including WiFi, GPS, GSM, camera, IMU, wireless module NRF24L01, and LCD display.
We implemented low-level firmware programming for the circuit board.
Embedded software development
The OpenCV based computer vision autonomous navigation system allows the lawn mower to detect and identify obstacles and boundaries.
The functionality of the lawn mower
We implemented low-level firmware programming, prototyping and higher-level logic such as computer vision and visual odometry. The robot has a graphical interface, it charges in an hour and has a smart autonomous workflow. Its functionality includes:
- State monitoring. In the event somebody decides to steal the robot, it will send an alert through Wi-Fi or 3G about the incident. The robot will also send notifications if the knife is hooked or stuck.
- Object detection. The robot is equipped with a proximity sensor, so it can detect objects and people. It turns off when a person is detected within the field of its operation.
- Obstacle avoidance. The robot avoids obstacles around the yard. If any of its sensors pinpoint a hindrance, the robot will immediately stop and then pivot in a different direction.
- Visual odometry. The robot is able to detect the surface it's working on. It will
recognize the grass and its color using computer vision algorithms.
- Positioning system. We developed a Kalman filter algorithm for a multi-sensor system consisting of an accelerometer, gyroscope, magnetometer, and GPS for detecting the position of the lawn mower.
- Magnetic key. To stop the robot in case of an emergency you can use a magnetic key.
Integra delivers what they say they’re going to deliver. I’d say their flexibility is their most impressive feature. They can do the whole stack, from very low-level analog circuits all the way up to and through complex digital circuits and software.
CEO of Robotics company
You might also like...
A Ready-To-Fly Quadcopter
The quadcopter is 10x10 centimeters in size. It can be controlled over a Sony PlayStation 2 gamepad or any other compatible wireless gamepad
Programmable Robots for Education: 3 Case Studies on Custom Software and Firmware Development
The project was delivered for DaVinci Labs. We implemented custom software development for Lego Mindstorms EV3 and Makeblock MeAuriga robots