ROSMower, first attempt to build a lawn mower with ROS

paddy

Active member
Hello,

back in 2018, I tried to build a partly 3D printed lawn mower https://forum.ardumower.de/threads/paddys-mower.23026/. But because Robin Fröjd started an even cooler, 3D printed lawn mower, I retired my build for his great design and was satisfied so far.

But I wanted to try new things. It should be more silent and it should be based on ROS, Robot Operation System. Just I wanted to learn something new.
On the other hand, I don't want to spend 1000€plus in a DIY lawn mower. Sadly, BLDC motors are expensive as we all now. In the end, I found an alternative which you can get for mostly nothing (I payed 20€): Hoverboards

These toys are equipped with a 36V battery, a motor driver based on STM32 and two really powerful BLDC hub motors. They're capable to handle 150kg and drive really fast. But they can also run pretty slow.

After digging around, I found some other people using these motors together with ROS. Time to re-born this old build.
It runs on ROS Noetic on a Raspberry PI 3b+, which is connected to a PS4 controller by Bluetooth and to Hoverbard PCB by UART. It is incredible how powerful these motors are and especially, how silent. Odometry works as well. Next step will be implementing a ROS node for Ardumower perimeter fence and to re-build Ardumower functionality in ROS.

 
Hello,

back in 2018, I tried to build a partly 3D printed lawn mower https://forum.ardumower.de/threads/paddys-mower.23026/. But because Robin Fröjd started an even cooler, 3D printed lawn mower, I retired my build for his great design and was satisfied so far.

But I wanted to try new things. It should be more silent and it should be based on ROS, Robot Operation System. Just I wanted to learn something new.
On the other hand, I don't want to spend 1000€plus in a DIY lawn mower. Sadly, BLDC motors are expensive as we all now. In the end, I found an alternative which you can get for mostly nothing (I payed 20€): Hoverboards

These toys are equipped with a 36V battery, a motor driver based on STM32 and two really powerful BLDC hub motors. They're capable to handle 150kg and drive really fast. But they can also run pretty slow.

After digging around, I found some other people using these motors together with ROS. Time to re-born this old build.
It runs on ROS Noetic on a Raspberry PI 3b+, which is connected to a PS4 controller by Bluetooth and to Hoverbard PCB by UART. It is incredible how powerful these motors are and especially, how silent. Odometry works as well. Next step will be implementing a ROS node for Ardumower perimeter fence and to re-build Ardumower functionality in ROS.

@paddy, do you have more informations on how to "speak" with the hoverboards PCB? May it is possible to control via Ardumower -board too.
 
@paddy, do you have more informations on how to "speak" with the hoverboards PCB? May it is possible to control via Ardumower -board too.
Hello,

to communicate with motors, the Hoverboard PCB gets used. It is equipped with a STM32 and two UART interfaces. The new firmware (found here https://github.com/alex-makarov/hoverboard-firmware-hack-FOC) can handle different types of input like:
- UART commands
- Analog Input
- PWM
- Numchuck

and others. I use here the USART2 connection, so it is simply a TX/RX connection for sending commands to motors as well as get reported data (speed, odometry, battery state etc.) back If you look at the git repo, there is also a simple test program for Arduino which will spin the wheels periodically forward and backward.

So yes, there are many options to interface with these motors.
 
Like for other BL Motor (without gearbox) we never have this kind of info ,Maybe your test can help and give a real result ? ;)
What about Odometry and ticks/rev ?
Is it possible to have a sense feedback ?
What about braking on downhill for example ?
How many time to stop all motor from normal mowing speed for example on bumper (need less than 1 cm) ?

Sorry but i test this kind of motor and setting but unfortunately there is always something that go wrong:cry:
 
Hello,
sorry for my late response here.
Odometry and current sensing works. There are 90 Ticks per rev. Please have a look at the git repo I posted. There you find many information about parameters like brake, coasting and so on. It all depends on your requirements. You can also define a max current per motor and firmware will ensure to never feed more than you want.
Acceleration is not handled by firmware. So changing speed / break will be done somewhat of instantly, ok drag and physics will be limiting factor for sure. Smooth movement needs to be done by yourself, like it is also done in Ardumower firmware. The Hoverboard PCB is something like a motordriver with some clever firmware but nothing more.

I did some additional tests and can confirm, they are powerful, pretty silent and so dammed cheap (sell for nothing on aftermarket) Also I really like the form factor, there is no large gearbox and no long motor, just a short shaft as these are hub-motors.

There is also no need to use ROS like I do (for other reasons). You simply send some velocity commands via UART (serial), thats all. This can be done by Arduino, RaspberryPI, any other MCU of your choice.

