Thesis Project

The thesis project will be a central element in my Universe for the next few months, therefore it deserves a nice description. It's strange that I didn't find enough time to name it, however.

The project is about the lives and interactions of a small population of mobile explorer robots, each one having the supreme goal of conquering patches (Interest Spots) that can be found on the ground, within their environment. Think of them as the explorers of the Old Continent in the look out for new islands, spices and whatnot :)

Now, let's gradually bring in technical details.

Everything revolves around a distributed MultiAgent System built in Jade, where its agents communicate, collaborate and sometimes negotiate in order to accomplish their goals. There are some different types of agents activating in the system, each one having an important unique role:

  • Supervisor is the agent that sparks existence in the system. He will create all the agents along with containers for them to live for the entire time the system runs. This agent will also evaluate and maintain a top with each explorer's achievements.
  • Explorer is the agent that from the first second of its birth and until its last moments in this world has one precise task: to tirelessly be searching for new areas to conquer. In order to succeed it must use information from sensors or, in some cases, other fellow explorers.
  • ComLink is a vital member of the agent population. You can see it as the postman of a community. Let me explain why.
    An explorer agent is responsible of controlling the robot's moves, it's also the one that receives sensory information from the robot body. It's the robot's meta-brain, and it runs on a computer rather than on the robot itself because of the hardware limitations that the tiny robot has. Imagine that your entire ability to judge and plan your moves sits in a computer somehow linked to you instead of sitting right where it should, your brain. Now, who knows what's going to happen in the future, but right now that's how it should be. This doesn't mean that you'd be a complete vegetable, because your basic abilities to move your hand, your leg, your head, to run, to sit, to crawl, etc, they are all deep in your brain and they hardly have anything to do with strategic planning. You don't plan on moving your leg when something sits on it, you don't plan on turning your head away from bright light, you just do them.
    Going back to our ComLink agent, its role is to intermediate the exchange of messages and commands between the Explorer agent and it's explorer body, by optimizing the message to be transferred via a wireless serial link. This creates a tolerance to the technology used to actually send the message, because the Explorer agent doesn't need to know how this is done, but that IT will be done.
  • Vision is vision. Take away the eyes and the body will stop moving. Especially if you're an explorer robot and you share your eyes with the rest of your team.
    This agent integrates a Vision System built in C# that uses my digital camera to detect certain objects' position and properties if requested by an Explorer agent. Normally it will be requested to find the position of a robot's body within the environment or to describe a discovered Interest Spot. This will help the explorer agent realize if it's capable of conquering or if it should ask for help.
    It's important to note that the Camera will be positioned in the center of the environment at a distance above it enough to allow the entire scene to be framed.
    The Vision application allows you to configure the camera, to take test shots remotely and to test the object detection parameters.

Now let me tell you some more about how all this is going to work.

After the system starts, all explorers begin their journey through their wild and unfriendly territory. All they know from the start is that they have to conquer Interest Spots, which they also have an idea of how they look like (color), they know that in the beginning only smaller areas can be conquered BUT as their experience grows so does their ability to conquer.

If at some point an explorer finds an Interest Spot, its sensory system will inform the Explorer agent (the upper conscience layer). The latter will ask the Vision agent for its body's position in the environment and the Interest Spot's properties.

  • If the Explorer agent decides that it's not currently capable of conquering that Interest Spot, it will put aside its personal interest and will broadcast a call-for-assistance message with the current position and Interest Spot properties to all other fellow explorers. If there's an explorer not engaged in a conquering operation that can handle the request, then it will come and provide assistance. The assisting agent will receive bonus experience for its act, and both of them will receive the normal experience amount split in half for conquering the area.
  • If the agent is capable of conquering the Interest Spot without asking for help, then I will do so and after that it will carry on with a new conquest, now more experienced than ever.

Everything about this project is new for me:

  • I started studying the Agent paradigm seriously a year ago
  • Jade has interested me for some time, but I started working with it in the around the beginning of this year
  • Artificial Vision Systems was a very interesting course we had last semester and it is of great help for the project
  • A month ago I was allowed by Canon to use their digital camera SDK to develop the Vision System, which as you saw is very very important. If I had to use a webcam, even the most expensive one couldn't have delivered me the quality that a digital camera can deliver.
  • Some two weeks ago I had my hand on a soldering iron for the first time and that was the time I began soldering my first electronic project which was, from the start, the little ASURO.
  • This week was the first time I programmed a computer with only 16MHz 8bit CPU and 1KB of RAM.

Now all that I have to do is conquer my Interest Spot :)