Table of Contents

BrmRat

This is an extension of BrmBot Turing. We would like to equip the Roomba vacuum cleaner with rat-in-a-box and allow the rat to control the Roomba's movements. We aim to setup and execute a scientifically plausible experiment on whether a rat can learn the abstract concepts required to control a vehicle such as Roomba.

We can change the licenses if anyone has problems with it.

Precautionary note: This is a cognitive, non-invasive experiment that will not harm the rat at all - after the experiment, it will continue living long calm life. We love rats! And we believe something so fun and interesting as such an experiment is a great thing to happen to such an immensely curious animal as a rat is.

Status

We have most of the technical setup ready. However, it turned out that to carry out the experiment successfully would require several learning sessions per day, every day, which is something we unfortunately simply do not have time for. If anyone who could commit to that could help, we could get the experiment going in few days, but until then, we have to put this project on hold.

Technical Setup

The details of Roomba are easily available, its control interface is described at BrmBot Turing.
An important thing to remember is that Roomba cannot move in any direction at any moment, instead it can be moving only the way it is headed and/or turn in a given angle. Thus, the rat cannot simply point in the direction it wants to go, it needs to decompose the route to turning actions.

The interface between rat and Roomba will be an Arduino and three sensitive push sensors. (In the future iterations, nose sensors could replace them.) The rat will be enclosed in a plastic box, having these three sensors accessible. They control the three available actions: left, forward and right.

The rat needs to receive rewards (tiny food pellets). So far, we do not have the mechanism and pellets will need to be administered personally - this means that the person will be part of the experiment!

It would be nice to also equip the arduino with some sensor that could be used to track and record the trajectory; otherwise, only approximate information from Roomba's odometry can be used for that.

Experiment

Considerations

We need to achieve two goals: Make the rat want to go to some specific
place in the room, and teach it how to control the vehicle to achieve that.

Another thing to consider that in the first iteration, human will administer
the pellets (always standing at the target spot). A human is very intensive
smell source. Will it interfere with the experiment? Could multiple humans
alternate in the experiments or does it have to be always a single one?

Setup

Mrnous: 13 months (kind of control subject or such, likely will not participate at all)

Arena:

3x4m empty room at CAS Ladvi?

4x4m room at Letnany (would have to be emptied and is known by the rats already)

Source:

Human with stash of food pellets

Experiment:

First stage: Device(Rat) is at the source, receiving pellets.

Second stage: Device(Rat) is moving through the source, receiving pellets only at the source.

Third stage: Device(Rat) is moving forward, changing directions based on Rat input. Receiving pellets only at the source.

Fourth stage: Device(Rat) is standing, moving forward only based on Rat-generated impulse.

This is for the first stage, likely Algernon being used. If things
will progress well, in second stage for Yossarian we would like to
have automated pellet administrator and nose sensors instead of buttons.

Goal

The goal of the experiment is to find out whether a rat can learn to reach a destination by executing abstract action, and how easily.

We will consider a rat mastering step #3 a success already, though there's probably not a long way to #4. We will measure the total time spent learning and the final average time (and trajectory length?) to reach the target from a random position.

Roadmap

We have two young rats, if we are to try it out, we need to hurry *a lot*. This is the plan:

[DONE] Get a suitable cage.

[DONE] Build a cage holder for the Roomba.

[DONE] Instead of the Wifi router, hook up the Roomba on a battery-powered Arduino.

Is trivial and works beautifully, including power. 19200baud mode works nice that is, the normal-speed mode behaves very strange.

[DONE] Get suitable buttons (should be pretty large and very sensitive - ideally, for stepping on).

We have reasonably sensitive buttons, and experimenting with slabs on them.

Hacking Point

All parts are at Letnany, and we have some (limited) space to hack there. Anyone is welcome to visit! Please write a short note to the mailing list if you are interested and we will arrange some hacking sessions.

References, Thanks

Feedback of these people was invaluable so far: Cyril Brom, Frantisek Susta, Iveta Fajnerova, Tereza Nekovarova.