Updated: August 6th 2010 - Chris

Sourceforge Project page

This is basically just a place to scratch notes/ideas about the robot.

Feel free to request changes

Here is a task list:
Python bridge
Control Window
Low level hardware communication

VISION Tasks: Alan,Phil - Work has been done, but this is on-going
THE SIMULATOR: Chris, Abandonded.
This is low priority, and is pretty much a pet project for now.
We need a simple (non-physics based) 3d simulator that can run a 3d window and basically run this loop: Create an image class with information in it about that that image should be able to see, pass that frame into the AI, get the AI response, update the robot position, then draw the scene.

Currently looking for Alternatives, like maybe Player/Gazebo. PYTHON BRIDGE: Chris, No deadline - Constant development, currently planning.
Implementing this with boost python library. AI: Unassigned, No Deadline
This is so massive and complicated I don't even know what to say. It should only come once the image stuff is done. (I think?)
This is probably get slowly implemented in python as vision gets better and better.

Low level hardware communication Assigned to: Chris, on track, switching to CAN bus for most hardware communication.

Control Panel: Chris - Up to date
This is a modular control panel. There are many windows that can all be opened or closed with a main control panel. Windows will always be under development.

If you want a task e-mail me, thelorax87@users.sourceforge.net

Q: How can I become a developer?
A: Get a sourceforge.net account and e-mail me. The project page is here Basically just give me your username and join all the mailing lists for the projects. Read the GIT page there and then just start coding it anyway you see fit. To send patches read the text below.

Q: What do I need to know to become a developer?
A: Git, CMake, E-mail (mailing lists), C++, threads
Boost, Exception safety, copy-safe classes, template classes, stl and emacs/vim are optional but recommended.

Q: What is the bare minimum I need to do to be useful?
A: Read all the patches and comment on them. You can also try to crash the code and submit bug reports.

Q: What are the coding standards?
A: Short answer: Strict.
long answer: All changes you make to the source code have to be e-mailed to the patch mailing list on sourceforge where they are publicly visible and other developers can comment on them. Once your class/function is at least exception and copy safe and doesn't use C style coding (IE uses std::vector and not arrays, for example) it is committed to the main code branch.

Q: How do I create patches?
You can use the patches mailing list.

Q: How can I apply somebody elses patch to my code to test it?
Same page as the link for the 'create patches' section.

Q: What about spacing/tabs?
A: I like vanilla emacs mode. I'll probly just end up auto-formatting any changes to conform. That means, 2 spaces to indent, no tabs and always try for less than 80 characters in a line, but that can be hard sometimes with C++

Q: How do developers talk to each other?
A: Mailing lists. There are 3.
One to dump patches to commit
One that only the svn server writes to, that lets people know of any changes.
One that developers can discuss code/patches on.

Q: What about IRC?
A: Sure, idle on #robomcgill on irc.freenode.org. This is pretty dead now, but express interest if you want it back.