Skip to content

prigorus/Mowgli

 
 

Repository files navigation

Mowgli


About

This repo is forked of https://github.com/cloudn1ne/Mowgli to folllow his great job.
It should work on the Yardforce Classic 500 and LUV1000RI
Please adjust the configuration in board.h

The documentation on this fork is mostly not up to date - we will try to update it.

The current way to build a mowgli mower is to use mowgli-docker and go to the Setup page in the GUI to flash your mainboard & gps (be sure your stlink is connected to your pi).




Safety


The custom firmware has no protections - no tilt sensing, no stop buttons will work. If you stick your finger in the wrong place, you will lose it.

  • Remove the razor blades
  • Dont be stupid
  • Dont blame me for your lost finger



Every below this is not 100% up to date...


Whats done ?


  • Basic overview of the mainboard, Datasheets for ICs
  • Motor Drivers for both Drive Motors and Blade Motor can be controlled
  • Mainboard (GForce) Firmware dump and restore via an ST Link or other (e.g. JLink Segger) tools
  • Panel (GForce) Firmware dump and restore via an ST Link or other (e.g. JLink Segger) tools
  • Demo Python code to control the Mower via a Joystick (needs "test_code" STM32 code flashed)
  • ROS Serial node via CDC USB Port with full hardware support
  • Serial debugging on the unused (red) J18 header
  • Software I2C on the unusued (red) J18 header - used for external IMU
  • Raspi, IMU, GPS Mounting Options
  • onboard Buzzer
  • onboard IMU (accelerometer) for tilt protection
  • Safety switches (Hall Sensors) for STOP button
  • Rain Sensor

TODO


Do the correct topics to remove the mowgli proxy in openmower ros and so be plug & play with openmower.


Updates

see Updates


rosserial node


This is the software that needs to be compiled and flashed onto the STM32 on the Geforce Mainboard

in case a supported I2C IMU is connected to J18

Currently supported IMUs:

Don't hesisate to ask if you want use another IMU

Check in board.h for the connected PIN, as I used PB3 for debug purposes, the pinning is different as the original repo.

Published Topics

Services

  • /mowgli/MowerControlSrv - enabled/disable blade
  • /mowgli/GetCfg - read SPI flash config var
  • /mowgli/SetCfg - write SPI flash config var
  • /mowgli/Reboot - reboot Mowgli
  • /mowgli/ResetEmergency - Reset emergency state
  • /mowgli/SetLed - enable LED (1-17), if the MSB is set (128), the bot will chirp too
  • /mowgli/ClrLed - disabled LED (1-17), if the MSB is set (128), the bot will chirp too

Subscribers

  • /cmd_vel - geometry_msgs::Twist (compatible with teleop twist messages, so you can drive the bot)

Serial Debugging

Serial Debug for ros_usbnode

About

YardForce GForce Mainboard RE

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 52.0%
  • C 45.1%
  • Python 1.5%
  • Processing 1.3%
  • Shell 0.1%
  • M4 0.0%