The following projects were done over the summer of 2008 at Bryn Mawr College. For more information please contact Doug Blank, firstname.lastname@example.org.
Neural Networks and Robot Attention
Kerstin Baer and Priscy Pais
Developmental Robotics is a relatively new approach to artificial intelligence. Instead of programming robots to perform pre-specified tasks, Developmental Robotics aims to equip them with a learning routine that allows them to make sense of their sensomotoric capabilities, discover their environment and perform self-motivated actions. Artificial neural networks have emerged as a promising learning and control mechanism. Modeled after biological neural networks, artificial networks consist of a set of interconnected units that perform calculations on a set of inputs (e.g. the sensor readings of a robot) to get some output that is appropriate for the given situation (e.g. motor commands for the robot). By manipulating the connections between units and adding more units when necessary, a neural network can adapt to new situations and learn more complex behaviors.
When a network-controlled robot is getting familiar with its environment, that is, learns to predict its environment, it has to make decisions where to move next to collect more information. Ideally the robot would pay attention to an object long enough to understand its basic features, but not so long that it forgets everything else around it. In this context we want to explore what it means for a robot to 'pay attention' to something. We intend to build an architecture around the neural network that might serve three purposes: make appropriate abstractions from the input data to make the robot “aware” of what it is paying attention to, guide the actions of the robot to keep it focused on the object of interest, and pre-process the input data to increase the network learning rate.
For more details, see: Neural Networks and Robot Attention
In the last few years, the number of students studying or majoring in computer science has dropped dramatically. Many students see computer science as hard and boring. In response, researchers at Bryn Mawr, Georgia Tech, and Microsoft Research have developed Myro, a program aimed at making computer science accessible and interesting to students through the use of robots. To this end, it enables educators to teach their introductory courses in a programming language that does not require students to worry about every last semi-colon and curly bracket, but still allows them to cover the basic concepts of programming thoroughly enough to allow students to move on to more traditional and sophisticated languages without difficulty. I am helping adapt Myro to work with several programming languages commonly used in introductory courses, as well as creating a new graphical programming language (tentatively named Dinah) that will allow students to design animations, games, and other interactive programs, and to communicate with a robot. This should make it easy for educators in other schools to use Myro in their own classes, and will attract more students to computer science.
For more details, see: Dinah
Robotics is becoming a rapidly growing facet of computer science research. Specifically, research in artificial intelligence (AI) and developmental robotics (the study of programming robots to learn independently) has become increasingly popular with the development of more sophisticated software and hardware. Now, instead of worrying about the costs of a robot or the limitations of current hardware or software, one of the biggest questions posed in this field of research is how one can program a robot to act autonomously (that is, how a robot can be programmed to think for itself, "feel" for itself, and make decisions based on its own motivations).
In our research we will be exploring these concepts through a humanoid robot. We will try programming behaviors for the robot to see how easily it can interact autonomously with its environment (possibly with the use of a camera, IR sensors, light sensors, or touch sensors), and determining what sort of programs allow the robot to learn more about its environment, and what sorts of programs cause the robot to best remember the locations of obstacles or other important objects in the environment. We will also allow the humanoid robot to be simulated in the robotics software Pyro (Python Robotics), so we may test developmental programs for the robot without having to use a physical robot.
For more details, see: Humanoid Robotics
Design and Control of a Dynamic Hexapod
Robots are complex mechanical systems capable of performing various physical and computational tasks normally controlled by humans, a pre-defined program, or a set of rules using artificial intelligence techniques. Robots have a wide range of applications including car production, space exploration, medical surgery, housekeeping, education and entertainment. The goal of my research is to acquire a fundamental knowledge and understanding of the process involved in the engineering of TevBot, the robot I will design and build. TevBot will be a multi-legged, articulated robot with the ability to avoid obstacles and cliffs, take various pictures and recall them, move periodically to specific locations (precision positioning), climb up small stairs, dance, do artwork and play games. Extensive research will be carried out on existing robots in order to understand the electronics, mechanics and the software required to manipulate these devices.
My project will begin with the exploration and modification of the Roomba (a robotic vacuum cleaner) in order to understand its hardware and software infrastructure and to give it new and complex behaviors. Both Myro (the software that controls the scribbler robot used in the introductory Computer Science course) and the software for the scribbler’s Fluke (a chip that provides a bluetooth, sensors and a color camera) will be expanded to control the Roomba. The Roomba’s academic and recreational purposes will then be explored. My research also involves assembling and programming various forms of robots including a humanoid, a hexapod spider and an obstacle detection car using a robot kit. This aspect of my project will give me a great deal of familiarity with the servos (electric motors) that will be used in building TevBot as well as the processor and software I will need to control and program TevBot. The remainder of the research will be devoted to building a prototype for TevBot and programming it as well as developing a graphical user interface that will enable users to easily control TevBot.
My hope is that this research will be used as a framework for a course in Physics and Computer Science that will empower and teach students how to design and build their own robots. I also intend to use this project as a platform for exploring and conducting more research into developmental robotics, a study that involves creating learning methods for robots to give them sophisticated behaviors that have not been directly programmed into them.
For more details, see: Designing, Building and Programming a Hexapod: From King Spider to TevBot