Robotics Operating System
-
Upload
nishant-sharma -
Category
Documents
-
view
228 -
download
0
Transcript of Robotics Operating System
-
8/9/2019 Robotics Operating System
1/29
An Introduction to Nishan
-
8/9/2019 Robotics Operating System
2/29
Robot Hardware
Actuators:
Motors
Sensors:
Encoders
-
8/9/2019 Robotics Operating System
3/29
Single pipeline bottleneck
This is an architecture only suitable for simple systems.
HardwareRobotBaseSoftware
publish publish
subscribe subscribe
-
8/9/2019 Robotics Operating System
4/29
We will need an architecture which can suppmore complex hardware and softwarecomponents.
Goal: Develop big software for robots
-
8/9/2019 Robotics Operating System
5/29
Challenges encountered in robotics
1. The world is asynchronous
2. Robots must manage significant complexity
3. Robot hardware requires abstraction
-
8/9/2019 Robotics Operating System
6/29
Reusable code!
PR2 Roomba Care-O-bot 3
-
8/9/2019 Robotics Operating System
7/29
MIT Urban Challenge Vehicle
-
8/9/2019 Robotics Operating System
8/29
-
8/9/2019 Robotics Operating System
9/29
A meta-operating system forrobots
-
8/9/2019 Robotics Operating System
10/29
What is ROS?
A Meta Operating System.
Open source
Runs in Linux (esp. Ubuntu)
Ongoing Windows implementation
Agent based (nodes)
Message passing
Publish Subscribe
Services via remote invocation
Supports numerous programming languages (C++, Python, L
-
8/9/2019 Robotics Operating System
11/29
Comparison: the robotics ecosystem
Applications
Application building blocks
System software
Hardware
Applications
ROS
Hardware
-
8/9/2019 Robotics Operating System
12/29
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! : An actual operating system
A programming language
A programming environment / IDE
A hard real-time architecture
-
8/9/2019 Robotics Operating System
13/29
What is ROS
Agent based system (nodes)
Message passing Publisher
Subscriber
Services via remote invocation
Supports numerous programming languages (C++, Python, L
-
8/9/2019 Robotics Operating System
14/29
-
8/9/2019 Robotics Operating System
15/29
ROS: File system Level
ROS resources that are mainly encountered on disk:
Packages
Metapackages
Package Manifests
Message Types
Service Types
Source Code Files
-
8/9/2019 Robotics Operating System
16/29
ROS Computation Graph Level
Peer-to-Peer network of ROS processes that are processing together
Nodes
Master
Parameter Server
Topics
Messages
Services Bags
-
8/9/2019 Robotics Operating System
17/29
ROS : Community Level
ROS resources that enable separate communities to exchansoftware and knowledge.
Distributions
Repositories
ROS wiki
Mailing Lists
ROS Answers
Blog
-
8/9/2019 Robotics Operating System
18/29
ROS & its main components
ROS Master
A centralized XML-RPC server
Negotiates communication connections
Registers and looks up names for ROS graph resources
Command roscore: starts master, parameter server, logging
Parameter Server
A shared, multi-variate dictionary that is accessible via network AP
Allows data to be stored by key
rosout
Essentially a network-based stdout for human-readable messages
-
8/9/2019 Robotics Operating System
19/29
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, forwkinematics
-
8/9/2019 Robotics Operating System
20/29
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 sca
Ex. For a package on motor controllers a node can be an actuator osensor.
-
8/9/2019 Robotics Operating System
21/29
Ways to Communicate : Topics
Topic (publisher, subscriber)
Asynchronous "stream-like" communication Strongly-typed (ROS message specification)
Callback functions
By default single-threaded
Can be switched to multi-threaded implementation
Not appropriate for request/reply interaction
Many-to-many
-
8/9/2019 Robotics Operating System
22/29
Publish/Subscribe Messaging
Publish: Will not block until receipt, messages get queued.
Delivery Guarantees: Specify a queue size for publishers: If publishing towill buffer a maximum of X messages before throwing away old ones
Transport Mechanism: TCP/IP
Master
Publisher
Publisher
Subscriber
Subscriber
/topic
(DNS-like)
-
8/9/2019 Robotics Operating System
23/29
Ways to communicate : Service
Higher Priority
Synchronous "function-call-like" communication Strongly-typed (ROS service specification)
One-to-one
Can have one or more clients
No topic callbacks are issued during service call
Service request is blocking
-
8/9/2019 Robotics Operating System
24/29
ROS Tools
PlottingGraph Visualization
Diagnostics
Simulation/visualization
-
8/9/2019 Robotics Operating System
25/29
ROS debugging tools
rostopic: Display debug information about ROS topics: publisubscribers, publishing rate, and message content.
rostopic echo [topic name] prints messages to console
rostopic list prints active topics
rqtplot : Plot data from one or more ROS topic fields using m
rqtplot /turtle1/pose/x,/turtle1/pose/y graph data from 2 top
-
8/9/2019 Robotics Operating System
26/29
ROS Visualization
Visualize:
Sensor data
Robot joint states
Coordinate frames
Maps being built
Debugging 3D markers
Visualization/Simulation Tools
RVIZ
Gazebo
-
8/9/2019 Robotics Operating System
27/29
ROS: Over Network
Two ways to connect different machines in a Network
Exporting ros master to a single machine
Different machines can use just one instance of roscore
Using Multimaster replication
Different roscore instances synchronize with each other
Already implemented in ROS package Multimaster_fkie
-
8/9/2019 Robotics Operating System
28/29
ROS Resources
http://www.ros.org
http://wiki.ros.org
http://www.ros.org/http://www.ros.org/http://wiki.ros.org/http://wiki.ros.org/http://wiki.ros.org/http://www.ros.org/ -
8/9/2019 Robotics Operating System
29/29
Thank you!