Old Journal
Entries
04/19/2006 - Code to Come
As the project winds down I have been finishing program after program. By later this evening I hope to have several programs available for download. This will include the SDK code, Follow Me code, Stamp code, and other programs I have completed thus far.
04/12/2006 - Follow Me Video
Work has been progressing on the follow me program. A video of the robot spinning in 360's is available here. Towards the end it starts to run over its own cables but it shows what the robot will be possible to do. video is here.
04/06/2006 - More Updates
I finsihed up the binary streaming in the follow me program and in the advanced joystick program which you can find here, pics of what the binary data looks like here.. There is also a video of the program running showing you how fast the data can be dumped over the serial port, which is here. I know there is some big black text, but I could only find evaluation software to record the screen. Also the program runs faster then what is being displayed as I turned teh frame rate down significantly to compress the video for the website.
Yet another update has been done on the robot to upgrade its speed and ease of use. While I haven't figured out a way to scientifically test the speed difference it is great enough that a human, me, can recognize a serious increase in response from the robot. I hope to get a video of it up some time this weekend.
04/02/2006 - Whole bunch
of updates
Finally I do some testing of the DLL to see if it was indeed
slower then going straight to the ComPort as it was suggested it
might be. I wrote a scratch program (available here)
that dumps a frame either by going through the DLL or by going straight
through to the ComPort. The results indicate
that the DLL is actually faster in every test then going through
the ComPort directly in VB. While the test indicates that the DLL
barely beat the DLL, the test did not take into accout that when
the DumpFrame function is called in the dll it still had to send
the command to the dll and then wait for the ComEvent. I couldnt
test just the dump since I did not want to track time in the DLL
itself. Knowing this the DLL becomes even faster then the straight
through approach. I tried two different tests one with compiled
and one with uncompiled source code. In both cases the DLL outperformed
the straight through approach in VB.
I have also been working on the documentation and
have released an updated version of the document here.
I also produced a video showing the CMUCam tracking an object by
controling a servo, which is available here.
Within the next couple of days I hope to have video of the CMUCam
tracking an object by controling the 4W4T robot. To make this application
even easier I have started re-writting the way the PC talks with
teh stamp board. I have implemented hardcoded functions for the
various directions and commands the 4W4T robot will have to accomplish.
Right now I am finishing the work on the protocal for more precise
control of the servos through a PC. The over all goal is of course
to minimize the amout of transfers between robot and PC, which before
was causing significant lag issues.
The first piece of news is that
I had a meeting with Dr. pankratz & Prof. Blahnik. We discussed
a number of ways to try and dump images faster. I eventually contacted
SeatleRobotics to see if any were possible and found out that none
would be possible on the CMUCam. However, on a bright side I did
discover a way to dump the image of what object is being tracked
which comes in binary (8 pixesl = 1 byte). This should update fairly
fast and may actually allow for streaming.
03/26/2006 - More
SDK Documentation and Follow Me Code
I expanded upon the documentation to the SDK with more
sample code and information users will need to work in the envoiroment.
I also started modifing the Follow Me code I had written 3 weeks
ago. Initial tests (without the robot attached) proved very promising.
I also managed to fix the lag issue I was having with the robot.
I found the severe bottleneck was actually in the VB code not the
stamp code. I plan on testing the robot either today or tomorrow
and hopefully will have some videos to post showing the results.
03/25/2006 - Follow Me
I played around with the follow me code today and improved
it significantly from where it was at previously. The robot now
responds much faster (tested with joystick not Follow Me). I also
looked at some of the ranges of numbers I was using to determine
to move or not and made those much more efficient as they were set
to small, which was causing constant movement.
03/23/2006 - SDK Documentation
First version of the SDK documentation can be found here.
(NOTE: It is not anywhere near complete, but provides lots of examples
and information on the SDK)
03/23/2006 - SDK Almost
Done & Code Examples Rolled out
The SDK is almost complete, the only thing left is the
extensive testing that needs to be done to ensure that it works
without crashing. To help with the testing I have been developing
little programs that test and demonstrate how the sdk is used. Right
now I have a test program in VB and C++ that puts on a light show
using the LED tracking light. I also have a program in VB that dumps
a frame and displays it using the dll. Finally there is a C++ program
that has every function in the dll, which i use for testing. I will
be posting pictures and source code soon.
03/20/2006 - SDK Updates
I have finished and refined many of the SDK functions with
only 1 or 2 more to go. After that I'll spend a day cleaning up
the functions and adding some extra comments for future developers.
After that I will start the documentation process for the SDK which
should also be finsied in a couple of days. After that I can start
either the website or finish up the follow me program. Since I do
not want to post unfinised code on the site I took a screenshot
of the testing of packet reading using the DLL. It can be found
here (once the code reaches a state that
it is beyond alpha I will post it for donwload).
03/06/2006 - SDK News
I have written and tested 12 of the SDK functions. They
all work as does the modified com code. The modified com code was
adjusted so that the handle to the port does not have to be passed
with every fuction call. This should allow for much more ease of
use since the user wont have to remeber things like that. There
is a screenshot of the header file here.
Also in the header are some of the constants that are beign used
to make things easier on the user
02/26/2006 - SDK Begins
I started work on the SDK portion of my project. I managed
to get all of Karl's code transformed to the point were i need it.
I also managed to write a coulpe of the CMUcam routines into the
SDK (havent tested yet). Hopefully if everything goes well most
of the features should go in with little hassle.
02/22/2006 - Progress
I met with Dr. Pankratz last Tuesday to update him with
all the progress I had made to date. We then proceeded to discuss
the remaining steps of the project. I was able to lay out my ideas
on the web portion and get his insight on a solution.
This week I also took my first look at Karl's API from last year.
It looks like I will be able to use it with only a few modifications.
This should speed up the SDK development significantly.
Finally, I also met with Prof. Rohm on Tuesday. She gave me a good
Java book which should help me in the development of my web solution.
02/15/2006 - New Projects Started
I was planning on starting the development of the web portion of my project, but that has to wait until I discuss the matter further with Dr. Pankratz. Prof. Rohm and myself came down to two possible ways to implement it and I am waiting for more input before I move forward. In the meantime I have started the CMUcam follow project. This project is to make the CMUcam and robot follow an object or person. The first build which was done tonight uses object area to determine if the CMUcam is to close or to far away, and adjusts the robot accordinly. Also it can turn the robot (using all 4 wheels) either left or right either based on the servo position, or if the servo is disabled it uses the X coordinates to control left and right movements. I have yet to fully test it, as it is simply dumping out text right now, but it looks promising. Finally I posted some new pictures of the programs and frame dumps
02/13/2006 - All Kinds of Stuff
Today I finally got a serial cord and was able to test the CMUcam in parallel with the robot. Everything worked well and some simple tests on using both serial ports at the same time. Also I reworked some of the minor issues I was having and have released a new build of the joystick program (here).
Seeing how that portion of my project is mostly done I have begun development on the web application of the project. While it is not possibly to talk to the serial device on a remote computer I think I have come up with a solution that is easy to implement. Basically the VB program I have already written will server as the server and controller of the serial ports. This will allow for the ports to be locked down in the event of multiple connections (diagram coming soon).
02/10/2006 - Sit down with Pankratz and Blahnik
Today I demoed the program so far. Profs Pankratz and Blahnik got to see the how the CMUcam performs and discuss directions in which my project can go. I will also have a new build of the program up later tonight with a few changes to the COM.input loop as well as the final set of features that will be going into this project. After that work will begin on the SDK portion of the project.
02/09/2006 - Preparing to test Robot and CMUcam for first time
Tonight I finished up my first build of the joystick program. With some help from prof. Blahnik I was able to pound out the last of my buffering issues. Later tonight I hope to mount the CMUcam onto the robot and take her for a test drive before my presentation with Dr. Pankratz & Blahnik tomorrow morning. Program is available for download here (src included).
02/08/2006 - Final Touches on the Joystick Program Done
Tonight I implemented and tested object tracking with the CMUcam. It works fairly well if there is a bid enough distinction between object and background. I also implemented the servo to move the camera to follow an object which it does quite well. The only thing left to do with this program is to check if the raw transfer mode is any faster then the standard dump. Finally I have to paste in the code that controls the vehicle to so both can be done at once.
02/06/2006 - Finishing up the Joystick Program
As of right now almost all functionallity that the CMUcam is inside the joystick. All that remains is to add the color tracking, which will only take a couple of minutes. After that I will merge the joystick program that controls the robot with that of the CMUcam and see what happens. In other news I am still awaiting a reply from the company selling the bluetooth devices.
02/02/2006 - First Images from CMUcam
Today I managed to pull my first image of the CMUcam. I also posted some pics of what the images look like here. Work is also progressing on the VB interface for the CMUcam. Right now it is able to handle com traffic with relative ease,with the exception of some minor buffer issues, and can send and decode most of the basic commands the CMUcam is capable of using.
02/01/2006 - Resume and
Philosophy Statement
Updated the site with my resume (downloadable PDF)
and philosophy statement
02/01/2006 - Proof of Concept
Today I learned that the CMUcam is limited in its ability.
The component of my project that requires the use of streaming to
the web and to the client program will not be possible. Each frame
takes 8-10 seconds just to dump to the PC through a serial port.
This means that is simply not possible to stream. However other
commands will work fine as the robot can internally process 17fps.
Some suggestions to replace the
lost vision our to mount a Logitech camera on the robot for the
sole purpose of streaming vision. Anther option is to place a logitech
cam within the vicinity of the robot which would allow the user
to watch the movement of the robot from a bird's eye view. However, for now I am just going to continue working with
making the other parts of the CMUcam and program work as continuing
discussion on the Streaming part with the other CS profs.
01/29/2006 - Website up
& Robot Code
Website was created with several of the pages being added.
Prof. Blahnik ordered the CMU cam so that should be in some time
next week so I can start to figure it out. In the meantime I have
been refining the joystick code of the 4W4T robot. To see all the
material I started with click here.
01/28/2006 - Attack Startegy
After looking at my initial project description I determed
the best way to solve my problem is to start little and work my
way up. Alont the way I will be making several smaller programs
that do a number of different things. After I finally get a good
handle on how the CMU cam works I will start developing an SDK in
C for it. Finally I will work on the web protion of my project.
So I am dividing it into 3 parts.
- Little programs to show proof of concept and certain features,
there will help me learn about the CMUcam and all its functions
- Development of and SDK in C and full documentation
to support it, this will be based off my work with the smaller programs
- Finally develop a web solution to allow
remote control of the camera