Wednesday, March 27, 2013

Godfrey's Goals


Godfrey will be a challenge to build. Here are my goals for him:
  • Godfrey's primary goal is to pull humans into a relationship with himself. This means he must be able to respond to human emotions and generate emotional cues that humans can understand. He must also pursue independent goals and generally seem like a cognitive agent. A reactive planner similar in design to the CMU Oz project will control Godfrey's overall goals, behaviors and emotional responses. Oz's HAP has the advantage of being pragmatically engineered and very compatible with Godfrey's natural language component (see below). A. Bryan Loyall's thesis Believable Social and Emotional Agents shows how to augment HAP with mechanisms to infer and act on emotional states. Godfrey will use this overall design.
  • Godfrey must understand and speak English. His design will make no attempt to solve the difficult speech recognition or the natural language understanding problems. He will instead use preexisting products and live within their limitations. He will use PocketSphinx to convert speech into text and Flite to convert the response back into audio for human hearing. He will approach human language processing like a chatbot on steroids. Bruce Wilcox's ChatScript is a great example of a modern chatbot design which, with some modification, can handle PocketSphinx's more limited vocabulary, perform weak natural language understanding and generation of responses. ChatScript's topics and rules are very similar and compatible with Oz's plans and goals.
  • Godfrey will have an expressive face with which humans can identify. These eyes will open and close and track people in his room. His face will emote his feelings and in his final form his face and body will be designed to be artistically attractive. His inspirations are Kismet and the many robot's that have followed him.
  • Godfrey should to be physically nimble in a domestic environment. I am defining nimble as being able to start, travel and stop across 15 feet (4.5 meters) in 4-5 seconds without damaging himself or his household. This makes complex demands on motors, propulsion, navigation, rapid decision making and balancing mechanisms. I believe Umashankar Nagarajan's thesis makes a very strong case that Godfrey needs to be a balancing robot if it wants to act realistically in a home environment. Godfrey will not be able to handle stairs or rough terrain.
  • Godfrey should be of a height that humans feel comfortable interacting with and one they will take seriously as an independent agent. I will loosely define that to be 3.5 to 5 feet tall (1 to 1.5 meters). To the best of my knowledge there is no science defining an optimal height. However, my gut tells me if he is too small he will be perceived as a toy or a pet and if he is too large is will be scary and dangerous.
  • Godfrey needs to avoid the uncanny valley. One way to avoid this valley is controlling Godfrey's external appearance. There are several possibilities to explore. The first is to make Godfrey look like a robot. For example Serge in Syfy's Caprica TV series is of the approximate size and shape I am imagining for Godfrey (here is another picture). Another option is to use puppet construction techniques to create an alien from another world (who for some strange reason decided to live in my home). Examples of this approach would be Rygel XVI, Yoda or even like Kermit the Frog. Finally, a good solution might be to blend tech and natural looks like in this Skyrim Dragon Priest Mask.
  • Godfrey should be relatively light so accidents, collisions or loss of balance don't cause too much damage to his home, its occupants or my marriage. I know of no objective way to decide the ideal weight so I am arbitrarily deciding on 15 to 20 lbs (7 to 9 kg).
  • Godfrey will be self-contained. He will be able to go about his business and interact with family members without requiring the use of the Internet to access external data or computational resources. His WiFi will be primarily used to load software, monitor his performance and to send out alerts. Godfrey can optionally use the Internet to lookup reference material. For example, if I were to comment "I am going to London," Godfrey could look London up on the Internet and respond "That's a long trip. How long will it take you to get there?" However if the net is unavailable he might instead say "When do you leave?" My plan is to use Freebase and their REST API for reference queries. This will require some translations between Oz/ChatScript-style knowledge and its Freebase equivalent.
  • Godfrey will be able to manage his power and recharge his batteries without human help. A custom docking station will be built for him to use.
  • Building Godfrey will support the exploration of the open source and for-pay tools to design and build hardware. The technologies to be explored are electronic design, PC board manufacturing, CNC, laser cutting and 3D printing. These technologies have had explosive growth in the last few years and are ripe for exploitation in robot design. One website that has personally inspired me on these opportunities is Michal Zalewski's amazing Guerrilla guide to CNC machining, mold making, and resin casting. It is a new world out there and building Godfrey will give me a chance to experiment with some of it.
  • Godfrey should be simple to build and repair. This means trying to use parts, designs, and software that are reasonably simple and can be stable for long periods of time. I will attempt to use self contained hardware and software components connected by simple protocols and connectors. This is so easy to say and so very difficult to achieve. Maybe I will succeed.
  • Ideally Godfrey that will cost less than $2000 to duplicate. Serious bonus points for a design that can be built under $1000. This is another goal that is simple to say and hard to achieve.

No comments:

Post a Comment