Patrick
 
After some development time, I finally got a LD06 360deg TOF Lidar and BNO085 IMU up and running. This video is a first outdoor test on a sunny day. Lidar works good so far even outdoor. The small dots displayed on the right side or area aren't noise, these are poles of my childrens playground.

Beside the test of LIDAR and IMU, one huge step for me was to get sensor fusion of Odometry and IMU working by using ROS robot_pose_ekf package, a kalman filter to fuse odometry with other sensors to determine robots pose and orientation.

The video sometimes hangs which was caused by poor wifi connection to robot. Robot gets controlled by Playstation4 bluetooth controller. Next step will be to set up robot navigation stack to do amcl and slam. As well to implement Intel Realsense D435 stereo depth camera. I'll try to add 3D Pointcloud of this camera to make Navigation even more robust. I'll also try to use OpenCV to detect and classify objects and landmarks.

 
I'm happy to have Google. I discovered ardumower project today, but wasn't happy with the GPS solution for navigation. So I searched for arduino compatible lidar sensors and found complete sensor towers including motor for ~100$ on banggood.

For me, lidar is the better choice for autonomous movement in any environment.
 
As I'm currently waiting for some components, I started to build a 3D printable chassis from scratch. I call it HowerMower, as it is based on Hoverboard Motors, battery, PCB as motor driver and some other components of Hoverboard.
All motors operates at 42V, just because Hoverboards do so. But less voltage will also work.

The upper box with antenna contains all expensive electronic parts, like RaspberryPI or Jetson Nano, Lidar, Stereo Camera and so. It will be detachable so it can be carried to a different robot. Also, the Ardumower PCB will fit inside, if someone is interested to build it without ROS. In my opinion, chassis and software should be exchangeable and not related to each other.

I'm interested what you think about this.

front.pnginside.pngleft.pngMowerAssembly_2021-Sep-15_09-26-11AM-000_CustomizedView53425415533.pngMowerAssembly_2021-Sep-15_09-29-06AM-000_CustomizedView210065667.pngMowerAssembly_2021-Sep-15_09-30-21AM-000_CustomizedView12710442068.pngright.png
 

Anhänge

  • back.png
    back.png
    45,2 KB · Aufrufe: 17
  • bottom.png
    bottom.png
    103,4 KB · Aufrufe: 24
  • MowerAssembly_2021-Sep-15_09-27-11AM-000_CustomizedView42430555591_jpg.jpg
    MowerAssembly_2021-Sep-15_09-27-11AM-000_CustomizedView42430555591_jpg.jpg
    306,9 KB · Aufrufe: 22
Zuletzt bearbeitet:
As I'm currently waiting for some components, I started to build a 3D printable chassis from scratch. I call it HowerMower, as it is based on Hoverboard Motors, battery, PCB as motor driver and some other components of Hoverboard.
All motors operates at 42V, just because Hoverboards do so. But less voltage will also work.

The upper box with antenna contains all expensive electronic parts, like RaspberryPI or Jetson Nano, Lidar, Stereo Camera and so. It will be detachable so it can be carried to a different robot. Also, the Ardumower PCB will fit inside, if someone is interested to build it without ROS. In my opinion, chassis and software should be exchangeable and not related to each other.

I'm interested what you think about this.

Anhang anzeigen 3166Anhang anzeigen 3167Anhang anzeigen 3168Anhang anzeigen 3169Anhang anzeigen 3171Anhang anzeigen 3172Anhang anzeigen 3173
That's great !

I have a project to use motor from a hover board too. Could you please share with us how do you imagine to connect the pcb v1.4 to the motor drivers ?

I have this kind of drivers : https://www.marotronics.de/Controle...12-36V-15A-500W-avec-controle-de-vitesse-Hall

thanks
 
That's great !

I have a project to use motor from a hover board too. Could you please share with us how do you imagine to connect the pcb v1.4 to the motor drivers ?

I have this kind of drivers : https://www.marotronics.de/Controle...12-36V-15A-500W-avec-controle-de-vitesse-Hall

thanks
I use the origin PCB of Hoverboard as motor driver. There is a firmware available https://github.com/alex-makarov/hoverboard-driver

It uses UART to communicate, so you simply need to send a command in a given protocol and it will drive.

So I don't use Ardumower PCB for this robot but it should be feasable at all by send commands through one uart interface instead of driving pins to control MCxxx driver.
 
I use the origin PCB of Hoverboard as motor driver. There is a firmware available https://github.com/alex-makarov/hoverboard-driver

