Robotics Operating System
Robotics Operating System
Nishant Sharma
Robot Hardware
Actuators:
Motors
Sensors:
Encoders
publish
Software
RobotBase
subscribe
Hardware
subscribe
Reusable code!
PR2
Roomba
Care-O-bot 3
We want:
Callbacks
Separate processes that communicate through a messaging interface
A messaging interface that helps avoid hardware dependencies
What is ROS?
A Meta Operating System.
Open source
Runs in Linux (esp. Ubuntu)
Ongoing Windows implementation
Applications
Hardware
Hardware
What is ROS
A meta operating system for robots
Open source
Runs in Linux (esp. Ubuntu)
Ongoing Windows implementation
Can be used with single-board computers like RPi, BBB, etc.
What is it NOT! :
What is ROS
Agent based system (nodes)
Message passing
Publisher
Subscriber
Services via remote invocation
What is ROS
Software management (compiling, packaging)
Remote communication and control
Packages
Metapackages
Package Manifests
Message Types
Service Types
Source Code Files
Nodes
Master
Parameter Server
Topics
Messages
Services
Bags
Distributions
Repositories
ROS wiki
Mailing Lists
ROS Answers
Blog
Parameter Server
A shared, multi-variate dictionary that is accessible via network APIs.
Allows data to be stored by key
rosout
Essentially a network-based stdout for human-readable messages
Package
A folder that contains your code, build files, launch files, etc.
Can contain any number of nodes
'manifest.xml' lists the ROS & system dependencies
Should only contain related code
ex. laser pipeline, motor controllers, localization, SLAM, forward
kinematics
Nodes
Process that performs some function.
Communicate with each other using topics & services.
Assigned unique names
Intended to be modular and operate on the fine-grained scale
Ex. For a package on motor controllers a node can be an actuator or some
sensor.
Publish/Subscribe Messaging
Master
(DNS-like)
Publisher
Publisher
/topic
Subscriber
Subscriber
ROS Tools
Plotting
Graph Visualization
Diagnostics
Simulation/visualization
rqtplot : Plot data from one or more ROS topic fields using matplotlib.
rqtplot /turtle1/pose/x,/turtle1/pose/y graph data from 2 topics in 1 plot
ROS Visualization
Visualize:
Sensor data
Robot joint states
Coordinate frames
Maps being built
Debugging 3D markers
Visualization/Simulation Tools
RVIZ
Gazebo
ROS Resources
http://www.ros.org
http://wiki.ros.org
Thank you!