Mars-Rover icon indicating copy to clipboard operation
Mars-Rover copied to clipboard

Software & communications flow

Open fabriziofiorucci opened this issue 5 years ago • 10 comments

I'm in the process of writing the control software. This issue is mostly to share what I'm doing and to collect hints/other views on this topic.

Since my version of this rover is based on a Raspberry Zero WH, for development speed reasons I chose to use Java. I know that performance-wise and memory/CPU-wise it sucks, but there's a ton of ready-made libraries and I don't want to reinvent the wheel. Namely, what I'm using is:

https://pi4j.com/ - for IMU, ADC, PWM controller, etc, it has lots of libraries ready to use https://www.eclipse.org/paho/ - MQTT communication https://eclipse-ee4j.github.io/jersey/ - REST API

I will eventually use WiFI and LoRa for the radio/control part, and all telemetry will be sent by the rover through MQTT. MQTT will also be used for interactive control.

Pre-programmed/batch control will be handled through a set of REST APIs that the code running on the rover will provide.

fabriziofiorucci avatar Apr 26 '20 21:04 fabriziofiorucci

I think that's a great idea. When you have something working and if you release it in a public repo, I'll link to it in a new section in the README "Alternative SW" or similar.

jakkra avatar Apr 27 '20 14:04 jakkra

Hi @jakkra I just created a repo for my control software at https://github.com/fabriziofiorucci/Mars-Rover-Control-Software As soon as I have an alpha release ready I'll update the repo.

fabriziofiorucci avatar Apr 28 '20 21:04 fabriziofiorucci

Cool!

jakkra avatar Apr 29 '20 06:04 jakkra

Here you go: the pre-alpha release of my repo is ready, still work in progress

https://github.com/fabriziofiorucci/Mars-Rover-Control-Software

fabriziofiorucci avatar Apr 30 '20 21:04 fabriziofiorucci

Nice progress on your control SW! I just finished my Controller if you are interested https://github.com/jakkra/RoverController

jakkra avatar May 17 '20 21:05 jakkra

That looks really interesting! I just completed the first round of driving tests including interactive control (through SSH to the onboard Raspberry PI for now) and through REST API, driven by Postman.

I'm cloning your controller repo and I'll definitely try to build it. Keep up the great work!

fabriziofiorucci avatar May 17 '20 21:05 fabriziofiorucci

I don't understand, the 6 Channel RC receiver and transmitter is not enough to control the rover?

Smarty-pro avatar Jul 13 '20 15:07 Smarty-pro

Hi @Smarty-pro, @fabriziofiorucci Is writing his own controller software for the rover. A 6 ch RC receiver/transmitter is enough for basic control of the rover. Without a microcontroller you are limited to how advanced your RC controller is, i.e. turning on the spot may not be possible.

jakkra avatar Jul 13 '20 18:07 jakkra

Oh nice

Smarty-pro avatar Jul 13 '20 22:07 Smarty-pro

FYI I just completed printing and adding the head, I'm working on the next commit of my control software + testing LoRA boards to control it remotely.

fabriziofiorucci avatar Jul 15 '20 16:07 fabriziofiorucci