Saturday, March 7, 2009

SECON observations, part II

Miscellaneous thoughts:
  • ESOS is a good thing. The control of a real robot is complex enough that something better than straight-line code is essential. However, for code needing that level of complexity, I'm tempted to develop in Python/Java/whatever on a laptop, then run on a Gumstix when attached to the robot, while doing all low-level code on a PIC via USB.
  • We need some langauge that allows easy creation of a GUI for visualization and control. I'm tempted to just use MATLAB, since that plays so easily with my robotics program. I've found an used a decent package for Java, but it was fairly painful to get a plot up and running. I'm not sure about Python. I'd suspect any C/C++ plot utility would likewise be on the complex side.
  • I'd like to increase the bootloader speed by a factor of 10 and add an auto-bootload on file changed option.
  • There needs to be a better, simple way to exchange data between the PIC and PC. The bootloader could use a little debug window: configureDataExchange(dataType, "printf format string") and send(&ptr, numBytes) with some macros to make calling a bit easier. Also, I need to implement a simple trace buffer for ISR debug.
  • SVN is a good thing. Although I'd like to try GIT when the Windows GUI is a bit more mature. Having version control at the competition (hosted on Steven's laptop) is very important.
  • Bluetooth is a good thing. I'd like to see more use made of it, via robot status / health in a GUI, to give insight into robot behavior. I think enabling programming via Bluetooth would be very helpful.
  • Some sort of simulator to allow firmware development to run more in parallel with mechanical modifications would be very helpful. Perhaps an ESOS PC port with virtual peripherals? Especially for the higher-level control code, this would be nice.
  • Write lots of testbenches, which verify functionality: does A/D, PWM, etc. work when the appropriate inputs are provided or outputs are measured?
  • Use real connectors, not a number of random 0.1" center pins with round female posts. Just buy good connectors and use them. A centralized mounting plate where all connectors go would be very good. Disadvantage: swapping around one IR or disconnecting an antenna is harder if everything is placed in a central connector. Instead, a number of per-peripheral connectors would probably work better. We need to learn how to crimp 0.1" connectors and order lots of pins plus plastic housings.
  • Students need access to the shop -- they need to have keys, since that hour of free time doesn't always match up with someone being there in the shop to allow access. This slowed mechanical progress significantly.
  • It would be nice to have some sort of SECON x1 PCB that's pretty generic -- just a large pinout PIC, voltage supplies, buck converters, probably servo and IR headers -- for earlier experimentation. The 28 pin platforms weren't as helpful in terms of code development.
  • Have a social team event -- a party, or whatever -- at some point, so the team can meet in a non-work environment.
  • Use as much Vex as possible. Get the laser cutter to the point that it's easy to use and have supplies ready so it can be rapidly prototyped. Can we use it to engrave cut or drill points on a piece of metal? In any case, need much better rapid proto abilities.

No comments:

Post a Comment