tier iv academy...

44
TIER IV ACADEMY 動運転システム構築塾 version 1.3 Day2 ROS 演習 ROS演習3:ROS 2.0 の最新動向について

Upload: dangdan

Post on 02-Jul-2018

289 views

Category:

Documents


9 download

TRANSCRIPT

  • TIER IV ACADEMY

    version 1.3

    Day2ROS

    ROSROS 2.0

  • ROSROS 2.0

    ROS catkin ROS

    ROS ROS2.0 ROS TF ROS RViz

    l ROS ROS

    l ROS ROS2.0 ROS ROS ROS

    ROS2 ROS2 ROS2DDS

    2

  • ROSROS 2.0 3

    ROSRobot Operating Systems 1. ROS 2.

    ROS 2.0 1. 2. DDS 3.

  • ROSRobot Operating Systems

    ROSROS 2.0

    4

    1. ROS

  • ROS

    ROSROS 2.0 5

    ROS (Robot Operating System) : ...etc

    n

    n

    n

    n C++, Python

    n OSRF

    n OSLinux

  • ROS (1/2)

    ROSROS 2.0 6

    3D map

    ITS (Intelligent Transport Systems)

    + Internet

    International cooperation

    Laws

    DetectionSensing

    Planning Operation

    Localization

    1 2 3 4

    Interface

  • ROS (2/2)

    ROSROS 2.0 7

    Localization Detection Planning

    R O SOS

    Sensing

    Linux (Ubuntu14.04)

    CPU (multi/many) LIDARCamera

    GNSS (GPS)

    GPU

  • ROSRobot Operating Systems

    ROSROS 2.0

    8

    1.

  • ROS

    ROSROS 2.0 9

    ROS (Robot Operating System) :

    Publish / Subscribe l l

    2

    1 3

  • Subscribe

    Publish Subscribe

    10

    Publish / Subscribe

    , ,

  • 11

    ROSROS 2.0

    Publish / Subscribe

    , ,

  • 12

    NEW !

    ROSROS 2.0

    Publish / Subscribe

    , ,

  • ROS

    ROSROS 2.0 13

    ()

    User Code

    R O S

    Hardware

    TCP/UDP or

  • ROS

    ROSROS 2.0 14

    ( )

    User Code

    RO S

    Hardware

    GUIROS

    GazeboD

    l rosbag

    l

    RViz3D

  • ROS

    ROSROS 2.0 15

    ()

    User Code

    R O S

    Hardware

    TCP/UDP or

  • ROS

    ROSROS 2.0 16

    ()

    User Code

    R O S

    Hardware

    ( )

    User Code

    RO S

    Hardware

    2,000

  • ROS

    17

    Camera.cpp

    ImagesCamera Image Proccessing

    : Camera : ImageProccessing

    :

    Image.msg --------------------

    Header header uint32 height uint32 width

    string encoding uint8[] data

    ImageProcessing.cpp Detection.h

    ROSROS 2.0

  • ROS 2.0

    ROSROS 2.0

    18

    1.

  • ROS2

    ROSROS 2.0 19

    (2007.11-)

  • ROS2

    ROSROS 2.0 20

    (2007.11-)

    ROSalpha

  • ROSROS 2.0 21

    l - Publish / Subscribe - QoS Quality of Service-

    l - (, , , etc.)- /

    DDS (Data Distribution Service) : Publish / Subscribe

    [RTI Connext]

    ROS2

  • ROS 2.0

    ROSROS 2.0

    22

    2. DDS

  • ROS2DDS/

    23 ROSROS 2.0

  • ROS2DDS/QoS

    ROSROS 2.0 24

    sGlobal Data Space

    Publisher

    Participant

    QoS

    Participant

    QoS

    Subscriber

    data1

    data2

    data3

    data4

    DEADLINE period

    HISTORY

    RELIABIRITY

    data1data2data3data4

    Topic

    Data Writer

    Data Reader

  • ROS2DDS/QoS

    ROSROS 2.0 25

    sGlobal Data Space

    Publisher

    Participant

    QoS

    Participant

    QoS

    Subscriber

    data1

    data2

    data3

    data4

    DEADLINE period

    HISTORY

    RELIABIRITY

    data1data2data3data4

    Topic

    ALL () or LAST ()

    Data Writer

    Data Reader

    RELIABLE or BEST_EFFORT

  • ROS2DDS/QoS

    ROSROS 2.0 26

    QoS Policy QoS Policy

    Vola

    tility

    DURABILITY USER DATAU

    ser QoSDURABILITY_SERVICE TOPIS FILTER

    HISTORY GROUP DATA

    READER DATA LIFECYCLE PARTITION

    Presentation

    WRITER DATA LIFECYCLE PRESENTATION

    LIFESPAN DENTINATION ORDER

    Infr

    astr

    uctu

    re

    ENTITY FACTORY OWNERSHIP Redundancy

    RESOURCE LIMITS OWNERSHIP STRENGTH

    Del

    iver

    y RELIABIRITY LIVELINESS

    TIME BASED FILTER LATENCY BUDGET

    TransportDEADLINE TRANSPORT PRIORITY

    [Data Distribution Service (DDS) Version 1.4 April, 2015] ROS2

  • ROS2DDS/Vendor

    ROSROS 2.0 27

    RTI (Real-Time Innovation)

    ConnextCommercial

    Research

    PrismTech OpenSpliceCommercial

    LGPL (v6.4) -

    eProsima FastRTPS Apache 2 -

    OSRF (Open Source

    Robotics Foundation)

    FreeRTPS Apache 2 -

  • RTI (Real-Time Innovation)

    ConnextCommercial

    Research

    PrismTech OpenSpliceCommercial

    LGPL (v6.4) -

    eProsima FastRTPS Apache 2 -

    OSRF (Open Source

    Robotics Foundation)

    FreeRTPS Apache 2 -

    ROS2DDS/Vendor

    ROSROS 2.0 28

    DDS

  • ROS2DDS/Vendor

    ROSROS 2.0 29

    RTI (Real-Time Innovation)

    ConnextCommercial

    Research

    PrismTech OpenSpliceCommercial

    LGPL (v6.4) -

    eProsima FastRTPS LGPL -

    OSRF (Open Source

    Robotics Foundation)

    FreeRTPS Apache 2 -

    DDS

    No.1 J ROS2

    Secure, Micro

  • ROS2DDS/Vendor

    ROSROS 2.0 30

    RTI (Real-Time Innovation)

    ConnextCommercial

    Research

    PrismTech OpenSpliceCommercial

    LGPL (v6.4) -

    eProsima FastRTPS LGPL -

    OSRF (Open Source

    Robotics Foundation)

    FreeRTPS Apache 2 -

    DDS

    No.2 L v6.4

  • ROS2DDS/Vendor

    ROSROS 2.0 31

    RTI (Real-Time Innovation)

    ConnextCommercial

    Research

    PrismTech OpenSpliceCommercial

    LGPL (v6.4) -

    eProsima FastRTPS Apache 2 -

    OSRF (Open Source

    Robotics Foundation)

    FreeRTPS Apache 2 -

    DDS

    ROS2DDS

    GitHub

  • ROS2DDS/Vendor

    ROSROS 2.0 32

    RTI (Real-Time Innovation)

    ConnextCommercial

    Research

    PrismTech OpenSpliceCommercial

    LGPL (v6.4) -

    eProsima FastRTPS LGPL -

    OSRF (Open Source

    Robotics Foundation)

    FreeRTPS Apache 2 -

    DDS

    , ,

    GitHub

  • ROS 2.0

    ROSROS 2.0

    33

    3.

  • ROSROS 2.0 34

    DDS

    DDS

    Linux/Windows/Mac/RTOS/No OS

    Linux

    TCPROS / UDPROS

    OS

    ROS1

    ROS2

    ROS ROS

  • ROS2

    ROSROS 2.0 35

    rmw (ROS Middleware Interface)

    rcl (ROS Client Library)

    rosidl (ROS Interface Description Language)

    C++ Python

    DDS

    ROS2 API DDS API

    + QoS

    .msg .idl

    Connext FastRTPS OpenSplice or or

    or

    C++, python

    DDS

  • DDS

    ROS2

    ROSROS 2.0 36

    C + QoS

    FreeRTPS

    CQoS

    RTPS

  • ROS2

    ROSROS 2.0 37

    ROS1 ROS1

    TCP/UDP

    ROS1 ROS1

    ROS2 ROS2

    DDS

    ROS2 ROS2

    TCP/UDP, DDS

    nodelet

    inter-process intra-process

    R O S 2

    R O S 1

  • ROS2

    ROSROS 2.0 38

    ROS1 ROS1

    TCP/UDP

    ROS1 ROS1

    ROS2 ROS2

    DDS

    ROS2 ROS2

    TCP/UDP, DDS

    nodelet

    inter-process intra-process R O S 2

    R O S 1

    ROS1 ROS2

    ros1_bridge

  • ROS2

    ROSROS 2.0 39

    In Progress Future Work

    ARM A-class, SFF x86 etc 32-bit MCU 8/16-bit MCU

    RAM 1-16GB 4-256KB 1-32KB

    OSWindows, OS X,

    Linux (Ubuntu14.04, 16.04)

    no OS, RTOS (Xenomai, PREEMPT RT)

    l l QoS l TLSF (Two Level Segregate Fit) allocatorl RTOSl intra-process

    l l FreeRTPSROS2 DDSl C

  • ROSROS 2.0

    40

  • ROSROS 2.0 41

    ROS (Robot Operating System) Publish / Subscribe

    ROSDDS Data Distribution ServiceQoSQuality of Service

  • www.tier4.jp

    42

  • Appendix

    ROSROS 2.0

    43

  • n OSRF/ROS.org - [http://wiki.ros.org/], [http://wiki.ros.org/ja]

    n OSRF/ROS2 wiki [https://github.com/ros2/ros2/wiki]

    n OSRF/ROS2 Design - [http://design.ros2.org/]

    n OSRF/FreeRTPS - [https://github.com/ros2/freertps]

    n ROSCon2015 - [http://roscon.ros.org/2015/]

    n ROSCon2016 - [http://roscon.ros.org/2016/]

    n RTI/Connext - [http://www.rti.com/]

    n PrismTech/OpenSplice DDS Community Edition - [http://www.prismtech.com/dds-community]

    n ePrisima/FastRTPS - [http://www.eprosima.com/], [https://github.com/eProsima/Fast-RTPS]

    44

    ROSROS 2.0