High-Level Current Goals¶
- Smart Runaround Maze Exploration
- Better GUI.py sim control
- Make does not regenerate BehaviorList stuff if it already exists. Make it do that!
- (DONE) Change @TODO and TODO to @todo
- Make dumb run around smarter.
- Code cleanup and documentation
- Fix original maze_solve behavior
- Hui Jun
- Debugging maze solve behavior (driving, keeping track of position, and filling in adjacent cells only)
- Work on filling in grid cells based on sonar, to merge with Hui Jin's driving code
- Test paintboard and metal detector code
- (DONE) Metal Detecting Control Class
- (DONE) Paint Dispensing Control Class
- (DONE) Behavior for SURG demo
- Create a few maze environments
- More features for GUI
- (DONE) Make clean for whole scout folder
- Make GUI.py runnable from any folder (currently you have to cd to scoutsim first)
High-level tasks (one per person)¶
- (DONE)Fix how the scout moves in the simulator
- Negative wheel velocities still move the scout forward!
- Write a wireless node to simulate ACTUAL wireless protocols, and include an option for dropped messages or errors.
- (DONE) Write the sonar simulator.
- Don't forget to check collisions with other robots as well as walls!
- (DONE) Write a sonar visualizer node which displays a circular chart of current sonar readings.
- Create a more extensive Helper Class library
- (DONE) Position and RungeKutta now moved into Helper Class
- Create maze maps.
- (DONE) Create a teleop button and a sonar visualize button.
- Config files for the GUI to save and load scenarios
- Visualize points more generally, not sonar-specific / listen on a topic
- It would be nice to have a little API for visualizing a behavior's 2d pointcloud - could make debugging a lot of things easier.
General Things To Do¶
- Sonar in libscout returns an int* which is annoying.
- Periodically make sure that we have no warnings.
- (DONE) Figure out/delete/use the "messages" folder.
- Everything is now (should be) in the messages folder
- Check getNumSubscribers in publishers to avoid doing extra work
- Get top-view scout images.
- The images should be edited so that scout numbers (1-16) are prominently displayed on the robot.
- Save into the scoutsim/images folder with appropriate names, and allow scoutsim to use these images.
- Clean up code to follow coding guidelines! Add nice comments!
- Using Scoutsim to visualize actual scout information (position, sonar readings, etc)
- Should libscout be renamed?
- We may want to avoid #defines. Revisit this discussion later.
- Pre-commit hooks. I wrote one to help with my dealing with licensing info.
- Test encoders on real scout
- Remove old teleop and clean up scoutsim folder
- CCW and CW are reversed, fix that.
- Add wait() functionality to Behavior class (like I did to fix the sonar in maze solving)
- Move other message/service definitions to the messages package
- Edit makefile so that make clean / generate behavior lists runs more easily
- Edit makefile so that we can make a single behavior at a time. (Mess with GLOB BEHAVIOR_FILES, etc)
- Makefile-generated behavior list
- Individual visualization control
- Write a wall visualizer for scoutsim.
- Write a better teleop node, remove the old teleop
- Write a GUI for placing robots and selecting behaviors.
- Doubles for dialog boxes input
- Pause is buggy
- Write a ghost scout library function.
- Finish creating Control classes and make sure they take the scoutname parameter.