More modifications to circle.c
Merged circle code and added comments
update to test cases in trunk
New version of cicle_spacing. (It works now...). Before merging with circle.
This code changed the way that the Edges move toward the Center bot, I stopped using Han Jongs methods and added the methods correctTurn, correctApproach is still not functional, also I changed the color skeem for the orbs, going to center is still buggy.
I think this is John's code
Updated counting robots to work for circle formation. Movement is problematic.
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...
Added rangefinders directory to tools.
Added new software for basic analysis of IR data to be used with the IRcycle.c tool. Native Windows build only for the time being.
Getting versions of circle.c in sync
Added comments and minor changes to circle.c
Removing the old circle-circle2 versions of the code (2)
Removing the old circle-circle2 versions of the code
removed .a library files from the repository. These will be automatically generated by the Makefile now
Included working functionality for Beacon to get acks from each robot.
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.
Tried to use bom_get_vector instead of bom_get_max.It works for the master (still need works), not for the slave (still need to figure out why)
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 ...
working version of wednesday 18 nov
Cleaning up ir_branch to Make correctly.
Fixed beacon robot wireless and working on Edge robot wireless
Fixing tools to Make correctly in Trunk. Reorganizing ir_branch to Make correctly.
changes of wednesday 18 nov
Updated all makefiles. You may need to update the port settings to get your project to program the robots again.
Fixed Makefile for circle_spacing behavior. Now links to the repository library.
Submitting circle spacing code. Will evenly place the robot on the circle.
Adding folder for circle spacing code. Behavior should attempt to space robots equally on a given radius of a circle around a central robot.
Circle Formation: added wireless and updated
Removed old rangefinder folder in trunk/projects. This folder has been moved to its own branch.
Converted Circle formation to a state machine
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.
Recompiled library to incorporate new BOM histogram print function. Push-Pull behavior currently prints the BOM intensity histogram and the resultant vector over USB.
Merged new function to print BOM intensity histogram into the trunk.
Cleaning up folders added for demonstration purposes.
Added comments to circle formation code
Made changes to newfile.c
Added newfile changed main.c in james dummy folder
Added danshope
Changed main.c in james dummy folder
Added dummy james folder
Updated circle formation behavior
Updated BOM Vector Component Table calculator to round towards 0 instead of rounding towards -infinity. This makes vector components symmetric around 0 and within error bound calculations.
Remove template "main.c" file. Appropriate Circle behavior code can be found in "circle.c" file.
Edited BOM Vector Component Tables with values which will gaurantee that worst case net vector sum will not overflow an integer data type (16 bits). Also changed Makefile to have TARGET=push_pull. Also added functionality to MATLAB script so that it will automatically calculate the BOM Vector ...
Renamed Push-Pull behavior code file to "push_pull.c"
Implementing function to calculate get_bom_vector() function. Added MATLAB script to assist in calculating the scalar value used to scale up the BOM unit vectors such that the worst case sum will not overflow an int data type.
Cleaned up the Circle behavior folder in the "formation_control" folder. Now compiles correctly with the current version of the repository library.
Making bom_get_vector() function which should eventually be placed into the library.
Added folder for basic Circle formation.Also included is the beacon robot code.
Could use some cleaning as it uses the lab 2 template as a base.
What it does: very basic Circle formation without much error checking.
Updated comments to correctly reflect the meaning of the x and y coordinates.
Progress on Push-Pull. Added a divide-by-zero check. Also fixed an error (added code to clear accumulators each time through the loop).
Wrote Push-Pull behavior to print the net BOM intensity vector over serial.
Updated Hunter-Prey implementation. Motors didn't turn off during wait state. Fixed now.
Commented the template file and my implementation of Hunter-Prey to make the code easier to follow.
Creating "template" to use as a starting point for developing new behaviors.
Cleaning up the template folder for behaviors.
Reverted "libdragonfly" folder back to version before Init Checking was implemented and did "make dist" to recompile the library. BOM LEDs now shine correctly.
Reverted to library before Init Function Checking to fix BOMs which did not work.
Updating Makefiles for Hunter-Prey implementations. Updating COLONYROOT location.
Adding my implementation of Hunter-Prey to the collection.
Cleaning up different Hunter-Prey implementations.
Moving behaviors from the "Projects" directory into the appropriate "Behaviors" directory.
Creating directory for "Push/Pull" formation behavior.
Creating repository space for Formation Control.
Making file naming consistent (use '_' to separate words, not camel hump).
program makefile can now autobuild the library
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