Close

Control System: Computer or Bare Metal ?

A project log for WEEDINATOR 2019

The WEEDINATOR project continues .... The inevitability of robots working on farms draws ever nearer ....

capt-flatus-oflahertyCapt. Flatus O'Flaherty ☠ 07/02/2018 at 13:262 Comments

One of the debates that came out of the Liverpool Makefest was whether it would be better to use a computer eg Raspberry Pi or microcontroller such as Arduino for the control system? ….. I tried a Google search, but nowhere could I find a definitive answer.

In my mind, the Raspberry Pi, or the 'RPi', is great for complex servers or handling loads of complex data such as Ai based object recognition …… Or a complex robot with very many motors running at the same time. In contrast, the Arduino, or 'MCU', will handle simpler tasks with greater efficiency and reliability.

The RPi works with a huge operating system composed of a vast, almost indecipherable, network of inter-dependable files, using a very large amount of precious silicon. The problem here is that computers are prone to crashing due to their sheer complexity whilst a MCU, with only a few thousand lines of code, is at least one order of magnitude more reliable. The other question that was posed is that if the system, whatever it is, does crash, how long will it take to reboot?

As development of the machine continues, some of the tasks will be assigned to a small computer, the Nvidia TX2, hosting an enormous graphics processor for Ai based object recognition. More critical tasks such as navigation and detecting 'unexpected objects' will be done on MCUs. One of the major tasks is writing / finding code to get reliable communication between these devices. We might also want a simple 'watchdog' MCU to check that all the different systems are working properly. Maybe each system will constantly flash a 'heartbeat' LED (or equivalent) and the watchdog will monitor this. A small robotic arm would then move across to press the relevant reset button.

Discussions

Humpelstilzchen wrote 07/03/2018 at 07:24 point

The last line "A small robotic arm would then move across to press the relevant reset button." was a joke, right?

Also I'm not sure that navigation is a job for a 8-Bit MCU. Once you need path planning with costmaps it gets really cpu intensive. Personally I would run the motor control and close proximity sensors on the AVR and the high level navigation on the Computer. Once your software/computer crashs and the MCU detects bad or no commands it just stops.l

For the connection between them, do you choose CAN or something else?

  Are you sure? yes | no

Capt. Flatus O'Flaherty ☠ wrote 07/03/2018 at 08:21 point

I'm glad that somebody spotted the joke!

You're completely right - the high level navigation will be done by Nvidia Jetson running Ubuntu. It will use more sophisticated object recognition to create 2D arrays of crop position and then output a simple navigation / weeding variable for the MCU.

Route or path planning will be done on yet another computer and either 'drip fed' to the WEEDINATOR via cellular modem or saved in totality on an SD card and inserted into WEEDINATOR control system with human fingers (no robot arm required).

  Are you sure? yes | no