Edison firmware conversion to Raindancer firmware

roland

Active member
Hello
i am just converting my Edison Nucleo firmware to the PCB1.3 with DUE. In order it will not run on the Edison hardware, I decided to use a new name Raindancer for the converted software.
The reason for this is, that I have the goal to make my robot waterproof and let him mowing in rain also.
Anyway, the first objective is to run it on the Ardumower PCB1.3 with DUE with the current behaviourtree and following hardware parts:

Motors with encoder
Mowmotor without encoder
2 perimetercoils in the front
PCB1.3 with RTC modul, charging system and motordrivers -- thats all what is needed at the moment
Ultrasonicsensor -- only needed if one have obstacles without perimeter around them
Bumperduino - but other bumpers will work also

I needed the Bumperduino, because now I want to read the perimeter on the due and not on an extra nucleo board. But the signal should be 512bit long and not 19bit like the original signal. Alexander and I developed a routine, which maybe works with the code but I haven't it implemented jet. This will improve the perimeter recognition very well - I hope.

Why do I write this all?

To convert the software and make it usable for other people is alot of work to.

I want ask, if someone is interested to support me in programming, testing and documentation.

For programming you need C++ and OOP(not in deep) skills. In order the software is very modular, you can start with small tasks and learn step by step how all works together. Maybe I can support you on Skype.
For documentation the behaviourtree must be drawn new from Splan software to Umlet freeware (I choosed this software because this is very easy to use. But if there is better freeware, I don't care).
The reason for this is, if one want to change the behaviour he must be able to change the documentation. Without this he will get lost in changing and understanding the tree later.
For testing, you need the configuration above.

What are the next steps:
Bring all service routine to run and make them equivalent in the software. Put in more testfunctions to the services. Ultrasonic (different products) and perimeter service must be programmed new.
Divide .h files to .h and cpp.
Sort the Userinterace output and extend it.
Bring the behaviour tree to work with the services.
Change the linefollowing routine that it works with different chassis.
Build a behaviour to bring the mower back out of the chargingstation. My mower runs through it.

and so on and on and on. Its a long way to go. Not done in some days.


I put the current code to github (not mowing jet):
https://github.com/kwrtz/Raindancer
The software has a lot of files. Attached I have drawn a pdf (created with Umlet) how this all works together.

Raindancer follows not the aim of Sunray. The current aim at the moment is; use as less electronics a possible to build a stable mower with an intelligent but chaos mowing behaviour.

Have fun.
 
Oben