Joy W. Kamunyori

DMP 2004 - Metamorphic Robots


My name is Joy Kamunyori, and I am a senior at Vassar College, in Poughkeepsie, NY. Although that's all I'm going to say here, there's plenty more to learn about me. This summer I was privileged to receive a research grant through the Distributed Mentor Program of the Computing Research Association. My mentor is Dr. Jennifer Walter from the Computer Science Department at Vassar College, and we are conducting our research at Texas A&M University in College Station, TX. Dr. Walter and I are conducting research on motion planning algorithms for hexagonal metamorphic robots. She has done a lot of earlier work on this topic, and this summer is a continuation of this work.

What are metamorphic robots?

Metamorphic robotic systems are a subset of self-reconfigurable robotic systems, which are collections of independently controlled, mobile modules, each of which has the ability to adhere to, disconnect from, and move around adjacent modules. Metamorphic robots have the additional properties of consisting of modules that are identical in structure, motion constraints, and computing abilities, and are space filling polygons, such that they can be packed densely together.

Our robotic system moves within a grid made up of hexagonal cells that correspond exactly to the size and shape of the system's modules. The problem at hand is to determine a sequence of module movements in order to change a given initial configuration into a desired goal configuration, with modules remaining connected at all times. In this particular phase of the problem, our objective is to design motion algorithms that will cause modules to move from a straight chain initial configuration to a goal configuration in which several obstacles are embedded, such that the modules will have to envelop the obstacles.

My Research Journal

Week One (May 31-June 5)

I flew into College Station on May 31st, and most of my first week was spent moving into my apartment and settling in. We also did some administrative things, such as getting my VPN and parasol accounts set up, and getting me keys to the computer lab. On June 2nd, I attended the USRG welcome breakfast. Jenny gave me some papers to read to introduce me to metamorphic robotic systems, and for some background on the research that she has done previously.

Week Two (June 6 - June 12)

I spent the week reading the papers Jenny had given me, and discussing them with Jenny so that she could explain anything that I didn't understand. I also started learning HTML, and began designing my website. On Tuesday, I attended the USRG monthly luncheon, and on Thursday I attended a lunch given by the Computer Science Department for the mentors and students in the department.

Week Three (June 13 - June 19)

I finished reading the papers, and begun considering the problem of enveloping multiple obstacles within the goal. I came up with a rough sketch of an algorithm towards the end of the week. This algorithm involves joining all the obstacles together by shortest distance "bridges" and then treating the resulting composite obstacle as a single obstacle with pockets. I also continued working on my website whenever I could.

Week Four (June 20 - June 26)

The week was spent visiting and revisiting the algorithm with Jenny to make it more precise. I also added all the additional procedures necessary for execution of the algorithm. In addition, I began learning LaTex, a text editing program, and typed up the algorithm and its supporting procedures. I also started working on an abstract for my research paper, and typed it up.

Week Five (June 27 - July 3)

We got the algorithm and its supporting procedures to a stage where we were satisfied with them. I finished working on the abstract and typing it up. Towards the end of the week, I began learning Python, which I have never used before, and which we will be using to program our simulator. To learn it, I went through an online tutorial on the language. I then started looking at the existing Python code for the simulator and trying to understand it, because I will be using and expanding some of it for my purposes.

Week Six (July 4 - July 10)

I continued looking at the Python code, and meeting with Jenny and David, the student who wrote the code. Towards the end of the week, I started to write our algorithm's supporting procedures in Python. It took a long time to write this code because I had to keep referring to the existing code, as well as to online Python documentation. On Friday I met with David to look over the code I had written, and he gave me some pointers on how to make it more efficient. On Tuesday, I attended the second USRG monthly luncheon, and on Friday I attended a Computer Science Department Brown Bag lunch, where a talk was given on "Giving a good technical presentation/talk".

Week Seven (July 11 - July 17)

I finished writing the first two supporting procedures, and tested them in the simulation. I was very excited to see that they worked! I then started working on the third supporting procedure, which is to find the distance between two cells in the grid, but I hit a snag due to syntax errors. I finally found and fixed the errors on Saturday, so my distance algorithm ran within the simulation. On Friday, I attended another Brown Bag lunch, where there was a faculty panel to discuss graduate school admissions.

Week Eight (July 18 - July 24)

At the beginning of the week, Jenny and I realized that my original algorithm for finding the distance between two cells in the grid didn't find the correct distance in all cases. We therefore spent the first part of the week trying to come up with a formula that would find the correct distance for all cases. After hitting a wall in this respect, Jenny suggested that I put programming on the back burner for the moment, and work on my technical paper and poster for USRG. On Friday Jenny showed me a tentative algorithm she had thought of for finding the distance between two cells.

Week Nine (July 25 - July 31)

I started the week by expanding Jenny's tentative algorithm for distance to cover some cases that it did not previously take into consideration, and by testing the algorithm. Once the distance algorithm was working, I started working on finding paths between the obstacles of the shortest distance, and on storing these paths so that they can be filled in by modules later in the simulation.

Week Ten (August 1 - August 8)

The week started well, and on Wednesday, I got the simulator working! I was really excited, until I started thinking of ways to break it and was unfortunately successful. It turns out that there are quite a few cases that I hadn't considered in my initial simulation, and I spent the rest of the week trying to find cases that didn't work and then trying to fix them.

Week Eleven (August 9 - August 14)

This was my last week in College Station. I continued debugging the simulator, and found and fixed a couple more problems. On Thursday, I sat for the GRE. Jenny and I have agreed to continue our research back at Vassar during the semester.
If you would like to read more about this research project, a copy of my final report can be found here.

What I learned this summer:

In the course of doing this summer research, I learned several new skills:
- How to program in Python
- To design a website using HTML
- How to use LaTex to write a technical paper