Just how much ___ does a robot need

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.

2 Likes

. . . and on Charlie, (a Pi-4), using VS Code and the “server” wedge on the robot itself, those commands are virtually instantaneous and Charlie doesn’t even break a sweat.

I don’t know how much of this is attributable to Charlie running on a Pi-4, that the VS Code on my laptop is doing the heavy lifting, (or maybe not?), or whatever else, so Your Mileage May, (and likely will), Vary.

2 Likes

Impossible - Try compressing 3 GB (2924176 ./Chatbots) of software and then sending it up.

2 Likes

3 gigs?!!

What the &^%$!!! are you sending, a whole GoPiGo O/S image?

My entire New Remote Camera Robot repository is less than 27 megs in size, even including pictures, images, all five branches, and other assets.

I can’t even imagine what you’re pushing that would take 3 gigs to encapsulate, unless you’re pushing the entire O/S.

(Shakes head. . .)

2 Likes

A “Carl” chatbot based on the Bruce Wilcox ChatScript Engine which won the Loebner “Turing Test” prize 4 times …

but keep getting:

fatal: the remote end hung up unexpectedly
Everything up-to-date
2 Likes

Huh?

You need all that, (3 gigs worth), for Carl to say "My memory’s going. . .  I can feel it. . . "?
(:wink:)

1 Like

Probably not, but I tried to add the top level to be sure I got whatever is needed.

Now my git is so messed up I’m going to have to have a chat with Carl about what he thinks…

Or maybe I will make a copy of what I think I changed and blow the whole thing away. It wasn’t easy going so I back burner’d it and took too long to get back to it.

2 Likes

Blowing a repo is kinda’ extreme.

Maybe you can copy it somewhere and just clone over what you need to a fresh repo.

1 Like

I made a backup then deleted the whole Carl/Examples/Chatbots/ChatScript folder on git,
did a git reset --hard origin/master, then started little by little recreating the folder and checking stuff in, till I have what I changed in Git. The BIG stuff, came from the author’s git and can theoretically be redownloaded to recreate. Eventually, I really would like to have “my copy” of the author’s knowledge rules in git, but for the time being I’m at least able to check my changes in without seeing:

$ git push
...
fatal: the remote end hung up unexpectedly
Everything up-to-date
...
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Sure, like that wasn’t what got me in this situation in the first place.

Git is this wonderful thing that is complex beyond my ability to model. When it works at least.

but

1 Like