Picking the correct microncontroller

Good day,

I am a student from South Africa and want to start experimenting with MPC controllers in the real world. I believe acados is a great fit for this. For my application, I plan to write an MPC controller that publishes high-level acceleration setpoints for a quadcopter drone. The drone will be running PX4 for low-level control, while a companion computer onboard the drone runs the MPC and publishes setpoints at about 50 Hz.

What I am currently unsure about are the hardware requirements for such a controller, specifically, what is needed to run an acados-based MPC reliably in real time. Would something like a Raspberry Pi Zero be feasible?

From what I understand, acados primarily focuses on CPU performance. Therefore, would having a GPU provide little to no benefit for runtime speed? Should my focus instead be on maximizing CPU clock speed and available RAM when selecting hardware?

I would greatly appreciate any guidance or rules of thumb for choosing suitable hardware.

Kind regards,
Christo

Hi Christo,

Yes that makes sense!
The Raspberry Pi Zero looks like a good options.
If it will allow to satisfy real-time requirements of your controller depends a lot on your formulation.

Best,
Jonathan

Thank you very much for the quick reply and help

If I understand what I have read so far on acados, it seems that it tends to only use one core of a CPU? So if I want to know check if it works for my formulation, it basically becomes a function of CPU speed, architecture, catch size, and how ‘bulky’ my controller is? For the latter part, it is probably a good idea to formulate it first with the Matlab interface and just check how long it takes to run with that and my desktop?

Kind regards
Christo