I also should mention the micro-controllers will need an OS to lesson the burden of writing all this super complicated timing stuff in OS's. Really hairy stuff. A good open source that works a huge amount of micro-controllers, including my favorite the ESP32 is FreeRTOS. Real time so it will be responsive. It has good expansion features for legality. How long before they add in safety rules and regs? Not long. It MIT license so you free to do as you please but it has, if you pay, verified guarantees. There seems to be a good deal of documents for it and other libraries to use. Code for RISCV and ARM and others. This means we can write code and use whatever micro-controller w can get at the lest cost highest performance.
https://www.freertos.org/index.html
I don't think this will work for microcomputer processors but I'm not sure. Be nice if it did then we could use more powerful RISCV for processing speech, visual, etc. while using the same OS everywhere. Less to learn.
I'm not saying I know how to do this but my thinking is if we could use all these micro-controllers for input output to mostly walk and move around but ALSO use the fairly large computing power they have built in to do processing also. So say the robowaifu wants to clean something or do something complicated it could stop moving mostly and use a little of it's micro-controller distributed computing power to aid in whatever task it was concentrating on. Much like humans. When they concentrate they slow down and think. I think as I said before something like seL4 will likely have to be used for the main processor for speech, understanding and navigation.
There's something I talked about earlier that I think is real important. In order to keep cost low we will have to use some sort of off the shelf micro-controller. The ESP32 I like so much has a large amount of inputs (they can read capacitive sensors for touch) and a large amount of outputs. Ideal. Now instead of building some contrived output board instead we use these outputs built in (driving transistors or more likely MOSFETs) AND the big win is these things have a a lot of computing power. So we have all this computing power and if we can share this between the various micro-controllers then it may very well be that for basic moving around, not bumping into things we could just use the built in computing power of these things and not have any main processor at all. Later for speech or higher functions we could add a fast RISCV microprocessor and link to the other controllers.
What kind of power we talking about. I wrote before,
"...You can get them for less than $9USD... So at 300 muscles/16 PWM output channels per micro-controller, means we need 19 and at $9 each=$171
But with that comes 19 x 600 =11,400 DMIPS. DMIPS is basically that many integer million instructions per second. It's a lot. 11.4 billion total per second with 19 MC's.
>>12474
Let's say we check every output and input every micro second so a 1000 times a second and it takes 10 instruction cycles to do so that leaves us 599,560,000 instructions a second to do...something with. And that's just one processor. Most things we are going to do is compare and test, is the arm here or there, has the touch sensor touched anything, etc. most of these are values you compare to some value. I don't think the average computing will be very large for that. Even if it's ten or hundred times larger we still have a hell of a lot of computing left over.
I think with the right algorithms walking and moving about will take very little computing power. After all insects move about just fine and they have next to no computing power. Of course figuring out how to do this might be tricky. I bet someone, somewhere, has a paper about this but I'm not sure if I've seen it. Looking up insect movement papers might be helpful.
"...Insect brains start at about 1000 neurons...".."
It's a lot of power these MC have and communication is built in to these things with CAN2.0 bus comm. like they use in cars, industrial machinery and medical equipment.
Now none of this is easy. Learning some operating system, writing code for micro-controllers, using CANbus commands, but think of you had to write this stuff yourself from scratch. Hopeless. Almost a lifetime job, but if you can crib through a manual and copy other people's snippets of code, cut and paste code from these specs that are used by lots and lots of people, (meaning more code in the open), maybe you could get something working.
If anyone has any ideas on how to send messages over CAN2 bus for movement of actuators I would really like to hear it.
You would have to send some sort of vector, meaning a direction, in or out, and a velocity which would be turned into a voltage to drive the actuator. Now you want to be able change this in the middle of movement so how to do that? Could you send a beginning vector and then send maybe a second vector? How to make these vectors coordinated so you have walking instead of jerky stuttering movement? Could you have one micro-controller control all the muscles in one limb so that you could tell the limb to move say, forward ten inches and two inches to the side and then have the computer figure out how to work these all together? Could you use some sort of AI software to do all this coordination? Coding it all by hand could take forever. What kind of AI code would you use to do this sort of thing? Lots of questions, no answers...yet.