This wiki space is a home for documentation concerning robotic hardware and software integration at NPS. The goal is to generate self-serve solutions to common problems faced by those interested in developing "robotic" systems - where "robotic" refers to any computational system that interacts with the environment. Below is a growing number of community-generated pages that describe potential solutions based on the NPS-specific tools.

Guidelines

This wiki is a work in progress. It requires that members of the community (you) contribute their knowledge in the form of working examples of NPS-specific solutions. If you contribute your experience it will likely save future members lots of time as they try to get things working. Everyone in the NPS community that is logged into the wiki system should be able to edit these pages and add new pages. Here are some rough guidelines/thoughts for adding new material:

Collaboration : The reason to document this work as a wiki, rather than a static document, is to allow collaboration. If you find bugs, better solutions, unclear instructions or anything that would benefit the community, please add it to the wiki. This only works if we are both consumers and creators of the content.

: The reason to document this work as a wiki, rather than a static document, is to allow collaboration. If you find bugs, better solutions, unclear instructions or anything that would benefit the community, please add it to the wiki. This only works if we are both consumers and creators of the content. Audience : The audience for these pages is someone familiar with the individual software tools (MATLAB, ROS, etc.) but trying to link them together into a system. Write the document that you wish you had at the start of your project.

: The audience for these pages is someone familiar with the individual software tools (MATLAB, ROS, etc.) but trying to link them together into a system. Write the document that you wish you had at the start of your project. Goldilocks : Try to include enough detail so that the reader could reproduce your work, but not so much that you are recreating what already exists. For example, we aren't adding to the existing general MATLAB/ROS/Linux documentation (there is lots of that out there), instead we are providing specific instructions for an individual implementation.

: Try to include enough detail so that the reader could reproduce your work, but not so much that you are recreating what already exists. For example, we aren't adding to the existing general MATLAB/ROS/Linux documentation (there is lots of that out there), instead we are providing specific instructions for an individual implementation. Troubleshooting: If you have problems or questions, please use the Questions link on the left panel.

If you want to help answer these questions, please "watch" the Questions page.

Getting Started

There is some foundational knowledge that will help you make sense of these examples. A minimal getting started scenario might be as follows

A basic familiarity with the Linux command line interface. The first 5 sections of Learning the Shell (user feedback would be good here! If you find a tutorial you like, please share.)

The ROS Beginner Level Tutorials

Mathworks Getting Started with Robotics System Toolbox

Git (Optional). It would be good to get a high-level idea of how version control (e.g., git) works. This is not strictly necessary to get started, but it will help resolve some of the mystery. This seems like a reasonable first tutorial http://www.sitepoint.com/git-for-beginners/

This page is not a resource for these individual software tools, this documentation (tutorials, APIs, online courses, etc.) is mature and available elsewhere. For each of the software tools we do provide pages with community-recommended external resources.

Concepts and Utilities

NPS Development Environments

The most difficult program is often "hello world". To write and run the hello world program often requires a number of ever-changing, platform specific steps to setup a development environment that allows for writing the first few lines of functional code. For robotic applications the number of computational tools is rapidly expanding. These pages document an NPS-specific set of known functional development environments.

Recipes

The key challenge of robotic computation is getting a bunch of individual hardware and software bits to work together in as an integrated system. The pages below are working examples of specific collections of tools that have been successfully developed here at NPS.

Hardware Recipes

The proliferation of powerful, cost-effective computational solutions has made robotics applications available to a much broader audience of users. On the other hand this ever increasing wide variety of possibilities makes it challenging for new users to select suitable platform. Below are a few hardware tools that are particularly suitable for NPS users.

Aerial Platforms

Ground Platforms

Marine Platforms









Sensor/Actuator/Input Recipes









Simulation Recipes

MATLAB/Simulink





Projects





Miscellaneous





Email list: coming soon...























