MATLAB, Robotics, and ROS

Contents MATLAB VERSION R2020a ...... 1 ROS and Robotics System Toolbox ...... 2 ROS Toolbox Version 1.1 (R2020a)...... 2 Robotics System Toolbox Version 3.1 (R2020a) ...... 2 >> help robotics Robotics System Toolbox - Contents ...... 2 ROS TOOLBOX - CONTENTS ...... 5 MATLAB System Toolbox Video 1 1:56 ...... 7 What is Robotics System Toolbox? - Robotics System Toolbox Overview ...... 7 MATLAB Robot System Toolbox Video 2 2:06 ...... 7 What Is ROS Toolbox? ...... 8 ROS TOOLBOX VIDEO 1 2:04 ...... 8 ROS 1, ROS 2 and Simulation of Turtlebot 3. Use of state machine...... 8 Getting Started with ROS: Integrating with MATLAB/Simulink ...... 9 ROS TOOLBOX VIDEO 2 38:23 ...... 9

MATLAB VERSION R2020a

------

MATLAB Version: 9.8.0.1417392 (R2020a) Update 4

MATLAB License Number: 553000

Operating System: Pro Version 10.0 (Build 18362)

Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode

------

MATLAB Version 9.8 (R2020a)

Simulink Version 10.1 (R2020a)

Control System Toolbox Version 10.8 (R2020a)

DSP System Toolbox Version 9.10 (R2020a)

1

Data Acquisition Toolbox Version 4.1 (R2020a)

Fuzzy Logic Toolbox Version 2.7 (R2020a)

Navigation Toolbox Version 1.1 (R2020a)

Optimization Toolbox Version 8.5 (R2020a)

ROS and Robotics System Toolbox

ROS Toolbox Version 1.1 (R2020a) Robotics System Toolbox Version 3.1 (R2020a)

Signal Processing Toolbox Version 8.4 (R2020a)

Simulink Control Design Version 5.5 (R2020a)

Stateflow Version 10.2 (R2020a)

Symbolic Math Toolbox Version 8.5 (R2020a)

>>

>> help robotics Robotics System Toolbox - Contents

Version 3.1 (R2020a) 18-Nov-2019

Robot Manipulators

generalizedInverseKinematics - Create multiconstraint inverse kinematics solver

inverseKinematics - Create inverse kinematics solver

rigidBodyJoint - Create a joint

rigidBody - Create a rigid body

rigidBodyTree - Create a tree-structured robot

interactiveRigidBodyTree - Interact with rigid body tree robot models

importrobot - Import rigid body tree model from URDF file, text, or Simscape Multibody model

loadrobot - Load robot model as rigidBodyTree

jointSpaceMotionModel - Model rigid body tree motion given joint-space inputs

taskSpaceMotionModel - Model rigid body tree motion given task-space reference inputs

2

Collision Checking

collisionBox - Create a collision geometry as a box primitive

collisionCylinder - Create a collision geometry as a cylinder primitive

collisionSphere - Create a collision geometry as a sphere primitive

collisionMesh - Create a collision geometry as a convex mesh

checkCollision - Report collision status between two convex geometries

Mobile

ackermannKinematics - Create car-like steering vehicle model

bicycleKinematics - Create bicycle vehicle model

differentialDriveKinematics - Create differential-drive vehicle model

unicycleKinematics - Create unicycle vehicle model

binaryOccupancyMap - Create an occupancy grid map with binary values

controllerPurePursuit - Create a controller to follow a set of waypoints

mobileRobotPRM - Create probabilistic roadmap path planner

stateEstimatorPF - Create a particle filter state estimator

rangeSensor - Simulate range-bearing sensor readings

Small UAVs

roboticsAddons - Install add-on for UAV development

Trajectory Generation

cubicpolytraj - Generate third-order polynomial trajectories through multiple waypoints

quinticpolytraj - Generate fifth-order polynomial trajectories through multiple waypoints

bsplinepolytraj - Generate multi-axis trajectories through control points using B-splines

transformtraj - Generate trajectory between two homogeneous transforms

trapveltraj - Generate piecewise polynomials through multiple waypoints using trapezoidal velocity profiles

3

rottraj - Generate trajectory between two orientations

Coordinate Transformations

axang2quat - Convert axis-angle rotation representation to quaternion

axang2rotm - Convert axis-angle rotation representation to rotation matrix

axang2tform - Convert axis-angle rotation representation to homogeneous transform

cart2hom - Convert Cartesian coordinates to homogeneous coordinates

eul2quat - Convert Euler angles to quaternion

eul2rotm - Convert Euler angles to rotation matrix

eul2tform - Convert Euler angles to homogeneous transformation

hom2cart - Convert homogeneous coordinates to Cartesian coordinates

quat2axang - Convert quaternion to axis-angle rotation representation

