I have often espoused the concept of matching the GoPiGo3 processor to the needs of the particular robot.
Any starting GoPiGo3 user will likely use on average about 4% (0.15 load) of the Raspberry Pi 3B+ processor.
Carl, on average uses only 6% (0.26 load) of his Raspberry Pi 3B (non-plus version).
ROSbot Dave is a bit more power hungry at 25% (1.0 load) of his Raspberry Pi 3B+.
When challenged with performing lane finding on a 320x240 pixel video stream, Carl uses between 35% of the processor for 10 FPS, to 87% of the process for 30 FPS “real-time” performance on his Raspberry Pi3B. Clearly Carl would need to throttle his video stream to leave some processor for the other tasks involved in autonomous vehicle driving.
The Pi4 is said to be 36% faster on CPU processing, should reduce the lane finding loads to 25% for 10 FPS and 64% for 30 FPS, which probably leaves plenty of processor for all the other tasks.
When it comes to memory needs, most new GoPiGo3 users will use only a few percent of the roughly 850 MB of available memory on the Raspberry Pi 3B+ that comes with the robot.
Carl, uses 16% of his 873 MB of available memory holding the voice recognition model, and only 1% for all his other duties and “thinking”.
So it was a real surprise when Carl announced today “Memory Usage Above 85% Safety Threshold”.
The (green) available memory dipped to 145 MB causing Carl’s health monitor to get worried enough to alert me not to be stressing him so much.
Turns out his processor load also went through the roof to 125% (5.0 load) but not long enough to cause temperature throttling.
So what was I doing that caused my robot to worry?
I simply did a git add, git commit, git push of a ChatScript chatbot that was never published up to Carl’s github.
After 10 minutes of “hard work” Carl announced he was feeling healthy again and all was forgiven.