5 ms·
Does a Raspberry Pi have enough computing power to run these two neurons in the real world? Could I attach motors and sensors to a real bike and have it drive i
by hathawsh 9y ago
Does a Raspberry Pi have enough computing power to run these two neurons in the real world? Could I attach motors and sensors to a real bike and have it drive itself? That would be amazing.
- AstralStorm 9y agoIf by drive you mean not fall over, yes. If you mean actual routing, avoiding collisions and reacting to unexpected situations, very much no.
- IshKebab 9y agoYes of course. But if your goal is to make a robot bike there are better algorithms than this one.
- Seden 9y agoThis is just a PID controller, they have existed and been used in industry much longer than computers and thus require almost no computing power at all. Everyone taking higher level engineering courses learns how to design these because almost everything uses them. Honestly I thought that the paper was a joke on how everything is called neural network, but maybe it is serious... https://en.wikipedia.org/wiki/PID_controller#History https://en.wikipedia.org/wiki/PID_controller#History
- iovrthoughtthis 9y agoI'm with you here. Did no-one else do robotics in CS?
- dharmab 9y agoUnfortunately it's not a part of many curriculum. A lot of CS tracks seem to shy away from hardware. For contrast, the bioengineering track at my state college did include electronics (along with programming, high level math and of course biology and chemistry).
- tnecniv 9y agoLot's of schools don't put robotics in CS. They put it in EE or ME. Computer vision is often a CS class, but control theory and other subjects that involve interacting with the physical world are often placed in other departments most CS students avoid.
- khedoros1 9y agoI did as an undergrad, but I had to petition to take the class because it was considered graduate-level.
- tgb 9y agoYeah, that was my thinking: how is this doing anything other than a PID controller? Glancing at the paper it actually looked like a PD controller, but maybe I missed some feed back where it could accumulate an integral term as well.
- crispyambulance 9y agoI guess you can think of it as a "self-tuning" PID controller. It "learns" how to ride a bike. If it were really "just" a PID, you would need some arbitrarily complex procedure involving a human for tuning all the parameters?
- andars 9y agoIt isn't self-tuning, and it doesn't "learn." From the paper: "The three constants c_i need to be set by the implementor" Under "Future Directions": "One obvious thing to do with this system is to have it learn and tune its parameters with experience." The work presented in the paper does not do this. "This network was designed in an ad-hoc, if traditional, way. First, a human tried to control the bicycle with the simulator. After many attempts, the human finally became a somewhat skilled operator of the bicycle ... the human at this point was able to describe the key parameters which were being attended to, and based on this, the two-neuron network was designed." By "designed," the author means "the three constants were selected." This sounds like the "arbitrarily complex procedure" you are looking for.
- Filligree 9y agoSo it's a PD controller.
- _dps 9y agoThere's a whole body of theory on Adaptive Control (what the control systems community has called what we would now called "learning based control"). This is one of the classic texts: https://www.amazon.com/Adaptive-Control-Karl-Johan-Astrom/dp/0201558661 https://www.amazon.com/Adaptive-Control-Karl-Johan-Astrom/dp... In short, many techniques that look a lot like modern machine learning have been in use for decades in control theory for tasks exactly like you describe (e.g. automatic tuning of PIDs). If you want to dig into this a bit deeper you might look up the "MIT Rule", which is a gradient style approach for dynamically tuning (and re-tuning) adaptive control systems, and is fairly common for PID tuning.
- andars 9y agoIt looks more like a cascade of a P controller (theta setpoint to gamma setpoint) with a PD controller (gamma setpoint to torque). But yeah, basically just classical control.
- jamessb 9y agoYes, except that there is also a threshold applied (sigma).
- Filligree 9y agoFunnily, I learned about PID controllers first while playing a Minecraft mod... but yeah, this definitely looks like one.
- goialoq 9y agoNo, because the model described in the paper only works for an extremely simplified toy simulation of a bicycle, not a real bicycle riding on a real road that is not a spherical cow.
- 21 9y agohttps://www.youtube.com/watch?v=mT3vfSQePcs https://www.youtube.com/watch?v=mT3vfSQePcs
- dahart 9y agoFun fact: PID controllers are embedded into the wiring of today's brushless hobby motors, the kind used for drones, for example. The last motor I dissected had a tiny little ATMEL 8-bit 1Mhz chip shrinkwrapped into the wires that controls the phase of the magnets that drive the motor, to make sure it matches the spin rate and make sure it doesn't skip or get out of phase. ATMEL published a whitepaper on the PID controller that says it runs the chip at around 10% load, meaning it could handle the PID calculations for 9 motors and still have some spare cycles. A Raspberry Pi is powerful enough to run hundreds or thousands of PID controllers simultaneously, depending on your sample rate.
- hexane360 9y agoNot surprising, given that we had mechanical PID controllers working with extreme accuracy (steering a ship in severe weather) in 1922.
- photojosh 9y agoDo you have a link or a more-searcheable term? This sounds like a fantastic rabbit hole to do down, given I spent a significant proportion of the last week tuning PID to run well at very low motor RPMs... (have a look at the repos for the hardware and firmware for the VESC motor controller for some fun: https://github.com/vedderb https://github.com/vedderb) The problem with Pis is going to be that running Linux they're at best soft real-time. Sampling, PID, etc needs hard real-time.
- dahart 9y agoI just looked for "atmel brushless motor control" and got this, which looks similar to the document I read before, but it's for the atmega32 instead of the atmega8: https://www.researchgate.net/profile/Mohamed_Mourad_Lafifi/post/how_to_designa_hardware_MRAC_for_BLDC_motor/attachment/59d6534d79197b80779ab434/AS:516438487646208@1500139938189/download/Brushless+DC+Motor+Control+using+ATmega32M1.pdf https://www.researchgate.net/profile/Mohamed_Mourad_Lafifi/p... I can also see a ton of PID controller projects on various microcontrollers searching for pid and brushless controller and esc and motor controller and things like that.