07.14.09
Escape Sequence – A generic approach to getting away
The escape behavior is one of the more important behaviors implemented in my robots. Any time the robot bumps into a wall, there is an opportunity to escape. In response to a trigger (collision), the robot backs up, spins away, and nudges forward to execute the “escape sequence”. I have detailed this sequence in articles about creating the AreaBot robot.
The reason I am blogging about it again, is that I believe the escape sequence is a generic action.
Download Sample Code: EscapeSequence.zip
What do I mean?
07.13.09
AreaRover III – Video
Sorry this video took so long to post. Some time in the past two weeks, my microphone/Windows 7 combination started acting up. The voice was recorded choppy and awful. I sounds like two drivers are competing for control of the microphone processing, but I can’t tell for sure. I guess those are the breaks with release candidate software…
Any way, here is the missing video.
06.30.09
AreaRover III – Another wall following behavior
Background
While I was experimenting with the Lego Ultrasonic (US) sensor for following a wall, I thought I would create a behavior for following a wall using only the front bumper. This serves two purposes.
- As a backup or augmentation to the US wall following.
- As an alternative to the US wall following where only the front bumper is needed to accomplish similar goals.
Download the code: bbAreaRover3.zip
06.28.09
AreaRover II – Better coverage by adding a new behavior
Background
After watching AreaRover move around my arena, and
blogging about its behavior, I came up with some ideas to improve its operation. The best part is I did not change the previous code to make this happen… I added a new behavior on top of the others!
The previous AreaRover bounced off walls and followed walls when the opportunity was presented, but really had issue with inside corners. Because the robot implemented the Lego Ultrasonic sensor mounted to point straight left, it is blind in the front. This is by design and offers the best method for following a wall, but
is not good when the robot follows a wall into a corner. The robot follows the wall into the corner until it collides at the end. At this point, BUMP_ESCAPE takes control and spins the robot out of harms way.
Unfortunately, wall following is stopped, and the robot moves on. In order to better cover the ground inside a corridor with an inside corner, the robot needs to learn to follow the wall better.
Download Code: bbAreaRover2.zip
See the video here: ***COMING SOON***
06.25.09
AreaRover – Adding Wall Following with the Lego Ultrasonic Sensor
Building on our behavior-based programming concepts
I thought I better start building more robots to support
my articles on behavior-based programming. The world loves examples and there are very few in this area, if any for the Mindstorms robots. This robot is a natural progression from the BumperBot. It is called AreaRover (clever names!).
AreaRover’s job is to bounce around a closed area and cover as much ground as possible in the least amount of time. In order to accomplish this task, I started with the BumperBot, and added a Lego Ultrasonic sensor on the left side of the robot facing sideways. I then added a new behavior that triggers if a wall is in range helping the robot to follow walls for a period of time.
Download Program: bbAreaRover.zip
See the Video:
Read the rest of this entry »
06.22.09
BumperBot – A Detailed Behavior Primer
Featuring: BumperBot
RobotC Source code for a behavior-based bumper robot:Download: bbBumperBot.zip
Behaviors – Defined
Behaviors are the way to implement functionality in when using the behavior framework. A behavior represents an action or reaction to events (triggers) and resulting request to control where the robot moves.
Read the rest of this entry »
