Robotics Operating System

download Robotics Operating System

of 29

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!