Don's Robotics Code Development Page
Software development



Posted Tuesday, January 27, 2009 9:21 PM:
Using the provided software examples Jason and RoboticsConnection have so kindly provided will have anyone up and running in no time. I have some rusty 'C' history and the Serializer examples made it much easier to begin with 'C#'. My test application utilizes the sensors and servo examples copied from the Serializer Library Documentation and slightly adjusted to fit in a simple Visual C# 2005 (FREE) windows form. I studied the slider and progress bar in C# for my app.
digi XBee Wireless to serial module

Posted Wednesday, February 18, 2009 9:47 PM:
I have been tweaking my test application. Over the weekend I added a serial port connect / disconnect though I like Wingers (a Roboticsconnection.com forum menber) serial connection better. I may borrow it and add to it as I don't like hard coding in things like ports and their setup info. Added graphic displays for ranges. My distance sensors are in inches within their own ranges. Battery voltage is in volts DC. ' Home P/T' centers the Pan/Tilt servo's facing forward and upright. 'Disable P/T' is for conserving power. Once a servo has been sent a value it stays loaded. For this application where there is no significant weight it is ok to disable them when not needed to re-aim.
It is getting time to add some movement functionality but I am not too excited about basic object avoidance where the bot wanders around until out of power or I get bored and stop it. However, that being said, I still must muddle through some object avoidance as it is a necessity for the robots free roaming.


Posted Sunday, April 19, 2009 6:09 PM:
This weekend I got some very simplistic navigation code together. It is made up mostly from bits and pieces of the Roboticsconnection libraries. It is of course tuned for my TracksBot with some of my own coding. It uses two front Sharp GP2D12 for leftIr and rightIr and a MaxEZ3 for front, rearIr is handled by a Sharp GP2D120. These Sharp Infrared distance meauring devices are excellent for my applications. Here is a image of the control running.

It constantly gets refined and I make available the latest version. In testing it did get trapped while running forward with too much clutter in its path. This is more a problem with my sensor placement or lack of more coverage. I used the 'space' bar to stop Autonomous mode where the screen is above. 'Esc' would exit program.
The navigate subroutine or Methods in C# talk was taken from the MF library 'Navigation'. There are probably more efficient ways to do what I have and I will be happy for anyone to show me their versions or suggestions. It defaults to 'COM1' baud:19200, 8n1.

Posted Sunday April 26, 2009 12:40 PM:
Having done more refinements on the Console application in the autonomous portion, I am now up to an estimated 70% self navigation success. Some tests of my obstacle course offer 100%. TracksBot travels about 50 feet round trip in a J shaped course avoiding objects along the way, reaches a dead end (front door and staircase), manuvers a turnaround and returns to the beginning. All this is being done with only the Tri-track, Serializer WL with XBee, sensors and battery pack making up TracksBot. My Sony laptop is recieving sensor data from and sending navigation data back to TracksBot. This self navigation (autonomous) mode gives TracksBot a more lifelike persona.

Posted Wednesday, June 02, 2010 9:00 PM:
It's been a while since I made an update. Most recently i have been working on my C# TracksBot testing application. I added a Sharp GP2Y0A02YK IR sensor to my Pan/Tilt assembly. This application has a radar like scan feature that pans with the Maxbotix Ez3 or Sharp GP20A02YK to record data for graphing for future navigation use. A bonus feature of this app is that it locates the nearest objects front center and reports that direction relative to TracksBot's heading. In the image the Pan IR is obviously the GP20A02YK sensor. In this sample I am scanning with the Sonar. I still need to modify the code to switch between the two sensors. With the IR's narrow beam I hope for better accuracy in TracksBot's autonomous navigation. I changed my power indicator to a continous bar which changed its accuracy. I'll be tweaking on that.

As for TracksBot's "brain", how is this coming along, you ask? Well it has been slower than watching grass grow. I chose the dev board by beagleboard.org as my first brains option. This is a great little board with a omap3530 processor that runs up to 600mHz on my revC2 version. Shortly in this third qtr of 2010 they are releasing a Beagleboard XM that runs at 1Ghz. The big benefit of my BB is that it runs on 2 watts at 5vDc.
I have worked with both Gnome http://www.sakoman.com/ and the Angstrom http://www.angstrom-distribution.org/ versions of the OS. Ubuntu is available as well. While I develop code in the GUI versions of the two file systems I will use a console only fs for TracksBot. These are both Linux variants. I have spent most effort in robotic visual navigation. There are webcam speed limitations of my current bot brain. I am considering a pair of the newer XM model for stereo vision as they have an onboard special camera interface. This should make image acquisition much faster.


Program code for the console manual and autonomous navigation version:
TracksBot Navigation

Back to Don's Robot home.

© , 2009 -2030

Created:4/25/2009, last edit 04/01/2018 by Don Lewis