├── Icons ├── MRT.png ├── RP_icon.PNG └── whitepaper.png ├── SECURITY.md ├── license.txt └── README.md /Icons/MRT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mathworks-robotics/awesome-robotics-teaching/HEAD/Icons/MRT.png -------------------------------------------------------------------------------- /Icons/RP_icon.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mathworks-robotics/awesome-robotics-teaching/HEAD/Icons/RP_icon.PNG -------------------------------------------------------------------------------- /Icons/whitepaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mathworks-robotics/awesome-robotics-teaching/HEAD/Icons/whitepaper.png -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Reporting Security Vulnerabilities 2 | 3 | If you believe you have discovered a security vulnerability, please report it to 4 | [security@mathworks.com](mailto:security@mathworks.com). Please see 5 | [MathWorks Vulnerability Disclosure Policy for Security Researchers](https://www.mathworks.com/company/aboutus/policies_statements/vulnerability-disclosure-policy.html) 6 | for additional information. -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2022, The MathWorks, Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are 6 | met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | * Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the distribution 13 | * Neither the name of the The MathWorks, Inc. nor the names 14 | of its contributors may be used to endorse or promote products derived 15 | from this software without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Robotics Teaching with MATLAB and Simulink 2 | [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 3 | [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/petercorke/RVC3-MATLAB/graphs/commit-activity) 4 | 5 | 6 | Collection of curriculum and useful examples for robotics and autonomous systems education using MATLAB® and Simulink® for different stages of learning. 7 | 8 | Content classification: 9 | * **(Beginner)** Suggested for anyone new to MATLAB/Simulink and new to robotics (STEM Education) 10 | * **(Intermediate)** Suggested for those with foundational engineering knowledge and basic MATLAB skills ([MATLAB Onramp Recommended](https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted)) 11 | * **(Advanced)** Recommended for anyone with working knowledge in robotics theory, programming experience, and basic MATLAB skills 12 | 13 | Looking for content specific to robotics applications? Check out the [Awesome-MATLAB-Robotics GitHub repository](https://github.com/mathworks-robotics/awesome-matlab-robotics) instead. 14 | 15 | 16 | **NOTE:** *For content additions open a GitHub Issue on the repository* 17 | 18 | 19 | 20 | ## Overview Resources 21 | | (Beginner) | (Intermediate) | (Advanced) | 22 | | :---: | :---: | :---: | 23 | | Learning Robotics Basics with MATLAB (Video) | Robotics Education with MATLAB (Video)| Teaching Robotics with MATLAB (White-Paper) | 24 | | [![Watch the video](https://img.youtube.com/vi/rn5nEkMbsnI/hqdefault.jpg)](https://youtu.be/rn5nEkMbsnI) | [![Watch the video](https://img.youtube.com/vi/7W54MZvX75g/hqdefault.jpg)](https://youtu.be/7W54MZvX75g) | [![Watch the video](Icons/whitepaper.png)](https://www.mathworks.com/campaigns/offers/next/teaching-robotics.html) | 25 | 26 | ## Featured Books 27 | * [Robotics, Vision and Control 3rd Edition (Peter Corke, Witold Jachimczyk, Remo Pillat)](https://github.com/petercorke/RVC3-MATLAB) 28 | Front cover 978-3-031-07261-5_5208 29 | 30 | ## Educational Hardware 31 | * [Quanser Pick and Place labs](https://www.mathworks.com/matlabcentral/fileexchange/125250-quanser-qarm-pick-and-place-using-mathworks-toolboxes) 32 | * [VEX Robotics V5 support](https://www.mathworks.com/matlabcentral/fileexchange/68649-simulink-coder-support-package-for-vex-edr-v5-robot-brain) 33 | * [Turtlebot support](https://www.mathworks.com/matlabcentral/fileexchange/55578-ros-toolbox-support-package-for-turtlebot-based-robots) 34 | * [ROS on Raspberry Pi](https://www.mathworks.com/help/simulink/supportpkg/raspberrypi_ref/getting-started-with-robot-operating-system-ros-on-raspberry-pi-r.html) 35 | 36 | ## Learning Topics 37 | ### Introduction to Robotics 38 | [(Beginner) Robotics Playground [Curriculum]](https://www.mathworks.com/matlabcentral/fileexchange/67157-robotics-playground?s_tid=srchtitle) 9 Lessons covering how to use distance sensors, encoders, limit switches, and MATLAB and Simulink basics. 39 | 40 | [(Beginner) Mobile Robotics Tutorials [Curriculum | Videos]](https://www.mathworks.com/videos/series/student-competition-mobile-robotics-training.html) 5 Video tutorials teaching basics programming skills and controls theory for autonomous path navigation. 41 | 42 | [(Intermediate) Control of Mobile Robots [Curriculum]](https://www.mathworks.com/academia/courseware/control-mobile-robots.html) 7 Lessons covering controllers, PID, Obstacle avoidance, controller arbitration, wall following, and complete navigation system. 43 | 44 | [(Intermediate) Applied Autonomous Robots I [Curriculum]](https://www.mathworks.com/academia/courseware/applied-autonomous-robots-1.html) 9 Lessons and exercises including basic code development, kinematics, perception, control, trajectories, potential fields, and a computer vision teaser. 45 | 46 | [(Advanced) Applied Autonomous Robots II [Curriculum]](https://www.mathworks.com/academia/courseware/applied-autonomous-robots-2.html) 9 Lessons covering basics of computer vision, physics of color, visual servoing, filtering, camera calibration, K-means clustering and Kalman filters. 47 | 48 | [(Advanced) Robotics Playground Expansion Pack [Curriculum]](https://www.mathworks.com/matlabcentral/fileexchange/80080-robotics-playground-expansion-pack?s_tid=srchtitle) 5 Lessons on Robot Navigation, Robot Manipulation, Contact Modeling, Path Planning implemented in a 3D simulator with realistic physics. 49 | 50 | 51 | ### Physics and Mechanics 52 | 53 | 54 | [(Beginner) Physics Course with Symbolic Math [Curriculum]](https://www.mathworks.com/matlabcentral/fileexchange/68799-physics-course-with-symbolic-math-toolbox-and-live-editor) Chapter 4 includes live script covering classical mechanics 55 | 56 | [(Intermediate) Electromechanical Systems [Curriculum]](https://www.mathworks.com/academia/courseware/electromechanical-engineering-systems.html) 13 Lessons covering electromechanics in depth. Some topics include digitization, electrical systems, control systems basics, filter design, PWM, physical modeling, discretization,and DC motors. 57 | 58 | [(Advanced) Modeling, Design, and Control of Robotic Mechanisms - Kyungnam University (Curriculum)](https://www.mathworks.com/academia/courseware/modelling-design-control-robotic-mechanisms.html) 4 Topics covering planar robot dynamics, 2-DOF simulation, real-time control and an Arduino project for a walking robot. 59 | 60 | 61 | 62 | ### Controls and Estimation 63 | 64 | [(Beginner) Controls Tutorials - University of Michigan (Curriculum)](https://ctms.engin.umich.edu/CTMS/index.php?aux=Home) 65 | 70+ Control system tutorials including system modeling and analysis, controller design and analysis, simulation, and physical modeling, for 8 applications (motors, automobiles, aircraft, pendulums, etc). 66 | 67 | [(Beginner) Transfer Function Analysis of Dynamic Systems (Curriculum)](https://www.mathworks.com/academia/courseware/transfer-function-analysis.html) 68 | 4 lessons and live scripts covering transfer functions, pole-zero and frequency domain analysis. 69 | 70 | [(Beginner) Control Design Onramp with Simulink (Interactive Tutorials)](https://matlabacademy.mathworks.com/details/control-design-onramp-with-simulink/controls) 71 | 1-Hour interactive tutorial covering the basics of plant modeling, linearization, feedback control and PID tuning. 72 | 73 | [(Intermediate) Control of Mobile Robots (Curriculum)](https://www.mathworks.com/academia/courseware/control-mobile-robots.html) 74 | 7 Lessons covering controllers, PID, Obstacle avoidance, controller arbitration, wall following and complete navigation system. 75 | 76 | [(Intermediate) Embedded Control and Mechatronics - Southern Illinois University (Curriculum)](https://www.mathworks.com/academia/courseware/embedded-control-mechatronics.html) 77 | 14 Lectures and 2 projects covering, dynamic system modeling, system identification, simulation of nonlinear systems, analysis of linear control systems, lead-lag control, PID, LQR, optimization-based control, and LQG. Projects use Arduino for hardware implementation. 78 | 79 | [(Advanced) Feedback linearization and nonlinear control of two link robots [Example]](https://www.mathworks.com/matlabcentral/fileexchange/115365-feedback-linearization-control-two-link-robot-using-matlab?s_tid=srchtitle) 80 | Simulation of a two-link robot corresponding to Example 6.2 of Applied Nonlinear Control by Slotine. 81 | 82 | [(Advanced) Reinforcement Learning with MATLAB (Curriculum)](https://www.mathworks.com/matlabcentral/fileexchange/111460-reinforcement-learning-rl-with-matlab) 83 | 4 Learning Modules on reinforcement learning covering Q-learning for MDP, Stochastic Gridwrold with DQN, thermal control with DDPG Agent, and robot walking. 84 | 85 | ### Sensing and Perception 86 | 87 | [(Beginner) Intro to Image Processing - University of Wisconsin-Madison](https://serc.carleton.edu/teaching_computation/workshop_2020/activities/239248.html) 88 | This short project introduces students to image processing with MATLAB including importing images from the web, color transformations, circle finding, and edge finding. 89 | 90 | [(Beginner) Getting Started with Perception [Videos | Examples]](https://www.mathworks.com/videos/series/making-vehicles-and-robots-see-getting-started-with-perception-for-students.html) 91 | Video tutorials and examples for: 92 | - Basic Image Processing 93 | - Image Segmentation 94 | - Feature Matching and Tracking 95 | - Point-Cloud Processing 96 | 97 | [(Beginner) Image Processing Onramp with MATLAB](https://matlabacademy.mathworks.com/details/image-processing-onramp/imageprocessing) 98 | 2-Hour interactive course covering image handling in MATLAB, image segmentation, pre and post processing techniques, classification, and batch processing. 99 | 100 | [(Intermediate) Computer Vision Onramp (Self-Paced Tutorials)](https://matlabacademy.mathworks.com/details/computer-vision-onramp/orcv) 101 | 2-Hour interactive tutorial covering processing of video data, feature extraction and matching, object detection, and tracking. 102 | 103 | [(Intermediate) Image processing with MATLAB (Self-paced Course)](https://matlabacademy.mathworks.com/details/image-processing-with-matlab/mlip) 104 | 11-Hour interactive tutorial covering working with images, segmentation based on color and texture, object detection, edge and shape detection, batch processing, and image registration. 105 | 106 | [(Advanced) Deep Learning Onramp (Self-Paced Course)](https://matlabacademy.mathworks.com/details/deep-learning-onramp/deeplearning) 107 | 2-Hour interactive tutorial covering usage of pre-trained neural networks, image management, and transfer learning for classification. 108 | 109 | 110 | ### Programming and Embedded Computing 111 | 112 | [(Beginner) Intro to MATLAB Programming (Self-Paced Course)](https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted) 113 | 2-Hour Introduction to programming tutorial using MATLAB. Covering programming environment, relational operators, arrays, vectors, matrices, functions, plotting, and data import. 114 | 115 | [(Intermediate) MATLAB and Simulink ROS Tutorials [Curriculum]](https://www.mathworks.com/matlabcentral/fileexchange/118630-matlab-and-simulink-ros-tutorials) 116 | 9 Lessons with hands-on projects teaching the basics of interacting with robots powered by ROS (Robot Operating System). 117 | 118 | [(Advanced) Getting Started with MATLAB, Simulink and ROS [Examples | Videos | GitHub]](https://github.com/mathworks-robotics/getting-started-ros) 119 | Examples and video tutorials on: 120 | - Using MATLAB with ROS 121 | - Using Simulink with ROS 122 | - Automatic Code Generation for ROS Nodes 123 | - Distributed Computing Using ROS 124 | 125 | 126 | ### Robot Intelligence 127 | **Navigation, Localization, Mapping and SLAM** 128 | 129 | [(Beginner) Introduction to Mobile Robotics (Self-paced Tutorials)](https://www.mathworks.com/videos/series/student-competition-mobile-robotics-training.html) 130 | 5 Video tutorials with accompanying simualtions covering robot control, PID design, line following, obstacle detection and path navigation. 131 | 132 | [(Beginner) Navigation Stack Templates for Mobile Robots [Examples | Videos]](https://www.mathworks.com/matlabcentral/fileexchange/95998-autonomous-navigation-for-mobile-robots-and-ugv?s_tid=srchtitle) 133 | Reference application and examples for: 134 | - Mapping 135 | - Path Following 136 | - Path Planning 137 | - Trajectory Generation 138 | - Monte Carlo Localization 139 | - SLAM 140 | 141 | [(Intermediate) Localization and Kalman Filters [Curriculum]](https://www.mathworks.com/matlabcentral/fileexchange/109485-lessons-on-mobile-robot-localization-and-kalman-filters?s_tid=srchtitle) 142 | 6 Lessons explaining the basics of landmark-based robot localization including: Sensor processing, robot control, localization and kalman filter theory, and ROS implementation. 143 | 144 | **Manipulation** 145 | 146 | [(Beginner) Robotic Manipulators Course Modules (Curriculum)](https://www.mathworks.com/matlabcentral/fileexchange/130124-robotic-manipulators) Live script lessons covering fundamental concepts for manipulation. Covering point translations/rotations, transformation matrices, DH parameters and more. 147 | 148 | [(Beginner) Forward/Inverse Kinematics of 2-link robots [Interactive Example]](https://www.mathworks.com/matlabcentral/fileexchange/69892-inverse-kinematics-of-a-2-link-robot-arm?s_tid=srchtitle) 149 | Example and simulation explaining how to derive forward/inverse kinematics, and jacobian of a 2-link chain. With final project robot writing "hello" with end effector. 150 | 151 | [(Beginner) Workspace Analysis of Planar n-DOF robots [Example]](https://www.mathworks.com/matlabcentral/fileexchange/71136-plotworkspace-plot-workspace-of-n-dof-planar-robot?s_tid=srchtitle) 152 | Use this function to visualize and analyze the workspaces of planar robots from their DH parameters. 153 | 154 | [(Intermediate) Modeling and Control of Serial Manipulators using Dual-Quaternions](https://github.com/dqrobotics/learning-dqrobotics-in-matlab/tree/master/robotic_manipulators) 155 | 8 Lessons covering how to use Dual-Quaternion (DQ) robot representations for kinematic modeling and robot control. 156 | 157 | [(Intermediate) Designing Manipulator Algorithms [Examples | Simulations]](https://www.mathworks.com/matlabcentral/fileexchange/65316-designing-robot-manipulator-algorithms?s_tid=srchtitle) 158 | Reference application and examples demonstrating: 159 | - Task Space Control 160 | - Joint Space Control 161 | - Forward/Inverse Kinematics 162 | - Closed-loop control 163 | - Supervisory logic and task scheduling 164 | - Actuator Modeling 165 | 166 | **Planning** 167 | 168 | No content yet :'( Any suggestions for this topic? 169 | 170 | **Collaboration (Multi-Robot, Human-Machine)** 171 | 172 | [Modeling Multi-Agent Robot Systems - University of Washington](https://www.pronobis.pro/teaching/mas/) 173 | 4 Lectures and accompanying code examples covering deling multi-agent systems, graph theory for interaction, agreement protocol for rendezvous, and formation control. 174 | 175 | ### Machine Learning 176 | 177 | **Deep Learning and Reinforcement Learning** 178 | 179 | [(Beginner) Reinforcement Learning Onramp [Self-Paced Course]](https://matlabacademy.mathworks.com/details/reinforcement-learning-onramp/reinforcementlearning) 180 | 3 Hour interactive tutorial covering Reinforcement learning overview, defining environments, defining agents, and training agents. 181 | 182 | [(Intermediate) AI for Robotics Workshop [Examples]](https://github.com/mathworks-robotics/ai-robotics-workshop) 183 | Examples and lessons on how to develop a mobile robot using AI for perception and control in both simulation and with an Nvidia JetBot. 184 | 185 | [(Intermediate) Q-learning for 4-Link robot walker (Interactive Simulator)](https://www.mathworks.com/matlabcentral/fileexchange/72928-4-link-robotic-simulator?s_tid=srchtitle) Kinematic simulator for 4-link robot walking demonstrating practical programming, inverse kinematics, Q-learning for motion control, and simulated annealing. 186 | 187 | [(Intermediate) Reinforcement Learning with MATLAB (Curriculum)](https://www.mathworks.com/matlabcentral/fileexchange/111460-reinforcement-learning-rl-with-matlab) 4 Learning Modules on reinforcement learning covering Q-learning for MDP, Stochastic Gridwrold with DQN, thermal control with DDPG Agent, and robot walking. 188 | 189 | 190 | ## Instruction and Grading Tools 191 | * [Interactive features for teaching](https://www.mathworks.com/academia/online-teaching/instructional-resources.html) 192 | * [Online assignments and automatic grading](https://www.mathworks.com/academia/online-teaching/online-assessments.html) 193 | * Work on the cloud with [MATLAB Online](https://www.mathworks.com/products/matlab-online.html) and [MATLAB Drive](https://www.mathworks.com/products/matlab-drive.html) 194 | 195 | ## More content 196 | Didn't find what you were looking for? Try the following links to more teaching resources: 197 | * [MATLAB and Simulink Courseware search](https://www.mathworks.com/academia/courseware/search.html?q=&fq%5B%5D=courseware_discipline:support/robotics-1508&page=1) 198 | * [MATLAB File Exchange search](https://www.mathworks.com/matlabcentral/fileexchange/) 199 | 200 | *Did we miss something?* 201 | * Submit requests to add content by opening an issue in the repository 202 | 203 | Copyright 2022 The MathWorks, Inc. 204 | --------------------------------------------------------------------------------