Fixed some comments in linefollowing.c
added highways.h to the traffic_navigation.h file, made highways.c/h actually work for merging left. changed main.c to run the new highways.c code.
Worked on highways and object avoidance and now uses doDrive and not lineFollow
Cleaned up analog.c file. Removed the interrupt handler code and removed the "start analog loop" code from init function.
adding traffic_navigation.h
Uploaded traffic_navigation.h
Added code for pinging in intersections, but it currently doesn't work so its commented out. Intersections should work. Unfortunately some of Alex's doxygen code might be gone. Sorry.
GARS, source files aren't supposed to be executable. (now my ls output has the right colors!)
fixed priya's bugs, left her questionable sytlistic choices
see comments for validTurns.h
this is the actual code for the function validateTurn that takes a barcodeand returns an integer that corresponds to a valid turn.
header file for the function called when entering an intersection thatdetermines whether or not a turn is valid based on the intersection typeand position of the robot. Currently uses random number generators (i.e. rangefinders) to determine intersection type, position, and turn type.
Added comments (doxygen style) to linefollow and linedrive.
Completed adding ping capabilities for intersections. Code compiles, but untested on robots. Bots will ping each other in an intersection, and adapt if a bot disappears from the queue. Can only accept 1 robot disappearing at a time, unless vanishing robots aren't adjacent in the queue.
killed analog loop
Added function to reply to pings, and come calls to ping robots in the queue. Won't yet do anything to check if a bot disappeared, but it will compile.
removed old code
Added code to make it demo that the queue works. Mostly orbs and buttons, but some variables changed. Also started work on wireless reliability.
Updated line following code from line following project
minor bug fix, 2nd attempt
minor bug fix
lineFollow now supports merge. line drive is UNTESTED and has NO COMMENTS, but will provide higher level driving control
improved turning
Added turning
Fixed the #include so it can find the linefollow header. This should be fixed so it can find the .h file in the proper directory. Also added lineFollow.c and lineFollow.h to this directory so main can find them. They will not be updated when the real copies update.
Updated linefollowing/barcode code.Makefile is configured to OSX to annoy Dan.
Added beginning of wireless protocol for traffic navigation, and added code for handling intersections, with the exception of that code that involves navigating the intersection (so just the code that deals with wireless, the intersection queue (as I see it), and deciding when to go).
Added the traffic_navigation directory to projects in trunk, and inserted my preliminary main function. As of now, it relies on the linefollowing code in the other project directory.
Some barcode code
Added line following
implemented bad line following, which dan will make magical.
Working code that outputs orbs for the darker side
Updated unit tests (correctly this time)
update the ir unit test
Inserted linefollowing code into main.cUpdated test_ir unit test
Copied template to linefollowing directory
Removed the linefollowing folder
Accidently added linefollowing folder in /projects
Removed the _ from the function head in test_lights.c so all unit tests compile.
Unittests: Added test_ir.c to test new IR receivers for line following, and modified main.c to only use testir.
Added Butterworth filtering code.
update to test cases in trunk
Added diagnostic server stuff.
Small changes.. I definitely wouldn't use this for anything yet.
Added some test files for fixed point math.
Something definitely broke in cosine when I changed to smaller tables (which shouldn't have sacrificed any accuracy). Need to investigate...
Implementation of exponential. Not tested, don't even know if it works at all.
Cut the trig table sizes in 4 w/ symmetry, etc.
Lazy implementations of sine and tangent (that justuse cosine indirectly).
Addressed edge cases.
Needs EXTENSIVE testing to get a good grip on error bounds.
Clarified description of the usrBOMvals variable for the bom_get_vector() funcions.
Initial pass at a 32-bit fixed point library.
- Generated cosine / sine tables, put them in PROGMEM
- Wrote initial quadratic interpolation cosine function. ... not safe to use yet, but it seems to work for non-edge cases. Need to write a better way to test it.
Working scheduler.
Booyakasha.
svn is being wonky...
Changes to the scheduler, still doesn't work.avr-gcc has its own convention for saving stateon entry and exit that's the same every time, soI lean on this now to restore the context.
I think that it's very close, my guess is that when new tasks are launched, RETI is ...
Updated all makefiles. You may need to update the port settings to get your project to program the robots again.
Removed old rangefinder folder in trunk/projects. This folder has been moved to its own branch.
Updated IR rangefinder lookup table. Now reports in millimeters with an accuracy of +-10mm.
Updated rangefinder.h with new MIN_ADC and MAX_ADC values
Broke build.
Fixes..
Defaults to main, Creates launch stacks (just realized this is sort of backwards), Returns to tasks that are already running.
I gave the scheduler a crack based on avrOS and the code from 18348 that I think caused John to add these skeleton files.
Very very basic preemptive task scheduling that runs through the list of tasks, checks if they are ready to run based on a timer period...
Changed Push-Pull to display BOM histogram as well as net IR BOM vector. Changed BOM Tracker to print an x,y pair separated by a comma so the data can be saved and read in by MATLAB for analysis.
Edited BOM Tracker project Makefile to make correctly. Removed old test file for net IR BOM vector from behaviors folder. Cleaning up Push-Pull behavior to remove code which was moved into BOM library.
Renamed old file used to test net BOM IR vector calculations to new BOM tracker file.
Copying over files originally used to test net BOM IR vector calculations. They will now be used to try tracking the location of one robot in 2D space.
Created project directory to investigate using the BOMs to track robots in 2D space.
Merged new BOM vector functions into the trunk and did a "make dist" to recompile the library. Also brought over C file used to test new BOM function behavior.
Merged new function to print BOM intensity histogram into the trunk.
Reverted "libdragonfly" folder back to version before Init Checking was implemented and did "make dist" to recompile the library. BOM LEDs now shine correctly.
Moving behaviors from the "Projects" directory into the appropriate "Behaviors" directory.
Making file naming consistent (use '_' to separate words, not camel hump).
Set up scheduler.c/.h files with headers comments.
Collecting necessary files to begin developing timer-based analog scheduling.
test of consolidating makefile
linearize_distance() uses new LUT mapped for (4-30cm) rangefinders. Accuracy +/- 10mm. Need more testing to increase accuracy -- should be able to get +/- 5mm.
another RAM check update
updating RAM check to work with linux
another modification to the RAM check
Tried to get it to work to no avail. Various small changes.
updated checksize in makefile
ref seems to work if everyone behaves
started on the ref bot, added some error checking to the testbenchsetting the channel doesnt seem to work, so everyone will have to use C
Added RAM size check to makefile for unit tests
Started work on reference bot
forgot to add test_initx.c
moved dragonfly definitions to separate header file
updated all the library code to have sensible _init behavior.Almost all of the library components have a global variable which gets set after init and the functions inside will fail with an error code if init has not been called. Also, the init functions themselves check this variable and will bail out without doing any damage if that init has already been called
put lcd and rangefinder lookup tables into program spaceremoved TODO inline comments from wireless library
Fixed tabbing/spacing issue
fixed some testbench bugs, added command line argument to specify wireless channel and more helpful output to the tester
update of includes in library, removed unnecessary calls to stdlib.h
added wait for keypress after each test
fixed testbench, now it works!also fixed hunter prey reference to allow packet type of 42, but there is still a bug in the reference WRT the latest spec because it waits indefinitely for an ACK
Removed hunter_prey.c from the testbecnh directory so it wouldn't try to compile for the computer
Bug fix with new BOM code
1. Alpha code to trigger the new wireless bootloader from the user program. Not tested Includes subroutine in the XBee library to reset the XBee's settings
2. New subroutine in the BOM library to more accurately estimate the position of the max reading using weighted average of the readings instead of max reading....
Added fflush(stdout)'s
Testbench compiles now
Changed include of wireless.h to relative path to fix testbench
Changed wireless include from automatic to relative path name.
Finished writing testbench for checkpoint 1.Note: This does not compile yet due to our incompetence.