I am working on a robotics research project, and would like to know: Does anyone have suggestions for best practices when organizing scientific data and code? Does anyone know of existing scientific libraries with source that I could examine?
Here are the elements of our 'suite':
- Experiments - Two types:
- Gathering data from existing, 'natural' system.
- Data from running behaviors on robotic system.
- Models
- Description of dnamical system - dynamics, kinematics, etc
- Parameters for said system, some of which are derived from type 1 experiments
- Simulation - trying to simulate natural behaviors, simulating behaviors on robots
- Implementation - code for controlling the robots. Granted this is a large undertaking and has a large infrastructure of its own.
Some design aspects of our 'suite':
- Would be good if simulation environment allowed for 'rapid prototyping' (scripts / interactive prompt for simple hacks, quick data inspection, etc - definitely something hard to incorporate) - Currently satisfied through scripting language (Python, MATLAB)
- Multiple programming languages
- Distributed, collaborative setup - Will be using Git
- Unit tests have not yet been incorporated, but will hopefully be later on
- Cross Platform (unfortunately) - I am used to Linux, but my team members use Windows, and some of our tools are wed to that platform
I saw this post, and the books look interesting and I have ordered "Writing Scientific Software", but I feel like it will focus primarily on the implementation of the simulation code and less on the overall organization.