{"id":2008,"date":"2024-02-07T16:58:22","date_gmt":"2024-02-07T21:58:22","guid":{"rendered":"https:\/\/flight.utias.utoronto.ca\/?page_id=2008"},"modified":"2025-03-01T19:59:26","modified_gmt":"2025-03-02T00:59:26","slug":"our-tutorials","status":"publish","type":"page","link":"https:\/\/flight.utias.utoronto.ca\/index.php\/our-tutorials","title":{"rendered":"Open-source Resources And Tutorials"},"content":{"rendered":"\n<h5 class=\"wp-block-heading\">Browse a collection of tutorials and supplemental learning material developed by members of the Flight Systems and Control Lab!<\/h5>\n\n\n\n<p><strong>Click this <a href=\"https:\/\/github.com\/FSC-Lab\" data-type=\"URL\" data-id=\"https:\/\/github.com\/FSC-Lab\">link<\/a> to view the FSC official Github page.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GitHub Repositories<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><a href=\"https:\/\/github.com\/LonghaoQian\/AnimationModels\" data-type=\"URL\" data-id=\"https:\/\/github.com\/LonghaoQian\/AnimationModels\"><strong>Flight Animation Framework for MATLAB\/Simulink Visualization<\/strong><\/a><\/p>\n\n\n\n<p>A concrete and ready-to-use visualization package written in Matlab for flight simulation.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Provides a compact and easy way to generate animations from flight simulation data.<\/li>\n\n\n\n<li>Encapsulates and concentrates individual 3D rendering functions into a single function to provide a clean and concrete interface.<\/li>\n\n\n\n<li>Click this <a href=\"https:\/\/flight.utias.utoronto.ca\/index.php\/flight-animation-framework-for-matlab-simulink\">link<\/a> to view a detailed description<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/github.com\/LonghaoQian\/AnimationModels\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/circular_arc_trajectory-3-1024x500.gif\" alt=\"\" class=\"wp-image-2056\" srcset=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/circular_arc_trajectory-3-1024x500.gif 1024w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/circular_arc_trajectory-3-300x147.gif 300w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/circular_arc_trajectory-3-768x375.gif 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><a href=\"https:\/\/github.com\/LonghaoQian\/optitrack_broadcast?tab=readme-ov-file\"><strong>OptiTrack Processing Package<\/strong><\/a><\/p>\n\n\n\n<p>The OptiTrack ROS node is responsible for processing the position and attitude feedback for quadrotor experiments in&nbsp;<a href=\"https:\/\/flight.utias.utoronto.ca\/index.php\/payload\/\">Flight System and Control Lab (FSC)<\/a>. The OptiTrack node must be downloaded and installed on the ground station desktop\/computer. This package supports an arbitrary number of rigid bodies defined in the argument of the launch file. The names of the rigid bodies should be the same as the ones used in the Motive software.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/github.com\/LonghaoQian\/optitrack_broadcast?tab=readme-ov-file\"><img loading=\"lazy\" decoding=\"async\" width=\"858\" height=\"492\" src=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/Screenshot-2024-02-19-140310-1.png\" alt=\"\" class=\"wp-image-2057\" srcset=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/Screenshot-2024-02-19-140310-1.png 858w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/Screenshot-2024-02-19-140310-1-300x172.png 300w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/02\/Screenshot-2024-02-19-140310-1-768x440.png 768w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><a href=\"https:\/\/flight.utias.utoronto.ca\/index.php\/quadrotor-based-slung-payload-transportation-gazebositl-simulation-package-v1-0\"><strong>Quadrotor-Based Slung Payload Transportation Gazebo<br>SITL Simulation Package<\/strong> V1.0<\/a><\/p>\n\n\n\n<p>This package offers a comprehensive guide and codebase for conducting software-in-the-loop (SITL) simulations of slung payload transportation with quadrotors. It includes detailed instructions on installing, compiling, and utilizing the control code and launch scripts. Read this <a href=\"https:\/\/flight.utias.utoronto.ca\/index.php\/quadrotor-based-slung-payload-transportation-gazebositl-simulation-package-v1-0\">page<\/a> for detialed guide to use the repository. Github link: <a href=\"https:\/\/github.com\/LonghaoQian\/px4_command\">https:\/\/github.com\/LonghaoQian\/px4_command<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1831\" height=\"1038\" src=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2025\/03\/gazebo.png\" alt=\"\" class=\"wp-image-2236\" srcset=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2025\/03\/gazebo.png 1831w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2025\/03\/gazebo-300x170.png 300w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2025\/03\/gazebo-1024x581.png 1024w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2025\/03\/gazebo-768x435.png 768w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2025\/03\/gazebo-1536x871.png 1536w\" sizes=\"auto, (max-width: 1831px) 100vw, 1831px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong><a href=\"https:\/\/github.com\/FSC-Lab\/Multiplayer-Target-Defense-Game-Between-Quadrotors-Use-Case-Studies\" data-type=\"URL\" data-id=\"https:\/\/github.com\/FSC-Lab\/Multiplayer-Target-Defense-Game-Between-Quadrotors-Use-Case-Studies\">Multiplayer Target Defense Game Between Quadrotors Use Case Studies<\/a><\/strong><\/p>\n\n\n\n<p>This repository hosts the Python and MATLAB simulation code for my final year thesis titled &#8220;Multiplayer Target Defense Game Between Quadrotors: Use Case Studies&#8221;. It explores a defense game scenario with two defenders and a faster intruder drone, with annotated code and organization derived from Dr. Fu&#8217;s paper &#8220;Optimal Solution of a Target Defense Game with Two defenders and a Faster Intrude. <\/p>\n\n\n\n<p>Click this <a href=\"https:\/\/github.com\/FSC-Lab\/Multiplayer-Target-Defense-Game-Between-Quadrotors-Use-Case-Studies\" data-type=\"URL\" data-id=\"https:\/\/github.com\/FSC-Lab\/Multiplayer-Target-Defense-Game-Between-Quadrotors-Use-Case-Studies\">link<\/a> to view the online repository.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"697\" height=\"616\" src=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/04\/trajectory_defender.png\" alt=\"\" class=\"wp-image-2110\" style=\"width:461px;height:406px\" srcset=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/04\/trajectory_defender.png 697w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/04\/trajectory_defender-300x265.png 300w\" sizes=\"auto, (max-width: 697px) 100vw, 697px\" \/><figcaption class=\"wp-element-caption\">Trajectories of Defender 1 (red), Defender 2 (blue), and the Intruder (green), demonstrating a successful interception with behavior resembling distance maintaining. The initial conditions for the drones are given by their respective velocities, with the defenders\u2019 velocity set to 1 m\/s, and the intruder\u2019s set to 1.5 m\/s.<\/figcaption><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Open Courses<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>How to CMake: An FSC Tutorial.<\/strong><\/p>\n\n\n\n<p>This is an open CMake tutorial offered by Dr. Longhao Qian from the Flight Systems and Control Lab. This tutorial covers basic and advanced CMake commands and procedures to create a complete CMake project.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=wbbXhoLE8n4&amp;list=PLGJ05aPUKXH_eLL4xMUT47uQvmVLirPUP\">Click here to watch the videos on YouTube<\/a>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.youtube.com\/watch?v=wbbXhoLE8n4&amp;list=PLGJ05aPUKXH_eLL4xMUT47uQvmVLirPUP\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"579\" src=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/03\/CMake1-1024x579.jpg\" alt=\"\" class=\"wp-image-2077\" srcset=\"https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/03\/CMake1-1024x579.jpg 1024w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/03\/CMake1-300x170.jpg 300w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/03\/CMake1-768x434.jpg 768w, https:\/\/flight.utias.utoronto.ca\/wp-content\/uploads\/2024\/03\/CMake1.jpg 1183w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\"><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Browse a collection of tutorials and supplemental learning material developed by members of the Flight Systems and Control Lab! Click this link to view the FSC official Github page. GitHub Repositories Flight Animation Framework for MATLAB\/Simulink Visualization A concrete and <span class=\"readmore\"><a href=\"https:\/\/flight.utias.utoronto.ca\/index.php\/our-tutorials\">Continue Reading &#8230;<\/a><\/span><\/p>\n","protected":false},"author":14,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2008","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/pages\/2008","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/comments?post=2008"}],"version-history":[{"count":17,"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/pages\/2008\/revisions"}],"predecessor-version":[{"id":2243,"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/pages\/2008\/revisions\/2243"}],"wp:attachment":[{"href":"https:\/\/flight.utias.utoronto.ca\/index.php\/wp-json\/wp\/v2\/media?parent=2008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}