Introducing MARVIN

Gene Foxwell
4 min readMay 17, 2018

--

Gazebo Simulation of MARVIN

A short but brief introduction should suffice. The purpose of this article (and any I remember to publish after it) is to document my work on MARVIN — a Robotic prototype I have been developing. Most of the basic theory and techniques I will be using are based on my experience in Udacity’s Robotics Software Engineering program which I completed a week or so before starting this article.

Why blog about the experience? Why not just do the work? There is a YouTube video put out by Microsoft Research that covers my motivation here ( https://www.youtube.com/watch?v=1AYxMbYZQ1Y ) — essentially I am using this blog as a “forcing function”. It forces me to document my work (so I don’t forget it) and helps keep me focused on the task I have set for myself.

I am not at this point starting from scratch, I’ve already done a lot of “legwork” for the robot at this point and obtained most of the materials I will need to build the physical prototype. I will start by documenting a high level overview of how this will work, and dive into the details over the coming weeks as I have time and or energy.

My plan for the next few articles are as follows:

  1. Document the Features I want MARVIN to have. Many of these are already working in ROS’ Gazebo simulator.
  2. Document my Hardware choices (as of this time).
  3. Overview the various modules that make up MARVIN’s software.
  4. Details of each module.

Source code for my work is on github. https://github.com/streklin/home_services_experimental

Features

It is my goal to allow MARVIN to perform the following functions:

  1. MARVIN should be able to map its environment autonomously. This will be useful for navigation purposes, as well as the map itself having value in many applications. Maps are generated using the RTAB Maps package in ROS. Autonomous exploration will be provided by a custom ROS Node implementing a frontier based mapping approach.
  2. It should be able to communicate with the User in natural language ( to a degree ). A user should be able to ask MARVIN to go to and come back from certain places, activate its various functions, and even provide MARVIN with names for its current locations either via a ChatBot like interface, or via Voice Command. For the version as it exists as of this writing this is being done via the Amazon LEX service.
  3. It should have a surface that will allow it to carry objects from location to location. This is a design concern that will be need to be achieved via its construction. As I have not completed the construction of the physical robot I am not 100% certain how this will be achieved yet beyond having a table like space available on the robots top platform.
  4. It should function as a Telepresence device.
  5. It should have a Mobile / Desktop UX that can be used by the end user to control the robot either remotely (for example when in use as a Telepresence device) or locally when Voice or Text based commands would be undesirable or inefficient. This UX as it currently stands is build with a React FE connected to a nodejs backend.
Current React FE interacting with Gazebo Simulation

Why?

Thus far I have been concerned with the how, but the why should also be covered. MARVIN is being designed and built for three purposes:

  1. As a potential base product that I can sell to people — especially those how have disabilities that would make carrying things around the house difficult or who might benefit from a telepresence device (or both!). MARVIN’s mapping capabilities may also have commercial or hobbyiest use for some potential customers.
  2. As a kind of living portfolio of my work. MARVIN represents me trying to leverage all the skills I’ve learned both from Udacity’s Nano-degree and from my years of experience as a Software Developer. Its a big project, and a I hope a great way to show off my skills.
  3. As a way to learn — not only does MARVIN let me show off what I already know, Robotics is an exciting field that lets me delve into subjects I never would have thought to explore otherwise. As an impetus to discover new subjects and exercise my creative juices even the simulated version of MARVIN that now exists has been invaluable.
  4. Finally, and perhaps most importantly, because its FUN, and I enjoy doing it.

Continued on next article …

--

--

Gene Foxwell

Experienced Software Developer interested in Robotics, Artificial Intelligence, and UX