Framework Code Downloads – Having trouble again…

November 7, 2010 Leave a comment

I noticed my code downloads are on the fritz again. Drop me a line if you would like code listed in the articles. I plan to find a better place to store the code this winter.

Thanks in advance for your patience.

Categories: Uncategorized

My NXTCam v3 arrived last week!

September 8, 2010 Leave a comment


I started working on a new set of projects last week.  I have been dreaming about the Mindsensors NXTCam for a very long time and now I finally have one.  I thought I would kick this thread off by outlining some of the more obvious possibilities that are available when your robot is equipped with this FANTASTIC sensor!

I can’t wait to start building and programming.  Thank you Mindsensors!

  • Sorting objects by color
  • Finding a ball or balls and pursue it if it moves
  • Determine distance from a known object like a ball
  • Maintain a certain distance from an object
  • Use colored beacons for navigation around a room
  • Aim a turret at an object and track it side to side and up and down
  • Sequence by object color (Ex. find a red ball, then yellow ball, etc…)
  • Use the NXTCam as a range finder using a laser guide
  • Create a docking station and guide the robot in by “sight”
  • Follow a line, make decisions at markers, make decisions at forks and crossings

Many people have done some really cool things with the NXTCam too…  I will post some of the interesting stuff at a later date.

My first order of business is to try to understand how this sensor works and reviewing and extending a driver to make programming easier.  There is a lot of documentation to look at.  This sensor allows you to customize the firmware as well, but my initial review is that it might be best to leave that to the professionals.  We will see.

Categories: Information Tags: , ,

More fun with Math – Boolean Functions

August 6, 2010 1 comment

This is a quick post about some more math functions I found that might be useful.

I found a reference on the net that defined some boolean functions.  I added these to may math utility libary (just in case) and tested them.


OR, AND & NOT are already implemented in RobotC, but I included them because the math and logic to get the correct answer is kind of cool. 

Let me know what you think.

(I added a couple more boolean functions to the list tonight…

9735 Robotics Discovery Set

August 6, 2010 Leave a comment

9735-Robotics Discovery Set While visiting the grandparents last weekend, I got a pleasant surprise.  It turns out the neighbor found an old Robotics Discovery Set in his storage and decided to donate it to me.  We were talking about robots over a year ago and somehow it clicked for him when cleaning and the set showed up that I might want it.  How cool is that.

My daughter is almost seven, so this is a good starter set for her to try out.  Ok, I think it is cool too.  After getting things working again (the case was loose and the battery kept loosing connection), I found out Lego implemented a pretty cool behavior-based set of tasks for the SCOUT robot.  You “program” the robot by selecting the desired behavior for the motors, touch sensors, and built-in light sensor.  There are many options, and different combinations yield different emergent behaviors from the robot.

I just played with the bug robot in book one, but you can make the robot move around in patterns, explore a room by bouncing off walls,  find light or dark, and other combinations that are cool.  The robot beeps and blips during the process and flashes indicator lights by the ports for forward, reverse, light sensor triggered, and each touch sensor triggered.  Lego should have carried the indicator lights forward with RCX and NXT.  There is also a light on the front that flashes as well.  I assume is is actually doing that for a reason, but I am not sure.

Read more…

Precision Robot Turning – Baby Steps

July 28, 2010 Leave a comment

Have you ever tried searching for something on the Internet and been left with a feeling that you must be the only one out there who does not know how to do something?  I have!  I decided to pursue precision turning with my robot, but tried to find out how to do it.  It sounds simple… but there was very little information out there to help me understand how to do it.  I wanted to be able to make a robot turn 90 degrees, or any other random angle.

Turns out, that turning a robot (with Math) is not too difficult, but also very complicated at the same time.  I will follow up with the theory later, but wanted to post a working program first.  This code allows you to set an angle, radius, and speed to turn a differential drive robot.

Read more…

Behavior-Based Programming vs. Precision Moves

April 13, 2010 1 comment

question Here is an interesting dilemma.  In the behavior-based world, we strive to make our robots responsive to the real world.  They act and react to changing stimulus, solve complex problems, and sometimes surprise us in their ability to succeed.  Here are a couple of tasks I have not been able to accomplish very easily.

  • Move forward two feet
  • Turn 90 degrees

What if you wanted to build a robot that could drive in a square pattern by driving forward two feet, turning 90 degrees and repeating…  Can a behavior be created to do this?

Here is the problem.

Normally, a program has complete control over the motors throughout a maneuver.  With behavior-based systems, each behavior is may or may not have control of the robot for any given timeslice.  Each cycle of the arbitrator is a new look on the world.  As factors change, so too does the robots control.

Anyone out there have any ideas for implementing a way to turn x-degrees or measuring n-ticks of distance accurately?  While we are here; Anyone have any fancy math for calculating a 90-degree turn when not spinning (motors at different speeds)?

I have a couple of ideas I am going to try, so let me know your thoughts.

Fun with Math – Returning plus or minus a Value

April 11, 2010 Leave a comment

Have you ever wanted to add or subtract a number from another at random?  This might come in handy when programming a robot to add randomness to otherwise predictable movement or decision making.  I checked out the web to see what the math world had done to help out.

I found a cool formula:

n = n + 2f(random(1) – 0.5)

Read more…