26 April 2016

Personal Neurorobotics

I've been exploring this idea for a few years now. It's time I start to document what I'm doing and ask for feedback. This is a summary, I'll go into detail in future posts.

Consider these trends:
  • Mechanistic models of brains and brain functions are getting better and better
  • Smartphones and laptops are becoming powerful enough to run such models
  • Hardware is getting cheap enough to build robots that can see, hear, make sounds, move around and communicate wirelessly for less than $200
I believe these trends open up a market for autonomous robots whose control-systems emulate biological brains. Consumer robotics is already a rapidly growing phenomenon and neurorobotics is an expanding area of research but I have yet to see the two endeavors combined. Please let me know in the comments below if there's some product or project I've missed.

A first generation personal neurorobot might emulate the brain of a fish or lamprey. Done right, it would explore its environment, avoid obstacles, escape threats, pursue desired states and objects, and learn, both from experience and explicit training. While these are behaviors that conventional robots can be programmed to perform, the defining feature of a neurorobot is its realistic brain architecture and activity, which makes it ideal for exploring and teaching neuroscience. Here, all the robot's brain processes could run on a wirelessly connected smartphone or computer, and be available for observation, explanation and modification in real-time. Using reinforcement learning to train the robot would be particularly interesting.

I see two markets for personal neurorobots:
  • Schools. Robots are already used in schools (e.g. FIRST Robotics Competition, LEGO Education). Neurorobots add the possibility of teaching neuroscience and behavior, which broadens the appeal substantially.
  • Enthusiasts. The popularity of neuroscience on the one hand and of consumer robotics on the other indicates that there would be a lot of interest in a project that combines both.
Importantly, the complexity of the brains and behavior of personal neurorobots could be increased year by year as new neuroscientific findings and models become available. Hopefully this can be an open process, with both individual enthusiasts and larger research teams working to make new brain circuits and capabilities available to the broader user-base. (The Human Brain Project is betting on a similar dynamic with their simulated robot testing environment, the Neurorobotics Platform.) The long-term aim would be to emulate the brain functions of higher vertebrates, such as complex learning, communication, attachment, planning, language and play.

While I think this project needs the attention of experienced roboticists, programmers, educators and investors, I will do my best to demonstrate feasibility and promote the idea. In my spare time I've developed a prototype neurorobot that I call a vertebot, pictured above. The hardware works, although ideally a personal neurorobot should be a light off-the-shelf product, not a five-pound beast that's prone to burst into flames. My main challenge is the code. I'm only fluent in Matlab and this project requires a non-proprietary language. So I'm learning Python and I'll ask for help with that as I move forward. Currently I can just about make a single neuron spike (single_neuron.py). I've set up a website (www.vertebot.com) where I'll put code and up-to-date information on the project. I'm also setting up a GitHub repo. All other observations and ideas I'll share here on the blog.

It's a big, sprawling project. I hope you'll find it interesting.

No comments: