Braitenberg Vehicles || Kennedy Cambra-Cho

In this lab we constructed a replica of Braitenberg’s attractive and repulsive vehicles. Using the behavior of prowling cats and fish schools as inspiration we created a system where bot A runs away from bot B.

Introduction

I would like to build a mobile that behaves similarly to the Braitenberg Creatures, Attractive and Repulsive Robots; however, instead of light I would like the leading bot (or the attractive bot as Resnick labels it) to use radio waves to attract followers. This concept could be applied to water, land, or air vehicles where collective, synchronous movement must be achieved. A “fictional science” example of this could be autonomous, off-planet settlement construction. In order for humans to successfully create settlements, we may need to have shelters pre-prepared before any human even arrives. This can be achieved by having autonomous vehicles transporting construction materials to a suitable site and having them assembled.

Following  Maurizio Porfiri’s example of fish, these autonomous vehicles could act similarly to a school of fish. With one machine working as the leader, the swarm could them follow and conduct synchronous movements.

Materials

2 Kittenbots

Make Code https://makecode.microbit.org/#

Procedure

My partner, Diana Xu, and I chose to create Braitenberg’s Attractive and Repulsive robots. We split our tasks into two parts with two seperate goals. First, we had to determine how the vehicles would communicate. Next, we had to develop a system where both vehicles could know when to stop and resume? First, we asked how will the Attractive vehicle know when the Repulsive vehicle is incoming? To do this we used the light sensor on the attractive vehicle. By turning the microbit around we were able to get a reading from the trailing bot.

Communicate: Light Sensor + Radio Signal

Avoid: Ultrasonic Sensor

In order to communicate when bot B should resume following bot A, bot A sends a radio signal when it no longer detects the light. Bot A moves forward when it detects the light signal above the threshold usings its light sensor. Both bot A and bot B use their ultrasonic sensors to avoid obstacles in front.

Video #1 

Attractive & Repulsive Vehicles

Successful sending of signal to initiate movement 

Video #2

Fail avoidance 

Video #3 

Further testing signal & gaging range 

Video #4

Success testing of signal send, avoid and chase 

Video #5 

Success test + sweep ultra sonic sensor 

Reflection

If given more time I would like to improve on the orientation of each vehicle. This could be achieved using the line follower mechanism; this would create a controlled testing space for each bot. Using this function we could have bot A lead bot B along the course.

Something we did not achieve is the speed mentioned by Hogg. It is noted that the Attractive vehicle is “a very quick vehicle” while the Repulsive lags behind at a slower pace (Hogg 6). With the D/C motors on kittenbot it was a little difficult finding the suitable range for the two bot’s speed. The chasing vehicle should have been slower however, once the speed was reduced significantly the motors would stall because the vehicle would not have enough propulsion.

Additionally, it is noted that the vehicles are supposed to be set down in a line and simply follow one after the other. This was very hard to achieve with the uncalibrated wheels and the bot’s tendency to veer off in either direction.

As we continued to experiment with our pair of vehicles, we often compared them to Tom and Jerry, the cat and mouse duo that would endlessly chase each other around. It would be interesting to see how these behaviors could be applied to a set of bots that have a larger range of mobility. This way the two bots could actually chase each other around a wide range of terrain. This would eliminate the need for a controlled test space.

Resources:

https://codewith.mu/en/tutorials/1.0/python

https://github.com/magopian/microbit-fun

https://microbit-micropython.readthedocs.io/en/latest/compass.html

http://kittenbot.cc/products/robotbit

https://github.com/KittenBot/kittenbot-docs-en/blob/master/mainboards/01Robotbit.md

https://python.microbit.org/v/1.1

Leave a Reply