An Adventure in Engineering Design, Programming, and Pursuit of Robotic Projects: Updated 06/14/2009 |
|
Project log for the Parallax Boe-Bot Kit STATUS - INACTIVE Purpose: An open-ended project intended to complete the projects outlined in Andy Lindsay's Robotic's with the Boe-bot and also pursue some more advanced projects with extra sensors, etc. using the robot as a learning tool. Task List Finish implementation of the Encoders and write improved dead-reckoning navigation routines for it Finish implementation of the Blue-tooth appmod and communicate guidance commands wirelessly to the Boe-bot Finish implementation of the PING and write navigation routines for it (6/8/08 - initial guidance)
Tasks Completed Mounted the EB500 (3/30/08) Mounted the PING with bracked (3/30/08) Mounted the Encoders (3/30/08) Tested the IR navigation (9/16/07) Tested the photovore navigation (8/27/07) Tested the tactile navigation (8/21/07)
Updates Continued some adjustments with the PING late into Tuesday night. The scanning routine was greatly simplified to just scan when the Boe-bot senses something in front of it with the distance setting desired. I also introduced a simple A.I. routine with a counter to prevent the robot from a cycle of getting stuck in a perpendicular problem of backing up and going forward repeatedly. Additionally as the range was lessened for the maneuver, the robot apparently lost some of its sensitivity. The PING's sensor cone is pretty annoying. Apparently the side-lobes of the bistatic return are wider at 10 in. then at 4 in. This introduced problems in finding the 1 in. high wall around the test bed at 4-5 in. This requires me to build an edge around the test bed (I was using some spare wood parts and a piece of foam-board). The foam board seem to be a pretty good insulator that the PING's frequency however... Regardless the thing still wanders like a drunken monkey around the test bed area and still cannot compare to IR detection.
Started taking measurements with the PING sensor and developing scanning routines and navigation algorithms. Thus far it's proven somewhat difficult to have continuous sensing and servo pulsing (possibly a MCU cycle time issue). I have the unit scanning left, center, and right and returning to center for a single scan. At each point a measurement is taken and navigation is updated.
The first video shows a complete failure in memory allocation. I screwed up a variable definition from Nib instead of Byte. Basically this didn't allow a servo pulse command to be sent correctly when the Boe-bot went to turn...
This second video shows a bit better performance, but you can see how much slop there is in the navigation routine. This is one reason why the encoders would prove useful is that you can better control the wheel motion (or at least that's the intent). The robot is not turning at crisp angles or even driving straight. I also appear to be backing up too far when getting certain types of detections. Navigate:
Tuesday, June 3, 2008 Finished wiring up the encoders. The signal for the divider required 10k resistors (a surprising note).
Saturday, May 24, 2008 Added the task lists, updates, and purpose for the project to add more order to the madness.
Sunday, March 30, 2008 Added the Encoder, PING ))) with bracket, and the Bluetooth EB500 module. I also ordered an entire second Boe-bot (the Microsoft Robotics Studio version) with the Smart Sensors package to essentially mimic almost entirely (except the encoders) the functionality of the original Boe-bot. The Boe board is going to be used with the Applied Sensors package previously purchased and for the Beacon localization project while I'll try the other MCU for the 2nd Boe unit.
Pictured below is Red-Leader the integrated product with IR & PING sensors, encoders, and the Bluetooth wireless implementation.
Sunday, September 16, 2007 Today completed the build installing and testing the IR detector sensor pairs (Activities 0-2). The testing regimen included using the IR LEDs and setting up a simple binary feedback system of detection or null (only null returned a 1 - go figure). At any rate, the IR LEDs themselves appear to be functioning well. After some simple tests using code from activities 0, 1, and 2 some basic modifications were found. They included the ability to determine a sensitivity of color as well as range. In Activity 2, after the Field Testing code was in place a basic test for color and distance was proposed. I intend on formalizing this test a bit more during the week to include samples of construction paper of select colors: white, black, red, blue, green, and yellow. The idea is to determine the relative sensitivity in range to the colors using a somewhat uniform surface texture of comparison. The test objects I used tonight included glossy book covers (black) of my Elachi text as well as the red glossy back of my Space Mission Analysis and Design (Wiley and Larson, 3rd Ed.) book and lastly tests with the Andy Lindsay text opened to page 244-245 and showing the white pages with printed text; lastly I also tested my "42" towel which is black. It seems that the red book is detected at greatest range followed by the black towel, and the white text, with the the black glossy textbook cover being the shortest range of detection at about 6". A more scientific study will follow. There may be something that could be benefited from emitting the IR LEDs at different frequencies while staring in the same direction for use in determining color. This is TBD. To note the IrInterferenceSniffer.bs2 is an interesting element for programming in a testing environment. I'll have to remember to do IR Interference tests before interacting with other Boe-bots in the test bed and also if using the IR Beacons for things like Rendezvous and Dock and Follow-the-Leader. Basically the system will need to be able to detect the known source of a signal and classify it as either beacon, self-generated, other-boe, or unknown interference. Monday, August 27, 2007 Today completed the build for the flashlight guided robot including the completion of the debugging process for Bo. The RC circuit was unfortunately compromised by the inadvertent addition of resistors from the whisker circuit. The rebuild of the circuit confirmed that the rat's nest indeed was the issue, so future building of the advanced circuits will probably be attempted with supplemental tiers of breadboard construction.
The capacitors were not an issue as previously hypothesized. I discovered the disparate shapes and somewhat disparate lexicon between the manufacturers really indicated they were both 0.01 micro-Farad (103). The circular and smaller ceramic capacitor is indicated by a F103 descriptor while the more rectangular variant is marked F85 103K. Go figure. The robot itself is now much more responsive to the flash light and the background levels were measured at 400-700 level during testing with brightness with the flashlight ~40. The pulsing behavior was apparently a function of the discharging of the capacitors through the resistors when either the LEDs or whiskers that were more than likely tied to the photoresistors also grounded, prematurely stealing the charged capacitance. The whisker hypothesis would seem likely because the previous levels of the stored capacitance were so low. Adios for now. Wednesday, August 22, 2007 Two experiments occurred today, first was how the cats next door reacted to the Boe-bot in Shadow Guide mode and how well the flashlight would cause for a reaction away to turn away from the light. The cats actually played with the rear guide wheel trying to scratch at it as it wheeled by. They also tried to play with its whiskers. I eventually had to save the Boe-bot from their fate, but the shadow guide mode when bounded by light was a pretty effective guidance device. Problems only arose when the cats were blocking the flashlight with their ears while hovering over Boe. Later, I also began the process for upgrading to a flashlight following Boe-bot. This involved adding an RC circuit into the mix in an already heavily populated breadboard. Through my stubbornness the photoresistor circuit was tested, although readings during the test phase were approximately 1/10th the expected values from the book and the flashlight was much dimmer. The expected values from the RCTIME out command issued were ~ 150 and the values collected were about 15. The values when the flash light was on were 0 when the expected valued were around 20. This seems to indicate that either I picked the wrong capacitor, or something else with my environment is fishy e.g. light levels are much lower than expected. At any rate, the robot program written issues reflex controls towards the light. However, the control pulses are issued at an odd rate with what it seems to be a large pause. I cannot track at this time where the source of the delay in the code was. I initially thought it was because I was using multiple levels of subroutines or because I was activating LEDs causing delays in the program loop, but it does not appear to be the case. I will continue to debug tomorrow. Tuesday, August 21, 2007 Added some pictures of the Chapter 6 build of the Boe-bot with residual Chapter 5 whisker touch sensors. The circuit has been slightly modified to accompany both sets of sensors from the design-to case as well as adding the addition of the LEDs. The green LED is supplementing a piezoelectric buzzer which I found extremely annoying (as it didn't work in the first place). I had another from my Applied Sensors kit, but I boycotted its use in favor of the fun (and silent) LED. The red LEDs indicate when the circuit is closed from the whiskers. This is just a visual indicator that shows A.) how long the program thinks the circuit is closed, as well as B.) which circuit is closed if any. My Shadow Guided Boe-Bot code is below. I modified the default code (Ch 6. p. 204) provided by Parallax basically to add the LEDs as simple indicators of again which photoresistors are being activated. Initially I thought this would prove to be a problem because they're light sensitive, but the LEDs are behind the photoresistors' field of view. This robot will seek out darkness and stay put. My subroutines are modified for my servo calibrations, nominally 850/650 would be used for turns and 750 for idling. These routines are significantly more robust than using the Whisker routines of Chapter 5 to execute full 90 degree turns through a FOR loop command as expected. Further, the reaction time for the sensor loop is much less because of the reduced command overhead from the other subroutines. The reaction time is actually somewhat scary on a flat table top since the robot basically leaps toward the shadow at a fairly impressive speed (top speed for the Boe-Bot is the 850/650 pulsewidth) - so one has to be careful about table edges. '
Robotics with the Boe-Bot ShadowguidedBoeBot.bs2 Sunday, August 19, 2007 Objectives: Complete the Exercises in the Robotics with the Boe-bot kit and Applied Sensors Kits Current Status: Light Sensitive Navigation with Photoresistors I've completed a number of exercises to date before establishing this web-journal. The intent of which is to document some successes |
Links to Projects:
|
|
Copyright 2007, Justin S. McFarland. All Rights Reserved. |