Older blog entries for davee (starting at number 5)

After working out a few bugs (there are always bugs to workout), K1 does a wonderful job of exploring and avoiding objects.

Tonight, I added a servo 'head' to hold a scanning platform and wrote the code to handle the scanning process while K1 explores it's world. The scanning process occures concurrently with other operations via a background timer.

I still need to add code for the targeting sensor and tell it what to do when it sees a target, but it all is coming along quite nicely.

I've decided to build a fire fighting robot out of K1, so I will be looking for a UV sensor in the next day or two to mount on the head. Haven't added the sound board yet either, will save that for later.

23 Jul 2002 (updated 23 Jul 2002 at 18:04 UTC) »

After a few hours of tinkering with the code, Kanati-1 can now negotiate a maze. It doesn't do it well because it does not yet keep track of the world and it's place in it. It would do better if I was not using a random direction when it sees something straight ahead. That's going to take some time just playing with it.

I have the side sensors reacting further out than the center. This lets it react to somthing along side it before reacting to the front sensor.

If anyone has any good behaviors for dealing with obstacle avoidance, I'ld like to talk about.

Added a home page for Kanati project. It currently has one image of Kanati-1. goto Kanati Home to see it.

22 Jul 2002 (updated 23 Jul 2002 at 03:47 UTC) »

Kanati-1 LIVES!

As I expected, I used a CD jewel case for the chassie, mounted the three transducers about 45 degrees apart. May need to move them even farther apart but it never seems to bump in to anything with the avoidance range set to 4 inches.

I'm using a simple avoidance algorithm;

  public static void main() {
  int rc;
  k = new Kanati();     //create the robot object
 //robot code here

rc=k.checkSONAR(); k.moving=true; while (rc == 3){ k.move(); CPU.delay(1000); rc=k.checkSONAR(); } if (scanForTarget()!=0){ fire(); } else { k.avoid(rc); // not an enemy, avoid it }


} // while loop } // main

k is the instantiated kanati class (robot object) where all the real code is at.

The avoid routines determine which sensor detected the obstacle and acts accordingly. If object detected Forward, backup and turn in a random direction. If right or left, turn in the opposite direction.

That's pretty much it so far. I will post some pictures on my website tonight.

Created a Java class for robots based around the Javelin Stamp and Board of Education, both products of Parallax. Kanati-1 is the first product of that class. An experimental test bed, K-1 is just being used to develop the platform. See the Kanati-1 project for a description

sensors and motor working.

Still need to add the sound module, 4 pins, will have to develop a class for it before it goes online.

body will be added tomorrow.

I received my first Javelin Stamp today. Sweet! As a result, I now have a Java class for the Devantech SRF04 Ultrasonic Transducer.

I have a Basic StampII board to handle up to 8, but I just couldn't resist the urge to test the sensor with the Java based Stamp. I guess the next thing would be to I2C enable it. Hmmm.

Share this page