robotics system toolboxによる ロボティクスアプリケーション … · 10 what is ros...

32
1 © 2015 The MathWorks, Inc. Robotics Applications Development Using Robotics System ToolboxRobotics System Toolboxによるロボティクスアプリケーション開発) MathWorks Application Engineering Fred Noto & Carlos Santacruz-Rosero

Upload: others

Post on 21-Jan-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

1© 2015 The MathWorks, Inc.

Robotics Applications Development Using

Robotics System Toolbox™

(Robotics System Toolboxによるロボティクスアプリケーション開発)

MathWorks

Application Engineering

Fred Noto & Carlos Santacruz-Rosero

Page 2: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

2

Complexities of Robotics Application Development

MATLAB® and Simulink® can help resolve challenges with

robotics application development

Page 3: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

3

Agenda

Introduction

ROS and Robotics System Toolbox

Robotics development workflow

Demo: Baxter Checkers Demo

Conclusion

Page 4: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

4

MATLAB and Simulink in Robotics

Algorithm prototyping

Wide variety of resources on using MATLAB/Simulink in Robotics

Page 5: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

5

What Is Robotics Development?

MathWorks tools are already being used in complex system development

Page 6: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

6

MATLAB / Simulink in Robotics Development

PlantController+

-

Input Output

Festo Bionic Arm DLR Humanoid Robot YZU Robot Hand

Efficient system level design that yields higher quality robotics systems

Page 7: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

7

Experiences In Robotics Development

Ph.D. in Mechano-Informatics from The University of Tokyo

Motion planning and control of full-sized humanoid robots

R&D in Autonomous Navigation of mobile robots.

Page 8: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

8

Advanced Robotic Systems

High number of DoF

Nonlinearity

Multiple Layers of Control

Multiple States or Modes

Real time and No real-

time software

Page 9: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

9

Robotics System Toolbox for Robotics Development

Connecting MATLAB/Simulink to ROS

ROS data exploration and analysis

Algorithms and transformation functions

ROS

Features for flexible and convenient robotics development

Page 10: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

10

What is ROS (Robot Operating System)?

With the intent to enable researchers to

rapidly develop new robotic systems without

having to “reinvent the wheel” through use of

standard tools and interfaces.

Jonathan Bohren

ROS Crash-Course, Part I: Introduction to ROS distribution, build system and infrastructure

Architecture for distributed inter-process

communication

Multilanguage interface (C++, Python, Lua,

Java, MATLAB)

Tools for runtime and data analysis

Packages for common algorithms and drivers

Open source

Page 11: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

11

Gazebo Simulator

Gazebo is one of the most

popular robotics simulators

Many robot manufacturers

provide plugins for Gazebo that

help simulate their robots

(TurtleBot, Baxter, Husky, …)

Download a VM with Gazebohttp://www.mathworks.com/supportfiles/robotics/ros/

virtual_machines/v1/installation_instructions.htm

Add visualization to simulations for effective algorithm evaluations

Page 12: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

12

Ethernet

Main CPU

Developing Robotic Applications with ROS

Kinematics& Control

MATLAB

Image pre-

processing

Localization &

Mapping

Image

Processing

Map server

Local

Planner

Global

Planner

NODE NODE NODE

NODE NODE NODE

NODE

NODE

Sensors /

ActuatorsRobot (CPU 2)

NODE

NODE

NODENODE

NODE

ROS nodes communicate through well-defined message interfaces

Page 13: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

13

ROS Network Overview

ROS MasterManage Registration

ROS Node ROS Node

Register Register

Data Exchange

RosbagPlayback

Log Log

ROS Node

Data Exchange

Management of data transmissions through the ROS network

Page 14: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

14

Topics

Services

/topic

ROS Node Communication Methods

ROS

Node(s)

Publish

Subscribe

Publish

Subscribe

ROS

Node

ROS

NodeRequest

Response

ROS

Node(s)

Service

Server

Service

Client

ROS message selection based on data usage and needs

Page 15: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

15

The Trend in Robotics Development

ROS

– #1 middleware for robotics

applications development

– Yearly increase in users

– Simplify component compatibility

through standalone interfaces

– Integrate with simulation

environments (e.g. Gazebo)

http://rosindustrial.org/ric-americas/

Popular in research and gaining great momentum in industry

Page 16: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

16

Previous Challenges Using ROS

• Need for expertise using ROS, Linux, C++, etc.

• Not suitable for algorithm prototyping

• Not able to interface with MATLAB / Simulink

Typical ROS Network

willowgarage.com/Blog

Page 17: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

17

Utilizing Robotics System Toolbox

Connect MATLAB/Simulink to ROS for efficient algorithm development

Page 18: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

20

General Robotics Development Workflow

Explore Robot

Interface

Develop

Algorithm

Test and

