Thursday, July 7, 2016

An old Roomba, an RPi 3, some history, and the birth of an idea

Ok, let's be honest!  

Who has NOT dreamed of building an intelligent, autonomous robot friend/servant?  

If you have had that dream, then you're in the right place!

I'm finally making my dream come true.

Why now?  in my 40s?

- I'm an experienced software developer by day, which will help a lot
- There are finally robots in the used market that can take us part of the way there, without any modifications (Roombas, Neatos, Braava/Mints, RoboMows, Mirras)
- Computing power has gotten cheap, fast, low voltage/current, solid state (Raspberry Pi, Arduino)
- Computing code has become free and easy to get access to (Open Source, GitHub, Web)
- Information and Education has become free and easy to get access to (Instructables, ebooks, web)

What does that bring me?

  • Roomba:  old, works fine, has SCI serial port for controlling in real time.
    • Source: Craigslist: Roomba discovery, $50, came with almost new replacement battery and claim of working perfectly, and dock/charger.  at first I wasn't convinced it worked, but with some minor fixes/updates and reset of charging state/battery, it honestly does work perfectly!  got a 2nd one for a speck more that needs a battery but has the virtual walls, another dock/charger, etc, needed more physical work but works fine now.  just need battery for it.  one for vacuuming, one for robot, or one for replacement parts for robot possibly.
  • Raspberry Pi 3: new, with case, power supply, card, etc from various sources
    • Source: Amazon, case and card from local stores. Gift from my wife (I love her!)
  • SCI to usb cable: custom made, from plans on net, to connect computer to Roomba
    • Source: internet info (lots of it), 8 pin minidin plug for roomba from local electronics parts store, usb-ttl(serial) converter from local craigslist seller of arduino type parts
  • 5v regulator to power RPi off Roomba battery: car usb cell phone charger for lighter socket
    • Source: my car.  had one I hardly use.  Original source, Save On Foods, $6, cheap junk that contains a switching 5v regulator, mini transformer, well put together.  tested other options including a 5v regulator board for this purpose but it wasn't regulated so couldn't deliver the goods despite specs claiming it could.  Pi wouldn't run reliably.  This cheapo car charger works as well as the ac 2Amp psu I was using before.
  • Remote control of Pi to program it without needing dedicated hardware
    • Source: my macbook, my work pc, anything.  the Pi is on internet, has permanent access remotely through freely available interfacing apps/software/tools.  Microsoft remote desktop is used on laptop to control the pi.  works great. Graphical Raspbian (debian for pi) gui is easy to use, or you could go low level with putty if you prefer.
  • Code to run the Roomba from the RPi
    • Source: open source (pyrobot2.py library for python), and my own code file which includes pyrobot2 and actually handles the control logic and main loop.  When I get a nice short demo script prepared with comments I will post it here.
Result of this?  it cost me, personally (due to gifts etc), $50 for roomba, $4.50 for mini din connector, $4 for usb/ttl converter, $6 for case for pi.  Rest of it I had lying around or were gifts.



I mentioned the "Birth of an Idea" in the title of this blog post....  Well here it is.   

What if I...
  • Can make a robot that knows it's way around my house and can go to any specific room on command?
  • Can make that robot respond to voice control?
  • Can make that robot respond verbally to us?
  • Can make that robot carry things?  Snacks, drinks?  Garbage?
  • Can make that robot automatically charge itself and keep itself charged forever?
  • Can make that robot perform scheduled tasks that I don't like to do or forget to do?
  • Can make that robot have a personality and verbal interaction good enough to converse with?
  • Can make that robot answer the phone, take messages, let us know who called?
  • Can identify who is facing it and talking to it?
  • Can answer the door (verbally only with door closed, for safety, to find out who it is, who they want to see, and then confirm with resident if they want to answer door?)
  • Can take photos and video of a moment on demand while focusing on the action, then uploading to cloud?
  • Teach family members answers from internet when asked?
What if?  Is any of that possible?  Do YOU think it is possible?

I THINK IT IS POSSIBLE.

Some of it I have experimented with enough to know that it is possible.  Other things I have tried and partially failed, previously.

With this series of blog posts, I intend to track the progress of my robotic project(s) to see how far I can get through these types of ideas.

This may take a while....

No comments:

Post a Comment