It uses UART to communicate, so you simply need to send a command in a given protocol and it will drive.

So I don't use Ardumower PCB for this robot but it should be feasable at all by send commands through one uart interface instead of driving pins to control MCxxx driver.
Ah ok,
thanks a lot for the description
 
My current Arctic Hare chassis uses a moving top cover, so entire chassis acts as bumper. I tried to achieve this again.
So here is a new version which is, heavily inspired by the work of Robin Fröjd. It has again an fixed motor section with an PCB mount. These parts are static. The front covers mowing disc and can move around. Simple micro switches are used to detect the offset of the front and triggers bumper. This works since 3 seasons at Artic Hare chassis, so I try it again.

floating_body_bottom.pngfloating_body_front.pngfloating_body_right.pngfloating_body_top.png

Meanwhile, BLDC motor driver for mow motor has been arrived from china. It is not that fancy than Ardumower BLDC driver, so it doesn't provide odometry feedback and it can controlled by PWM only. But it does have some hardware power limit (poti to set max watts), Enable and Brake Input from controller and an alert output to controller. Also it can handle 42V with ease and brings an really large heatsink. But it is large, so it might become challenging to find a proper place.
 
For space issue it's possible to use teensy 4.1
Here a picture of the PCB inside TC G158 (The Power PCB , at bottom is used to measure the voltage and sense "INA226" on 5 possibles 24V output if driver don't have the and manage the battery capacity)
The Simple PCB is smaller than the PCB1.3 , and if you don't need MC33926 DC motor driver it's certainly easier to manage.


Mower.jpg


And a video with AZURITBER adapted version for teensy.
A Pi Zero is used to record everything and debug the firmware (not present on the picture).


 
Hello,

the last couple of days (or was it weeks?), I planned a new 3D printable chassis which fits to Hoverboard Motors. Some of the initial ideas you find in this thread. This is my 4th Mower project and in past, it was always a nightmare to build a proper documentation afterwards. So this time, I try to do it even better by creating documentation during build.

As statet earlier in this thread, I try to distinct chassis, electronics and firmware separately. So you can re-use the chassis only, if you want. Ardumower PCB will fit inside.
Because I don't want to use a forum to document the robot, I've build this page here


It will be my starting point for documentation. So if you're interesting in my progress, have a look there. But I will still update my progress here as well.

Current status: the first, five mayor parts has been printed with success. Only two main parts are missing to complete the inner chassis.
 
Der HoverMower hat ja Leistung im Überfluss. Wenn das Chassis so bleibt, also Heckantrieb mit Stützrad vorn, wird er wahrscheinlich genauso viele Probleme am Hang haben, wie seine Artverwandten. Leider fällt mir auch keine „einfache“ Lösung ein, damit er besser die Spur halten kann. Evtl. wäre hier der Frontantrieb von Vorteil.
Gruß Fürst Ruprecht
 
After vacation and some work the last couple of days, I made a huge progress in building hovermower.I've updated all repositories of chassis and want to share the current state with you.
 

Anhänge

  • chassis_bottom.jpg
    chassis_bottom.jpg
    374,7 KB · Aufrufe: 20
  • chassis_final_2.jpg
    chassis_final_2.jpg
    190,7 KB · Aufrufe: 16
  • chassis_final_1.jpg
    chassis_final_1.jpg
    174,4 KB · Aufrufe: 16
  • chassis_final_3.jpg
    chassis_final_3.jpg
    241,5 KB · Aufrufe: 15
  • chassis_final_4.jpg
    chassis_final_4.jpg
    186,9 KB · Aufrufe: 17
  • lower_chassis_complete.jpg
    lower_chassis_complete.jpg
    163,1 KB · Aufrufe: 17
Der HoverMower hat ja Leistung im Überfluss. Wenn das Chassis so bleibt, also Heckantrieb mit Stützrad vorn, wird er wahrscheinlich genauso viele Probleme am Hang haben, wie seine Artverwandten. Leider fällt mir auch keine „einfache“ Lösung ein, damit er besser die Spur halten kann. Evtl. wäre hier der Frontantrieb von Vorteil.
Gruß Fürst Ruprecht
Tatsächlich ist mein Rasen ziemlich eben. Die meisten kommerziellen Mäher sind mit Heckantrieb und ja, alle scheitern an Steigungen. Für wirklich steile lagen eignet sich meiner Meinung nach nur ein Allradantrieb, der wieder eigene Probleme mit sich bringt.

Es bleibt wie bisher, der Aufwand (und damit die Probleme) steigen proportional Garten.
 
Oben