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

MathWorks Application Engineering Fred Noto & Carlos Santacruz-Rosero

© 2015 The MathWorks, Inc.1 Complexities of Robotics Application Development

MATLAB® and Simulink® can help resolve challenges with robotics application development

2 Agenda

. Introduction

. ROS and Robotics System Toolbox

. Robotics development workflow

. Demo: Baxter Checkers Demo

. Conclusion

3 MATLAB and Simulink in Robotics

Algorithm prototyping

Wide variety of resources on using MATLAB/Simulink in Robotics

4 What Is Robotics Development?

MathWorks tools are already being used in complex system development

5 MATLAB / Simulink in Robotics Development

Input + Output Controller Plant -

Festo Bionic Arm DLR Humanoid YZU Robot Hand

Efficient system level design that yields higher quality robotics systems

6 Experiences In Robotics Development

. Ph.D. in Mechano-Informatics from The University of Tokyo . Motion planning and control of full-sized humanoid . R&D in Autonomous Navigation of mobile robots.

7 Advanced Robotic Systems

. High number of DoF

. Nonlinearity

. Multiple Layers of Control

. Multiple States or Modes

. Real time and No real- time software

8 Robotics System Toolbox for Robotics Development

. Connecting MATLAB/Simulink to ROS ROS

. ROS data exploration and analysis

. Algorithms and transformation functions

Features for flexible and convenient robotics development

9 What is ROS (Robot )?

. 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 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 10 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 Gazebo http://www.mathworks.com/supportfiles/robotics/ros/ virtual_machines/v1/installation_instructions.htm

Add visualization to simulations for effective algorithm evaluations

11 Developing Robotic Applications with ROS

NODE NODE NODE NODE MATLAB Main CPU Image NODE Processing

Ethernet NODE

NODE NODE NODE Global Image pre- Map server Planner processing Sensors / Robot (CPU 2) Actuators NODE NODE NODE Local Kinematics Localization & NODE Planner & Control Mapping

ROS nodes communicate through well-defined message interfaces 12 ROS Network Overview

ROS Master Manage Registration

Register Register

Data Exchange Data Exchange

ROS Node ROS Node ROS Node

Log Log

Rosbag Playback

Management of data transmissions through the ROS network 13 ROS Node Communication Methods

. Topics Publish Publish ROS /topic ROS Node(s) Subscribe Subscribe Node(s)

. Services Response ROS ROS Node Request Node

Service Service Server Client

ROS message selection based on data usage and needs

14 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

15 Previous Challenges Using ROS

• Need for expertise using ROS, , C++, etc. • Not suitable for algorithm prototyping • Not able to interface with MATLAB / Simulink

Typical ROS Network

willowgarage.com/Blog 16 Utilizing Robotics System Toolbox

Connect MATLAB/Simulink to ROS for efficient algorithm development

17 General Robotics Development Workflow

Test and Test and Explore Robot Develop Refine in Refine on Real Interface Algorithm Simulation Robot

Verify algorithms at each step to refine design and prevent rework

20 Demo: Playing Checkers with Baxter

Utilizing the power of MATLAB and interfacing with ROS 21 Algorithms Developed in MATLAB/Simulink

Topics: - Camera - End Effector State - Joint State

Topics: State Controller - Joint Commands - End Effector Commands Image Processing - Display Image Game Algorithm Low Level Control Path Planning Inverse Kinematics Interpolation

Data processing and command calculations done in MATLAB/Simulink 22 Step 1 : Explore Robot Interface

Test and Test and Explore Robot Develop Refine in Refine on Real Interface Algorithm Simulation Robot

. Connect to simulated / real robot ROS over ROS . Explore available sensors and actuators . Retrieve some sensor data . Control the robot motion

23 Step 2 : Prototype Algorithm

Test and Test and Explore Robot Develop Refine in Refine on Real Interface Algorithm Simulation Robot

. Develop the algorithm in MATLAB using image processing tools

. Run tests to ensure the algorithm behaves as expected

24 Step 3 : Test Algorithm in Simulator

Test and Test and Explore Robot Develop Refine in Refine on Real Interface Algorithm Simulation Robot

25 Step 4 : Test your algorithm with actual robot

Test and Test and Explore Robot Develop Refine in Refine on Real Interface Algorithm Simulation Robot

26 Next Step: Deploying your Algorithm

Create a Generate a Generate ROS Stand Alone shared library Node with Executable with MATLAB Simulink with MATLAB Coder™ Compiler™

Determine deployment methods based on application

27 Optional Products for Robotics Applications Development

Image Processing Computer Vision System Toolbox™ Toolbox™ . High-speed video I/O . Contrast adjustment . Point Cloud processing . Geometric transformations . Tracking . Various filters . Stereovision . Segmentation . Object analysis

Image Acquisition Toolbox™ Statistics and Machine Learning . Image capture from standard H/W Toolbox™ . Analog, Camera Link, DCAM, . Multivariate statistics GigE Vision, USB camera, etc . Probability distribution . Kinect Support . Machine learning . Experimental design . Statistical process control

28 Optional Products for Robotics Applications Development

Control System Toolbox™ Simulink Design Optimization™ . Linear analysis . Model parameter estimation from . Classical test data control design . Optimization of . Modern parameters control design . Response optimization

Robust Control Toolbox™ Simulink Control Design™ . Robust control design . Automatic tuning of PID . Automatic tuning Controller blocks of gain-scheduled . Linearization of controllers Simulink models . Continuous- Discrete time conversions

29 A New MathWorks Solution for Robotics Development Robotics System Toolbox ROS . 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

Integrate MATLAB with ROS using Robotics System Toolbox

30 Conclusion

Log file Message communication Process with Simulator logged data Message Robotics communication with robots System Toolbox Deploy on Hardware/PIL MATLAB/Simulink Algorithm/Controls Visualization / development Data analysis (data processing, visualization, logging, robot controls, etc.)

MATLAB/Simulink Tools to Increase Efficiency of Robotics Development

31 Training and Consulting Services

 Training Services Investment Effectiveness  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 によるロボティクス) 32 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!

33 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.

34