|ARL research robot media and other stuff||
Rensselaer Polytechnic Institute
Algorithmic Robotics Laboratory
This project is currently on hold as we work on some other new research robots.
Each robot will have:
Update 10/03: as of now, we have given up on the Ampro board in favor of the Via EPIA ME6000. Ampro did not provide us with satisfactory support, considering their board couldn't even handle booting from a hard drive (using their instructions to do so). In fact, their support staff seemed to have less of a clue about their own board than we did. Personally, I'm quite pleased with the Via board so far. All of our software was "ported" by changing one line:
#define ROBOT_BYTE_ORDER __LITTLE_ENDIAN
With this change, and the near-completion of our chassis and selection of a camera, we are nearly ready to start putting the final robot together.
Here are some pictures from our first real "integration" test (integration between the microcontrollers in charge of the lowest-level stuff, like driving the motors, and the main computer/software). The chassis being used is completely temporary (as you can see, none of the hardware is even really fixed to it). The main computer (pictures 4 and 5) is still sitting on my desk, and is talking to the hardware via that serial tether. Pictures 2 and 3 show the PDA controlling the motors.
Movie:Driving around controlled by the PDA (mpeg4 divx, 2.7mb)
We are done adding new features to our robot software (for now). Some of the things our software does:
Of course, our software does lots more, but these are the most important functionalities it provides. You may be interested in the doxygen documentation generated from the source.
Some interesting code statistics (generated using David A. Wheeler's SLOCCount):
SLOC Directory SLOC-by-Language (Sorted) 3726 misc cpp=3726 1931 pda perl=1104,cpp=827 1560 librobot ansic=1560 1026 arch cpp=628,ansic=398 710 interp ansic=710 621 include ansic=621 347 scripts sh=347 316 driver ansic=316 169 mc ansic=169 0 doc (none) 0 top_dir (none) Totals grouped by language (dominant language first): cpp: 5181 (49.79%) ansic: 3774 (36.27%) perl: 1104 (10.61%) sh: 347 (3.33%) Total Physical Source Lines of Code (SLOC) = 10,406 Development Effort Estimate, Person-Years (Person-Months) = 2.34 (28.08) (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05)) Schedule Estimate, Years (Months) = 0.74 (8.88) (Basic COCOMO model, Months = 2.5 * (person-months**0.38)) Estimated Average Number of Developers (Effort/Schedule) = 3.16 Total Estimated Cost to Develop = $ 316,075 (average salary = $56,286/year, overhead = 2.40).
We seem to have squeezed 28.08 person-months of development into just two! Hopefully there aren't 14 times more bugs!