Refine in

Simulation

Test and

Refine on Real

Robot

Verify algorithms at each step to refine design and prevent rework

Page 19: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

21

Demo: Playing Checkers with Baxter

Utilizing the power of MATLAB and interfacing with ROS

Page 20: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

22

State ControllerImage ProcessingGame Algorithm Path PlanningInterpolation

Low Level Control Inverse Kinematics

Topics:- Camera- End Effector State- Joint State

Topics:- Joint Commands- End Effector Commands- Display Image

Algorithms Developed in MATLAB/Simulink

Data processing and command calculations done in MATLAB/Simulink

Page 21: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

23

Step 1 : Explore Robot Interface

Connect to simulated / real robot

over ROS

Explore available sensors and

actuators

Retrieve some sensor data

Control the robot motion

ROS

Explore Robot

Interface

Develop

Algorithm

Test and

Refine in

Simulation

Test and

Refine on Real

Robot

Page 22: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

24

Step 2 : Prototype Algorithm

Develop the algorithm in MATLAB using image processing tools

Run tests to ensure the algorithm behaves as expected

Explore Robot

Interface

Develop

Algorithm

Test and

Refine in

Simulation

Test and

Refine on Real

Robot

Page 23: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

25

Step 3 : Test Algorithm in Simulator

Explore Robot

Interface

Develop

Algorithm

Test and

Refine in

Simulation

Test and

Refine on Real

Robot

Page 24: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

26

Step 4 : Test your algorithm with actual robot

Explore Robot

Interface

Develop

Algorithm

Test and

Refine in

Simulation

Test and

Refine on Real

Robot

Page 25: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

27

Next Step: Deploying your Algorithm

Generate ROS

Node with

Simulink

Create a

Stand Alone

Executable

with MATLAB

Compiler™

Generate a

shared library

with MATLAB

Coder™

Determine deployment methods based on application

Page 26: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

28

Optional Products for Robotics Applications Development

Image Processing

Toolbox™

Contrast adjustment

Geometric transformations

Various filters

Segmentation

Object analysis

Computer Vision System Toolbox™

High-speed video I/O

Point Cloud processing

Tracking

Stereovision

Image Acquisition Toolbox™

Image capture from standard H/W

Analog, Camera Link, DCAM,

GigE Vision, USB camera, etc

Microsoft Kinect Support

Statistics and Machine Learning

Toolbox™

Multivariate statistics

Probability distribution

Machine learning

Experimental design

Statistical process control

Page 27: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

29

Optional Products for Robotics Applications Development

Control System Toolbox™

Linear analysis

Classical

control design

Modern

control design

Simulink Design Optimization™

Model parameter estimation from

test data

Optimization of

parameters

Response

optimization

Simulink Control Design™

Automatic tuning of PID

Controller blocks

Linearization of

Simulink models

Continuous-

Discrete time

conversions

Robust Control Toolbox™

Robust control design

Automatic tuning

of gain-scheduled

controllers

Page 28: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

30

Connect MATLAB/Simulink to ROS

Utilize useful toolboxes for algorithm development(Image Processing, Machine Learning, CVST, etc.)

Use simulator to verify algorithms virtually

Deploy algorithms through code generation

A New MathWorks Solution for Robotics Development

Robotics System Toolbox

Integrate MATLAB with ROS using Robotics System Toolbox

ROS

Page 29: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

31

Process

logged data

Log file

Message

communication

with robots

Message

communication

with Simulator

Visualization /

Data analysis

Deploy on

Hardware/PIL

Robotics

System

ToolboxMATLAB/Simulink

Algorithm/Controls

development

(data processing,

visualization, logging,

robot controls, etc.)

Conclusion

MATLAB/Simulink Tools to Increase Efficiency of Robotics Development

Page 30: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

32

Training and Consulting Services

Investment Effectiveness Training Services

Routine Training Tokyo, Nagoya, Osaka

Onsite Training Held at customer sites

Curriculum customization available

Consulting Services

Custom “Jumpstart” Short-term focused tool adoption support

Advisory Service

Maximize ROI

Course: Designing Robotics Algorithms in MATLAB

(MLRO - MATLAB と ROS によるロボティクス)

Page 31: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

33

What Next?

Investigate training courses

Request a trial and test with downloadable Virtual Machine http://www.mathworks.com/supportfiles/robotics/ros/virtual_machines/v1/installation_instructions.htm

Come see Baxter in action at the demo booth!

Page 32: Robotics System Toolboxによる ロボティクスアプリケーション … · 10 What is ROS (Robot Operating System)? With the intent to enable researchers to rapidly develop

34

Thank You For Your Attention

ご清聴ありがとうございました

© 2015 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The

MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional

trademarks. Other product or brand names may be trademarks or registered

trademarks of their respective holders.