The sensor testbed is built
It has begun. I have started coding in RobotC for the first time ever tonight. WOO HOO!!!
I would have started programming on Thursday, but a vex windows 7, 64bit driver issue took me a few days and a second computer to solve.
Regardless, I have starting going through the robot C tutorial videos. They have been extremely useful and I am getting the ideas I need to create the basic sensor package and drive code branches. I know I will need separate branches of code so while I am going through these tutorials I am trying to take notes on which knowledge should go in each branch. Here is a list of branches I think I will need to end up with.
- Initiation branch – start up, systems check
- Calibration branch – calibrate sensors, controls, battery, and other items
- Communication branch – establish and maintains communications with docks
- Self-locating branch – telemetry, slam, mapping, data fusion and checking
- Database branch – create a database that the bot can store and access to perform variety of functions
- Log and error branch – need to track lots of variables for error handling, improvements, maintenance and black box safety items
- Drive branch – all of the code drive the bot
- Sensor branch – all of the code to govern all of the sensors on the bot
- Vision branch – all of the code to process vision sensor data
- Mapping branch – all of the code to create, calibrate, update the map of the space
- Drive route branch – all of the code to consume the map and create a set of drive routes that take into account previous dirt levels, battery charge, drive times, and overlap
- Vacuum branch – this controls the vacuum and agitators
- Docking branch – this will be the location of the docking code and contain things like orientation, drive sequence, communication and sensor connections for use when docking
- Maintenance branch – this is where we will store specific routines that will enable easy inspection and trouble shooting of mechanical systems, sensor hardware and other physical components
- Safety branch – this is where we will control obstacle avoidance, the lights, sounds and other environmental safety hazard code type items
This is just the list I have been able to come up with so far. I am still at the driving strait with encoders level of code so I have a long way to go. But after managing software development at the CATT Lab I am all too familiar with keeping code organized, files under 300 lines, good code documentation and maintaining discipline for version management.