quat2eul - Convert quaternion to Euler angles

quat2rotm - Convert quaternion to rotation matrix

quat2tform - Convert quaternion to homogeneous transformation

rotm2axang - Convert rotation matrix to axis-angle representation

rotm2eul - Convert rotation matrix to Euler angles

rotm2quat - Convert rotation matrix to quaternion

rotm2tform - Convert rotation matrix to homogeneous transform

tform2axang - Extract axis-angle rotation from homogeneous transformation

tform2eul - Extract Euler angles from homogeneous transformation

tform2quat - Extract quaternion from homogeneous transformation

tform2rotm - Extract rotation matrix from homogeneous transformation

tform2trvec - Extract translation vector from homogeneous transformation

trvec2tform - Convert translation vector to homogeneous transformation

Angular Operations

angdiff - Calculate difference between two angles

Utilities

4

plotTransforms - Plot 3-D transforms described by translations and rotations

roboticsAddons - Install add-ons for robotics

rateControl - Execute loop at a fixed frequency

View examples for Robotics System Toolbox.

Robotics System Toolbox Documentation

ROS TOOLBOX - CONTENTS

Contents of ros package:

Bag - This class represents an interface for reading a rosbag

BagSelection - This class represents a view of messages within a rosbag

Core - Launches a ros core

Message - Base class for all ros messages in MATLAB

Node - Launch a ros node and connect to the specified ros master.

ParameterTree - Create an object to access the ros parameter server

Publisher - Publish messages on a topic

Rate - Execute a loop at a fixed frequency

ServiceClient - Create a ros service client

ServiceServer - Create a ros service server object

SimpleActionClient - Create a simple ros action client

Subscriber - Subscribe to messages on a topic

TransformationTree - Receive, send, and apply ros transformations

createSimulinkBus - Create Simulink bus corresponding to a ros message

bag - ros.bag is a package.

codertarget - ros.codertarget is a package.

internal - ros.internal is a package.

msg - ros.msg is a package.

msggen - ros.msggen is a package.

ros2 - ros.ros2 is a package.

5

slros - ros.slros is a package.

slros2 - ros.slros2 is a package.

sltoolstrip - ros.sltoolstrip is a package.

ROS Toolbox Documentation

6

MATLAB Robot System Toolbox Video 1 1:56 https://www.mathworks.com/products/robotics.html

What is Robotics System Toolbox? - Robotics System Toolbox Overview 12,672 views •Mar 16, 2015 2:06 Older version

MATLAB Robot System Toolbox Video 2 2:06

https://www.youtube.com/watch?v=eG0FrNV9I7c

7

MATLAB AND ROS TOOLBOX 2020 What Is ROS Toolbox? 2,929 views •Oct 9, 2019 2:04

ROS TOOLBOX VIDEO 1 2:04 https://www.youtube.com/watch?v=cOuh3AGbeeI ROS Toolbox allows you to connect MATLAB® and Simulink® to the Robot – both ROS and ROS 2 – for design and development of robotics and autonomous systems. You can connect to an existing ROS network to explore available topics, services, and actions. This allows you to send commands to, and receive data from, any simulators, hardware, or software nodes on the ROS network. The toolbox also includes MATLAB functions and Simulink blocks to import, analyze, and play back ROS data recorded in rosbag files. ROS Toolbox supports C++ code generation (with Simulink Coder™), enabling you to automatically generate ROS nodes from your design and deploy to simulated or physical hardware. Simulink lets you view messages and change parameters while your model is running on hardware. For more information on how ROS Toolbox can help you integrate MATLAB and Simulink into development workflows using ROS, please visit the ROS Toolbox product page on mathworks.com.

ROS 1, ROS 2 and Simulation of Turtlebot 3. Use of state machine. First, we will introduce the workflows for connecting MATLAB/Simulink and ROS using the ROS Toolbox™. You will learn software features, templates, and best practices to help you implement common ROS programming constructs in MATLAB and Simulink. You will also learn how to combine MATLAB, Simulink, and Stateflow as modeling tools for different types of algorithms within a Simulink block diagram. Finally, you will see a demonstration of the concepts above through an autonomous object tracking example. This example implements best practices with MATLAB and Robotics System Toolbox. It also highlights the modularity of MATLAB and ROS by showing the algorithm using real and simulated TurtleBot® robotic platforms, as well as a webcam. Two new products were introduced in 2 to complement the capabilities of Robotics System Toolbox: Navigation Toolbox and ROS Toolbox.

8

Getting Started with ROS: Integrating with MATLAB/Simulink

239 views •Jul 14, 2020 38:23

ROS TOOLBOX VIDEO 2 38:23

First, we will introduce the workflows for connecting MATLAB/Simulink and ROS using the ROS Toolbox™. https://www.youtube.com/watch?v=wgxNt9P_gTE

9