Posts Tagged ‘framework’

Behavior-based Framework Code–Download

December 23, 2010 2 comments

I am in the process of updating the framework to 3.0, but in the mean-time, here is the latest production version.

RobotC Behavior-Based Framework for Autonomous Robots 2.2

Other links on the site have not been corrected yet.  Sorry for the inconvenience.

Some of the features for 3.0 include:

  • Robot behaviors collection in one place with a core set of methods to operation on them.
    • Adding behaviors is easier now.  Just update the Behaviors list and it will be automatically initialized in the collection.
  • The arbitrator is now a class which means you can deploy more than one.  This might be useful for a robot that moves and has an arm that needs arbitration.
    • Behaviors can be assigned to an arbitrator (or not) from the robot’s behavior pool.
    • The drive module was extracted from the original arbitrator so arbitrators can be used for anything. – The 2 drive parameters were made generic in the behavior class to support this as well.

— More to come.


Behavior-Based Robot Framework 3.0

April 11, 2010 1 comment

I released a new version of my behavior-based robot framework today.  It includes inhibit and enable functionality.  Let me know what you think.

Download it here: Behavior-Based Robot Framework 3.0

I included a sample robot that extends the basic CRUISE robot by adding a new behavior SPIN that periodically inhibits CRUISE and takes control. 

Read more…

Collecting my behavior-based RobotC code in one place

July 1, 2009 1 comment

 about-48x48Currently, All code attached to the robot articles and is self-contained (the framework, behaviors, sensor drivers, etc… in one zip file) .  I think this makes the most sense for each robot so people can download all they need in one shot, but I wonder if I should create a pool of code that accumulates the latest versions of the framework and each behavior I created so people can download one or more files as samples to build upon or create their own arrangement.  What do you think?

The tricky part of putting each file online is the framework is being changed as I go, so keeping everything in sync may be a chore.

For instance, this week I made a change to the timer macros that allow a programmer to create and name multiple timers within a behavior.  That means previous code will not function (if you over-wrote the framework file) until you update behaviors to name the timer in the following functions.

CreateTimer(); ---> CreateTimer(timerName);
StartTimer(); ---> StartTimer(timerName);
TimesUp(time); ---> TimesUp (timerName, expirationTime);