This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
cs:ros:tutorials:start [2016/09/09 17:43] James Irwin [Pre-requisites] |
cs:ros:tutorials:start [2016/09/09 18:07] James Irwin [Pre-requisites] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== ROS Tutorials ===== | ===== ROS Tutorials ===== | ||
+ | |||
+ | ===== ROS Tutorials ===== | ||
+ | This wiki is a simplified | ||
==== Pre-requisites ==== | ==== Pre-requisites ==== | ||
Basic linux command-line knowledge (specifically BASH) is assumed. If you are completely unfamiliar with the command line, check out this[[https://www.codecademy.com/learn/learn-the-command-line|codecademy tutorial]], or [[https://www.youtube.com/playlist?list=PLII6oL6B7q78PKy6_R6JTkkYjVXZBZcVq | this series of videos]]. | Basic linux command-line knowledge (specifically BASH) is assumed. If you are completely unfamiliar with the command line, check out this[[https://www.codecademy.com/learn/learn-the-command-line|codecademy tutorial]], or [[https://www.youtube.com/playlist?list=PLII6oL6B7q78PKy6_R6JTkkYjVXZBZcVq | this series of videos]]. | ||
+ | |||
+ | ==== High Level Concepts ==== | ||
+ | ROS is many things, it is primarily a communication framework, but it also has a huge set of useful tools, including viewing data, navigating the filesystem, and starting up processes. | ||
+ | |||
+ | Each process is called a **node**. Nodes are designed to do a specific task. We can create complex functionality (such as controlling a robot) by building multiple nodes and having them talk together. | ||
+ | |||
+ | There are several ways for nodes to talk to each other, the most common one is a **topic**. The basic idea is that a single node can "publish" data to a topic, and then one or more nodes can "subscribe" to the topic and receive the data. | ||
+ | |||
+ | Nodes are typically grouped together into a **package**. All of our software is in a single package called "robosub". When you install ROS, several other packages are installed that provide some useful functionality, such as rqt_plot. | ||
+ | |||
+ | ==== Command Line Tools ==== | ||
+ | ROS provides many useful command-line tools. Your BASH environment gets access to these when you have the following line in your ~/.bashrc file: | ||
+ | <code bash> | ||
+ | source /opt/ros/indigo/setup.bash | ||
+ | </code> | ||
+ | Most ROS commands support tab autocompletion, so take advantage of it! | ||
+ | |||
+ | === Navigating the filesystem === | ||
+ | ROS has a few different commands that are useful for moving and looking around. They are typically in the form: | ||
+ | <code bash> | ||
+ | <command> <package_name> <...> | ||
+ | </code> | ||
+ | Most are based on the typical navigation functions: | ||
+ | * roscd | ||
+ | * rosls |