ROS Crash Course - NIURoverTeam/RoverCoreOS GitHub Wiki
ROS Crash Course
Introduction
The NIU Mars Rover Team develops for our Rovers using the open source Robotic Operating System (ROS). While not a true operating system, generally running on Ubuntu or other Linux distributions, ROS is a package-based development stack that allows roboticists and developers to take advantage of a wide assortment of preexisting robotics software without the need to reinvent the proverbial wheel. It's a flexible, extensible, and powerful tool, but it comes at the price of having a decently steep learning curve. That said, there's a vast array of resources and tools out there aimed at getting newbies and veteran developers alike up and running on ROS, so don't be afraid to jump in and start learning.
Installed ROS already? If not, check out Setting Up a Development Environment.
ROS.org Tutorials
The best way to learn ROS is to dig into the extensive tutorials, linked above, on the organizations main wiki page.
Recommended Tutorials to Get Started
Note: These are only recommendations. If you want, you can certainly do more, and you should feel free to defer or entirely ignore tutorials that you don't think will be useful to you. The goal here is not to give you more homework than you already have, but to give you the resources you need to start developing as quickly as possible.
- Beginner Level
- Installing and Configuring Your ROS Environment
- Navigating the ROS Filesystem
- Creating a ROS Package
- Building a ROS Package
- Understanding ROS Nodes
- Understanding ROS Topics
- Understanding ROS Services and Parameters
- Using rqt_console and roslaunch
- Using rosed to edit files in ROS
- Writing a Simple Publisher and Subscriber (Python)
- Examining the Simple Publisher and Subscriber
- Examining the Simple Publisher and Subscriber
- Examining the Simple Service and Client
- Recording and playing back data
- Getting started with roswtf
- Intermediate Level
- Specific ROS Libraries/Packages
Tips and Tricks
- Follow the RoverCoreOS README.md instructions to get ready to work with the Rover's code.
- Make sure you're always running
source /opt/ros/melodic/setup.bash
andsource ~/catkin_ws/devel/setup.bash
before working with ROS. We strongly recommend adding them to the end of your~/.bashrc
file.
Other Links
- Robot Ignite Academy: Good for if you don't have a machine that can run ROS, tutorials can be run entirely in the browser.
- ROS101: An Intro to the Robot Operating System: A beginner friendly run down.
- ROS web tutorial part 1 - rosbridge server and roslibjs: An interesting web based approach to working with ROS.
- Introduction to Simultaneous Localization and Mapping: Good primer if you want to work on the Autonomous Navigation.
- How does Autonomous Driving Work? An Intro into SLAM