<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Student Lounge</title>
	<atom:link href="https://blogs.mathworks.com/student-lounge/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogs.mathworks.com/student-lounge</link>
	<description>The student lounge blog focuses on student success stories.   Winning student teams share their knowledge and the MathWorks student programs team shares best practices and workflows using MATLAB and Simulink.</description>
	<lastBuildDate>Mon, 24 Aug 2026 18:14:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>
	<item>
		<title>Learn MATLAB &#8211; A Student&#8217;s Guide</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/08/24/learn-matlab-a-students-guide/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/08/24/learn-matlab-a-students-guide/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 24 Aug 2026 17:49:36 +0000</pubDate>
				<category><![CDATA[MATLAB]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13574</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/08/onramp-blog.gif" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

In today’s blog, we have Ben Pasquariello from the Student Programs team at MathWorks. He’ll walk us through some helpful MATLAB resources and tips for getting started.Over to you,... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/08/24/learn-matlab-a-students-guide/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-style: italic;">In today’s blog, we have Ben Pasquariello from the Student Programs team at MathWorks. He’ll walk us through some helpful MATLAB resources and tips for getting started.Over to you, Ben&#8230;</span></div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div></div>
<div></div>
<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Hi everyone! I&#8217;m Ben,I manage our </span><a href="https://www.mathworks.com/academia/students/student-ambassadors.html"><span class="_richTextNode">MATLAB Student Ambassador program</span></a><span class="_richTextNode">, which is a community of 100+ students at universities around the world. One thing I hear from them again and again is that when students first install or use MATLAB, they don&#8217;t know where to start or which resources are the most helpful. There&#8217;s a lot out there, and it&#8217;s not always obvious what&#8217;s useful when you&#8217;re brand new.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">So whether you&#8217;ve just been assigned MATLAB for the first time, or you&#8217;ve been using it for a while and want to get more out of it, this blog is for you. </span><a href="https://www.mathworks.com/company.html"><span class="_richTextNode">MATLAB is used by over 5 million people</span></a><span class="_richTextNode"> across engineering, science, and beyond, so whatever field you end up in, there&#8217;s a good chance you&#8217;ll use it again after university. The good news is it gets a lot easier once you know where to start.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">I&#8217;ve put together a companion YouTube video too (see below), if you&#8217;d rather watch than read. Otherwise, here&#8217;s everything I&#8217;d tell a student sitting down with MATLAB for the first time.</span></div>
<div style="margin-bottom: 20px; padding-bottom: 4px;">
<div style="margin: 0px; padding: 10px 0px 10px 5px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: bold; text-align: start;">
<div style="margin: -1px 0px 0px; padding: 10px 0px 10px 7px; line-height: 19px; min-height: 0px; white-space: normal; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: start;">
<div><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/KGn5m-LD9Ng?si=PHPVv1aNL_rKcd6Q" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
<div style="font-weight: 600; margin-bottom: 4px;">Table of Contents</div>
<p><a href="#TMP_90d3"><span class="_richTextNode">Step 1: Getting familiar with the MATLAB interface</span></a><br />
<a href="#TMP_3e2c"><span class="_richTextNode">Step 2: Learn the Fundamentals</span></a><br />
<a href="#TMP_6972"><span class="_richTextNode">Step 3: Know Where to Get Support</span></a><br />
<a href="#TMP_7627"><span class="_richTextNode">1. Built-in help commands, Search bar, and Help Button</span></a><br />
<a href="#TMP_1b1d"><span class="_richTextNode">2. MATLAB Copilot</span></a><br />
<a href="#TMP_1b05"><span class="_richTextNode">3. Student Resource Hubs</span></a><br />
<a href="#TMP_6c3b"><span class="_richTextNode">4. MATLAB Answers</span></a><br />
<a href="#TMP_0a6f"><span class="_richTextNode">5. Cheat sheets</span></a><br />
<a href="#TMP_1142"><span class="_richTextNode">Let&#8217;s Recap Your First Week: A Day-by-Day Plan</span></a><br />
<a href="#TMP_2a40"><span class="_richTextNode">Step 4: Build Habits That Keep You Improving</span></a><br />
<a href="#TMP_980c"><span class="_richTextNode">Step 5: Go Further — Competitions, Projects, and Toolboxes</span></a><br />
<a href="#TMP_4c52"><span class="_richTextNode">Student Programs:</span></a><br />
<a href="#TMP_5d57"><span class="_richTextNode">Challenge Projects:</span></a><br />
<a href="#TMP_7ed2"><span class="_richTextNode">Toolboxes:</span></a><br />
<a href="#TMP_6182"><span class="_richTextNode">Explore MATLAB in Your Field:</span></a></p>
</div>
</div>
</div>
<h2 id="TMP_1379" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: #1171be; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Step 1: Get Access</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">First thing: check whether your university has a Campus-Wide offering of MATLAB. A lot of students miss this, but many schools give you full access to MATLAB, Simulink, and 100+ toolboxes for free. Just </span><a href="https://www.mathworks.com/products/matlab/student.html"><span class="_richTextNode" style="font-weight: bold;">check your eligibility</span></a><span class="_richTextNode"> and sign up with your university email address. If your university does not have a license, you can purchase a discounted student license on this page as well (see MATLAB and Simulink Student Suite</span><span class="_richTextNode" style="text-decoration: underline;">)</span><span class="_richTextNode">. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Once you’re in, you can install </span><span class="_richTextNode" style="font-weight: bold;">MATLAB Desktop</span><span class="_richTextNode"> or use </span><a href="https://www.mathworks.com/products/matlab-online.html"><span class="_richTextNode" style="font-weight: bold;">MATLAB Online</span></a><span class="_richTextNode"> right in your browser. If you want a good starting example once you have MATLAB open, I recommend downloading </span><a href="https://www.mathworks.com/matlabcentral/fileexchange/171039-first-steps-in-matlab"><span class="_richTextNode">this sample Live Script</span></a><span class="_richTextNode">. Try following the instructions in the script to get comfortable with how to use live scripts. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><a href="https://www.mathworks.com/help/matlab/matlab_prog/create-live-scripts.html"><span class="_richTextNode" style="font-weight: bold;">Live Scripts</span></a><span class="_richTextNode"> let you mix code, outputs, and formatted text in one place, which is handy for assignments and lab reports. Fun fact: this blog was actually made with a MATLAB live script!</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 477px; height: 374px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_2.png" alt="" width="477" height="374" /><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 244px; height: 277px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_3.png" alt="" width="244" height="277" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span class="_richTextNode"> Want to code on the go? Download </span><a href="https://www.mathworks.com/products/matlab-mobile.html"><span class="_richTextNode" style="font-weight: bold;">MATLAB Mobile</span></a><span class="_richTextNode"> for iOS and Android.</span></div>
<h3 id="TMP_90d3" style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 24px; min-height: 0px; white-space: pre; color: #edb120; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Getting familiar with the MATLAB interface</span></h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">When you open MATLAB for the first time it can feel like a lot. Here&#8217;s a quick map of the key areas (see numbered image below for visual reference):</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold; font-style: italic; text-decoration: underline;">Note</span><span class="_richTextNode" style="font-style: italic;">:</span><span class="_richTextNode"> Your layout might look slightly different depending on your MATLAB release or settings. You can always adjust or </span><a href="https://www.mathworks.com/help/matlab/matlab_env/change-the-desktop-layout.html"><span class="_richTextNode">configure the Desktop</span></a><span class="_richTextNode"> to change what you see using the Home Tab &gt; Environment section &gt; Layout. You can also adjust your code output using the </span><span class="_richTextNode" style="font-weight: bold;">View</span><span class="_richTextNode"> tab in the MATLAB toolstrip (my output is set to be on the right below).</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Command Window (1):</span><span class="_richTextNode"> the panel at the bottom where you type and run commands directly. A good place to test things out quickly. Think of it like a scratchpad. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Editor/Live Editor (2):</span><span class="_richTextNode"> where you write and save your code. Regular scripts (.m files) are plain code, while Live Scripts (.mlx) let you combine code, results, and formatted text in one document, which is handy for assignments and lab reports. Anything longer than a few lines should go here. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Workspace (3):</span><span class="_richTextNode"> shows all the variables currently in memory. If you&#8217;re wondering where a variable went, check here first.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Files/Current Folder panel (4):</span><span class="_richTextNode"> on the left, shows your current folder and files. Make sure you&#8217;re working in the right folder or MATLAB won&#8217;t find your scripts.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Toolstrip (5):</span><span class="_richTextNode"> the ribbon across the top with tabs like Home, Plots, and Apps. Most things you need are in here.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">MATLAB Copilot (6):</span><span class="_richTextNode"> an AI assistant built into MATLAB that can help you write code, explain errors, and answer MATLAB questions (if your license includes it). We&#8217;ll cover this more in Step 3.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 1000px; height: 498px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_5.png" alt="" width="1000" height="498" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode"> Quick tip: Try </span><a href="https://www.mathworks.com/help/matlab/matlab_env/change-the-desktop-layout.html"><span class="_richTextNode">personalizing your MATLAB desktop</span></a><span class="_richTextNode"> early so it feels natural to you. You can rearrange, dock, or undock panels like the Command Window, Editor, and Workspace to suit how you work. And if you </span><a href="https://www.mathworks.com/help/matlab/matlab_env/change-desktop-colors-and-select-dark-theme.html"><span class="_richTextNode">prefer dark mode</span></a><span class="_richTextNode">, go to Home &gt; Settings &gt; MATLAB &gt; Appearance and pick a theme from the Desktop Theme list.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 715px; height: 512px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_7.gif" alt="" width="715" height="512" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 id="TMP_3e2c" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: #1171be; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Step 2: Learn the Fundamentals</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">My favorite getting started tip for new students is Onramps. </span><span class="_richTextNode" style="font-weight: bold;">Onramps</span><span class="_richTextNode"> are short, interactive courses designed to help you get started with a tool or topic quickly, even if you&#8217;re completely new. They focus on hands-on learning, immediate feedback, and practical skills you can use right away. They&#8217;re all free and most can be completed in under two hours.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">For brand new users, start with </span><a href="https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted"><span class="_richTextNode" style="font-weight: bold;">MATLAB Onramp</span></a><span class="_richTextNode">, a free, beginner-friendly course that teaches the basics of MATLAB from scratch. It is fully online, takes about two hours, and gives you instant feedback as you go. It covers variables, vectors, matrices, plotting, and functions. Everything you need to get started.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">You also get a certificate at the end, which is worth adding to LinkedIn. MathWorks has </span><a href="https://matlabacademy.mathworks.com/?page=1&amp;fq=onramp&amp;sort=featured"><span class="_richTextNode" style="font-weight: bold;">20+ additional Onramp courses</span></a> <span class="_richTextNode">on topics such as signal processing, image processing, machine learning, and Simulink. All free, all self-paced. Onramps are my personal favorite resource for learning MATLAB and I highly recommend them to students. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 758px; height: 393px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_8.gif" alt="" width="758" height="393" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span class="_richTextNode"> You can launch an Onramp directly from inside MATLAB: Toolstrip → Home Tab → Resources → Learn MATLAB.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">If your university has a Campus-Wide offering of MATLAB, you also have free access to </span><a href="https://matlabacademy.mathworks.com/online-training-subscription"><span class="_richTextNode" style="font-weight: bold;">Online Training Suite</span></a><span class="_richTextNode">, which goes deeper than Onramps do with </span><span class="_richTextNode" style="font-weight: bold;">full learning paths</span><span class="_richTextNode"> in data analysis, visualization, machine learning, software development and much more. Each </span><span class="_richTextNode" style="font-weight: bold;">learning path</span><span class="_richTextNode"> has short courses that can be completed in 1-2 hours. Completing a learning path also earns you a </span><span class="_richTextNode" style="font-weight: bold;">digital credential. </span><span class="_richTextNode">Just make sure you&#8217;re signed in with your university email.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 432px; height: 450px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_10.png" alt="" width="432" height="450" /><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 258px; height: 258px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_11.png" alt="" width="258" height="258" /></div>
<h2 id="TMP_5988" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: #1171be; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"></h2>
<h2 id="TMP_6972" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: #1171be; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Step 3: Know Where to Get Support</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Getting stuck is a normal part of learning any new language, and MATLAB is no different. The good news is that knowing where to look makes all the difference, and there&#8217;s a lot of help available once you know where to find it. One thing I always tell students early on: when MATLAB shows you an error, read the message carefully before searching. It usually tells you exactly which line has the problem and why. Here are five places I recommend:</span></div>
<h4 id="TMP_7627" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">1. Built-in help commands, Search bar, and Help Button</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Commands:</span><span class="_richTextNode"> Two commands worth knowing from day one inside of MATLAB: </span><span class="_richTextNode" style="font-weight: bold;">help</span><span class="_richTextNode"> and </span><span class="_richTextNode" style="font-weight: bold;">doc</span><span class="_richTextNode">.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="text-decoration: underline;">For example:</span></div>
<div style="background-color: #f5f5f5; margin: 10px 0 10px 0;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">help <span style="color: #a709f5;">plot</span> <span style="color: #008013;">% Quick syntax summary, right in the Command Window</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">doc <span style="color: #a709f5;">linspace</span> <span style="color: #008013;">% Full documentation with examples and related functions</span></span></div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Type either one (help or doc) before </span><span class="_richTextNode" style="text-decoration: underline;">any function name</span><span class="_richTextNode"> and MATLAB will bring you to the specific documentation page or give you help in the command window. The </span><span class="_richTextNode" style="font-style: italic; font-family: monospace;">doc</span><span class="_richTextNode"> command opens the full docs page with examples and related functions. You can also browse everything on the </span><a href="https://www.mathworks.com/help/index.html?s_tid=CRUX_lftnav"><span class="_richTextNode" style="font-weight: bold;">MathWorks Documentation</span></a><span class="_richTextNode"> site.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Search Bar:</span><span class="_richTextNode"> You can also use the </span><span class="_richTextNode" style="font-weight: bold;">search bar</span><span class="_richTextNode"> in the top right-hand corner of MATLAB to find resources like toolstrip actions, examples, videos, and community answers. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 695px; height: 390px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_12.gif" alt="" width="695" height="390" /></div>
<div id="TMP_11b5" style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Help Button in the Toolstrip: </span><span class="_richTextNode">Go to the MATLAB Toolstrip, under the Home tab, select the Help drop down button in the resources section. You will find links to the documentation mentioned above, examples, and community support on MATLAB Central. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 130px; height: 291px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_13.png" alt="" width="130" height="291" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span class="_richTextNode">See the </span><a href="https://www.mathworks.com/help/releases/R2025b/matlab/matlab_env/accessibility-use-keyboard-shortcuts-to-navigate-matlab.html"><span class="_richTextNode" style="font-weight: bold;">Keyboard Shortcuts</span></a> <span class="_richTextNode">link in the help menu. Shortcuts like </span><span class="_richTextNode" style="font-family: monospace;">Ctrl+R </span><span class="_richTextNode">in the Editor or Live Editor </span><span class="_richTextNode" style="font-weight: bold;">comment out selected lines of code</span><span class="_richTextNode">. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h4 id="TMP_1b1d" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">2. MATLAB Copilot</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">If your campus has access to </span><a href="https://www.mathworks.com/products/matlab-copilot.html"><span class="_richTextNode" style="font-weight: bold;">MATLAB Copilot</span></a><span class="_richTextNode">, use it as a learning tool rather than a shortcut. MATLAB Copilot is an AI assistant built directly into MATLAB that helps explain code, clarify error messages, and generate small examples using MathWorks documentation. The more specific your prompt, the better the answer.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Here are a few prompts that I recommend to get you started:</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Learning a function:</span> <span class="_richTextNode" style="font-style: italic;">&#8220;Explain what the fft() function does and show me a simple example using a sine wave&#8221;</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Understanding an error:</span> <span class="_richTextNode" style="font-style: italic;">&#8220;I&#8217;m getting this error: [paste error message here]. What does it mean and how do I fix it?&#8221;</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Exploring a toolbox:</span> <span class="_richTextNode" style="font-style: italic;">&#8220;What can I do with the Signal Processing Toolbox to filter noisy sensor data? Show me a simple example&#8221;</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Getting unstuck on a concept:</span> <span class="_richTextNode" style="font-style: italic;">&#8220;I don&#8217;t understand the difference between a for loop and a while loop in MATLAB. Can you explain it with an engineering example?&#8221;</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Generating starter code:</span> <span class="_richTextNode" style="font-style: italic;">&#8220;Show me how to import experimental data from a CSV file and plot voltage against time in MATLAB&#8221;</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Working with equations:</span> <span class="_richTextNode" style="font-style: italic;">&#8220;How do I numerically solve a differential equation in MATLAB? Show me an example&#8221;</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Just make sure you understand the code it suggests before submitting your work. To learn more, check out the official </span><a href="https://www.mathworks.com/help/matlab-copilot/index.html"><span class="_richTextNode">MATLAB Copilot documentation</span></a><span class="_richTextNode"> on MathWorks.com. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span class="_richTextNode">Look for the </span><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 35px; height: 44px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_16.png" alt="" width="35" height="44" /><span class="_richTextNode"> symbol in the toolstrip or command window which indicates ways that you can interact with MATLAB Copilot.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 668px; height: 375px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_17.gif" alt="" width="668" height="375" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">If your campus doesn&#8217;t have access to MATLAB Copilot, the </span><a href="https://www.mathworks.com/matlabcentral/playground"><span class="_richTextNode" style="font-weight: bold;">MATLAB AI Chat Playground</span></a><span class="_richTextNode"> is a free alternative on MATLAB Central. It can generate and run MATLAB code, explain functions, and help you work through problems. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h4 id="TMP_1b05" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode">3. Student Resource Hubs</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">There are two pages I recommend bookmarking, and they serve slightly different purposes.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">The </span><a href="https://www.mathworks.com/academia/students/resources.html"><span class="_richTextNode" style="font-weight: bold;">MATLAB &amp; Simulink Resources for Students page</span></a><span class="_richTextNode"> is the official MathWorks webpage, a clean, curated site linking to the core resources I mention in this post. It&#8217;s a great first stop.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><a href="https://github.com/mathworks/awesome-matlab-students"><span class="_richTextNode" style="font-weight: bold;">Awesome MATLAB Students</span></a><span class="_richTextNode"> is a more comprehensive collection on GitHub, also maintained by MathWorks but shaped by conversations with students and faculty. It goes broader, with cheat sheets, fun examples, student club material, competitions, and more. Use it when you want to explore beyond the core set. Star it now and you can keep coming back to it all semester.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 442px; height: 388px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_18.gif" alt="" width="442" height="388" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h4 id="TMP_6c3b" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">4. MATLAB Answers</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><a href="https://www.mathworks.com/matlabcentral/answers/index"><span class="_richTextNode" style="font-weight: bold;">MATLAB Answers</span></a><span class="_richTextNode"> is where I send students when they&#8217;re stuck on something specific. There are thousands of answered questions, and someone has almost always hit your exact error before. And if no one has, you can post your own question. The community is genuinely helpful and quick to respond.</span></div>
<h4 id="TMP_3f44" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"></h4>
<h4 id="TMP_0a6f" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">5. Cheat sheets</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Keep a </span><a href="https://www.mathworks.com/campaigns/products/cheat-sheets.html"><span class="_richTextNode" style="font-weight: bold;">cheat sheet</span></a><span class="_richTextNode"> open while you work. Forgetting syntax is normal, and a quick glance at a cheat sheet is faster than hunting through docs. There are sheets for </span><span class="_richTextNode" style="font-weight: bold;">Simulink,</span> <span class="_richTextNode" style="font-weight: bold;">data import, machine learning, and more</span><span class="_richTextNode">. One of my favorites for new students is the </span><a href="https://www.mathworks.com/campaigns/offers/matlab-basic-functions-reference-cheat-sheet.html"><span class="_richTextNode" style="font-weight: bold;">MATLAB Basic Functions Cheat Sheet</span></a><span class="_richTextNode">.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 284px; height: 367px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_19.png" alt="" width="284" height="367" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span class="_richTextNode">Some cheat sheets are available in multiple languages. </span></div>
<h3 id="TMP_1142" style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 24px; min-height: 0px; white-space: pre; color: #edb120; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Let&#8217;s Recap Your First Week: A Day-by-Day Plan</span></h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Using the resources above, if you&#8217;ve just been assigned MATLAB, here&#8217;s a simple plan for your first week that I recommend following. I suggest focusing on learning one thing per day. The goal is to build your confidence one small win at a time.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Day 1 — Get access:</span> <a href="https://www.mathworks.com/academia/tah-support-program/eligibility.html"><span class="_richTextNode">Check if your university has a Campus-Wide offering</span></a><span class="_richTextNode"> and sign up with your university email. Once you&#8217;re in, open MATLAB Online and get familiar with the UI, toolstrip, command window, and files section. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Day 2 — Do an Onramp:</span> <a href="https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted"><span class="_richTextNode">Start MATLAB Onramp</span></a><span class="_richTextNode">. Give it 1–2 hours and just work through it. This is my favorite MATLAB resource. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Day 3 — Finish Onramp and earn your certificate:</span><span class="_richTextNode"> Add it to LinkedIn. Then have a quick look at the </span><a href="https://matlabacademy.mathworks.com/?page=1&amp;fq=onramp&amp;sort=featured"><span class="_richTextNode">other free Onramp courses</span></a><span class="_richTextNode">. There&#8217;s almost certainly one for your field.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Day 4 — Get your cheat sheet:</span><span class="_richTextNode"> Review the </span><a href="https://www.mathworks.com/campaigns/offers/matlab-basic-functions-reference-cheat-sheet.html"><span class="_richTextNode">Basic Functions Cheat Sheet</span></a><span class="_richTextNode"> and keep it open while you work. Most of it will look familiar from MATLAB Onramp, but having it all in one place is useful.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Day 5 — Write something real:</span><span class="_richTextNode"> Take one concept from your class and recreate it in MATLAB. Not sure where to start? Try pasting this into MATLAB Online and running it:</span></div>
<div style="background-color: #f5f5f5; margin: 10px 0 10px 0;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">x = 0:0.1:2*pi;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">y = sin(x);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">plot(x, y)</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">title(<span style="color: #a709f5;">&#8216;My first MATLAB plot&#8217;</span>)</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">xlabel(<span style="color: #a709f5;">&#8216;x&#8217;</span>)</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">ylabel(<span style="color: #a709f5;">&#8216;sin(x)&#8217;</span>)</span></div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Then try changing </span><span class="_richTextNode" style="font-family: monospace;">sin</span><span class="_richTextNode"> to </span><span class="_richTextNode" style="font-family: monospace;">cos</span><span class="_richTextNode">, or the range to </span><span class="_richTextNode" style="font-family: monospace;">0:0.1:4*pi</span><span class="_richTextNode">. When you get stuck, try the </span><span class="_richTextNode" style="font-family: monospace;">doc</span><span class="_richTextNode"> command first, then MATLAB Answers or Copilot if you need more help.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Day 6 — Explore real code:</span><span class="_richTextNode"> Sharpen your skills by practicing with hundreds of </span><a href="https://www.mathworks.com/matlabcentral/cody"><span class="_richTextNode">coding problems on Cody</span></a><span class="_richTextNode">, and browse </span><a href="https://www.mathworks.com/matlabcentral/fileexchange/"><span class="_richTextNode">MATLAB Central File Exchange</span></a><span class="_richTextNode"> for real-world code in your field. Open the files and study them. You&#8217;ll learn more from actual code than any tutorial.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Day 7 — Set yourself up for the semester:</span><span class="_richTextNode"> Subscribe to this blog, follow </span><a href="https://www.instagram.com/matlab_students/"><span class="_richTextNode">@matlab_students on Instagram</span></a><span class="_richTextNode">, and </span><a href="https://github.com/mathworks/awesome-matlab-students"><span class="_richTextNode">star the Awesome MATLAB Students repo</span></a><span class="_richTextNode">. That&#8217;s your support system for the semester. Below are more ways to grow your skills and explore project-based learning.</span></div>
<h2 id="TMP_2a40" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: #1171be; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Step 4: Build Habits That Keep You Improving</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">In my experience, the students who get really good at MATLAB are the ones who stay in contact with it between assignments. It doesn&#8217;t take much. Here are a few easy ways to do that:</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Subscribe to this blog.</span><span class="_richTextNode"> The </span><a href="https://blogs.mathworks.com/student-lounge/"><span class="_richTextNode" style="font-weight: bold;">Student Lounge</span></a><span class="_richTextNode"> goes up at least once a month with student stories, new resources, and tips. The subscribe button is in the top-left corner.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 359px; height: 237px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_21.png" alt="" width="359" height="237" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode"> I&#8217;d also recommend checking out the other </span><a href="https://blogs.mathworks.com/"><span class="_richTextNode" style="font-weight: bold;">MathWorks blog channels on MATLAB Central</span></a><span class="_richTextNode"> — there are blogs covering everything from deep learning to student projects, and I find myself recommending them to students regularly.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Follow @matlab_students on Instagram.</span> <a href="https://www.instagram.com/matlab_students/"><span class="_richTextNode" style="font-weight: bold;">@matlab_students</span></a><span class="_richTextNode"> posts a few times a week: quick tips, competition callouts, student community highlights. A good way to pick up tips and see what’s happening in the MATLAB student community.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 325px; height: 183px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_23.png" alt="" width="325" height="183" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Watch short how-to videos.</span><span class="_richTextNode"> The </span><a href="https://www.youtube.com/playlist?list=PLn8PRpmsu08oBSjfGe8WIMN-2_rwWFSgr"><span class="_richTextNode" style="font-weight: bold;">MATLAB How-To Playlist on YouTube</span></a><span class="_richTextNode"> shares short tutorials every month, each focused on one specific concept. It&#8217;s worth subscribing to that playlist, along with the main MATLAB YouTube channel.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 714px; height: 386px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_24.png" alt="" width="714" height="386" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Try Cody.</span> <a href="https://www.mathworks.com/matlabcentral/cody"><span class="_richTextNode" style="font-weight: bold;">Cody</span></a><span class="_richTextNode"> is a fun coding challenge game site on MATLAB Central where you solve MATLAB problems and earn points. Good for finding gaps in what you know. </span><a href="https://www.mathworks.com/matlabcentral/cody/groups"><span class="_richTextNode" style="font-weight: bold;">Try a problem group</span></a><span class="_richTextNode">, even for ten minutes a week. </span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 168px; height: 167px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_25.png" alt="" width="168" height="167" /> <img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 154px; height: 196px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_26.png" alt="" width="154" height="196" /></div>
<h2 id="TMP_980c" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: #1171be; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Step 5: Go Further — Competitions, Projects, and Toolboxes</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Once you&#8217;ve got the basics down, building something real is the fastest way to improve. Here are four ways to take it further.</span></div>
<h4 id="TMP_4c52" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Student Programs:</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><a href="https://www.mathworks.com/academia/students.html"><span class="_richTextNode" style="font-weight: bold;">MathWorks Student Programs</span></a><span class="_richTextNode"> run competitions across engineering and science, from drone challenges to the annual Simulink Student Challenge with cash prizes. These are great for your CV, and you&#8217;ll often meet people from industry or research along the way.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Check out the </span><a href="https://www.mathworks.com/academia/students/competitions.html"><span class="_richTextNode">full list of contests, competitions, and hackathons here.</span></a><span class="_richTextNode"> MathWorks provides complimentary software and self-paced online training for its competitions. If your team is participating and needs software, fill out the software request form on the corresponding competition page.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 370px; height: 270px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_27.png" alt="" width="370" height="270" /><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 234px; height: 271px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_28.png" alt="" width="234" height="271" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span class="_richTextNode">If there’s a MATLAB student club at your university, get involved. The </span><a href="https://github.com/mathworks/awesome-matlab-students"><span class="_richTextNode" style="font-weight: bold;">Awesome MATLAB Students repo</span></a><span class="_richTextNode"> has material you can use to run a workshop.</span></div>
<h4 id="TMP_231b" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"></h4>
<h4 id="TMP_5d57" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Challenge Projects:</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">For capstone, thesis, or independent study ideas, browse the </span><a href="https://www.mathworks.com/academia/students/project-ideas.html"><span class="_richTextNode" style="font-weight: bold;">MathWorks Challenge Projects list</span></a><span class="_richTextNode">. Once you have a project in mind, the </span><a href="https://www.mathworks.com/matlabcentral/fileexchange/"><span class="_richTextNode" style="font-weight: bold;">File Exchange</span></a><span class="_richTextNode"> on MATLAB Central is a great place to find starting points, with thousands of open-source files across engineering and science that you can download and learn from.</span></div>
<h4 id="TMP_09c4" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"></h4>
<h4 id="TMP_7ed2" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Toolboxes:</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">As you start working on bigger projects, you&#8217;ll eventually hit problems that are specific to your field, like filtering a noisy signal or training a machine learning model. This is where toolboxes come in, and it&#8217;s worth understanding what they are now so you know what&#8217;s available to you.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">A toolbox</span><span class="_richTextNode"> is a packaged collection of functions, apps, example code, and documentation built for a specific area like signal processing, image processing, machine learning, control systems, and so on. MathWorks has over 100 of them, so whatever your field is, there&#8217;s almost certainly a toolbox for it. They give you ready-made, tested algorithms for your field so you&#8217;re not building everything from scratch. If your university license includes them, they&#8217;re already available to you and work exactly like any other MATLAB function.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">If you installed MATLAB Desktop, make sure you selected your toolboxes during installation. It&#8217;s easy to click through the installer without realizing they&#8217;re there. If you missed any, go to Home &gt; Add-Ons &gt; Explore Add-Ons to install them. To check what&#8217;s currently installed, type </span><span class="_richTextNode" style="font-weight: bold; font-family: monospace;">ver</span><span class="_richTextNode"> in the Command Window.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Some toolboxes also come with interactive apps, like </span><a href="https://www.mathworks.com/help/images/ref/imagesegmenter-app.html"><span class="_richTextNode">Image Segmenter</span></a><span class="_richTextNode"> in the </span><a href="https://www.mathworks.com/help/images/getting-started-with-image-processing-toolbox.html"><span class="_richTextNode">Image Processing Toolbox</span></a><span class="_richTextNode">, that you can launch from the Apps tab to do common tasks without writing any code at all.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Here&#8217;s a quick example using the Image Processing Toolbox:</span></div>
<div style="background-color: #f5f5f5; margin: 10px 0 10px 0;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">img = imread(<span style="color: #a709f5;">&#8216;peppers.png&#8217;</span>); <span style="color: #008013;">% load a sample image (built into MATLAB)</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">gray = rgb2gray(img); <span style="color: #008013;">% Image Processing Toolbox &#8211; convert to grayscale</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% (edge detection works on grayscale, not color)</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">edges = edge(gray, <span style="color: #a709f5;">&#8216;Canny&#8217;</span>); <span style="color: #008013;">% Image Processing Toolbox &#8211; find the edges in the image</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% &#8216;Canny&#8217; is the algorithm used &#8211; one of the best for clean results</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">imshow(edges); <span style="color: #008013;">% display the result &#8211; you&#8217;ll see a black image with white outlines</span></span></div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Before:</span> <span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">After:</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 418px; height: 314px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_30.png" alt="" width="418" height="314" /> <img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 423px; height: 317px;" src="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24_31.png" alt="" width="423" height="317" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-family: monospace;">peppers.png</span><span class="_richTextNode"> is built into MATLAB so you can run this right now without needing your own image. In a few lines you&#8217;ve gone from a color photo to a clean edge-detected version, and that&#8217;s what a toolbox gets you. The best place to get started with any toolbox is its documentation page on </span><a href="https://www.mathworks.com/help/"><span class="_richTextNode" style="font-weight: bold;">MathWorks Documentation</span></a><span class="_richTextNode">. Each one has a getting started section and worked examples to walk you through the basics. </span></div>
<div></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">On the Documentation page, select </span><span class="_richTextNode" style="font-weight: bold;">Product List</span><span class="_richTextNode"> from the filter in the top left to see every available toolbox and find the one that matches your field.</span></div>
<h4 id="TMP_678f" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"></h4>
<h4 id="TMP_6182" style="margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;"><span class="_richTextNode" style="font-weight: bold;">Explore MATLAB in Your Field:</span></h4>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">My final recommendation is to start applying MATLAB to problems in your own discipline. This will be the glue that helps you understand how MATLAB can support your schoolwork, research, projects, or career.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Here are some academic areas where MATLAB is widely used and a resource page for each discipline:</span></div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/biological-sciences.html"><span class="_richTextNode" style="font-weight: bold;">Biological Sciences</span></a><span class="_richTextNode"> – model, simulate, and analyze biological systems</span></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/chemical-engineering.html"><span class="_richTextNode" style="font-weight: bold;">Chemical Engineering</span></a><span class="_richTextNode"> – enhance learning in process modeling, simulation, and labs</span></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/chemistry.html"><span class="_richTextNode" style="font-weight: bold;">Chemistry</span></a><span class="_richTextNode"> – analyze, visualize, and build predictive models for chemical data</span></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/electrical-computer-engineering.html"><span class="_richTextNode" style="font-weight: bold;">Electrical &amp; Computer Engineering</span></a><span class="_richTextNode"> – explore signals, systems, and embedded design</span></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/geoscience.html"><span class="_richTextNode" style="font-weight: bold;">Geoscience</span></a><span class="_richTextNode"> – analyze and understand complex environmental and geological data</span></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/mathematics.html"><span class="_richTextNode" style="font-weight: bold;">Mathematics</span></a><span class="_richTextNode"> – explore numerical methods, modeling, and applied math concepts</span></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/mechanical-engineering.html"><span class="_richTextNode" style="font-weight: bold;">Mechanical Engineering</span></a><span class="_richTextNode"> – design, simulate, and analyze physical systems</span></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/solutions/neuroscience.html"><span class="_richTextNode" style="font-weight: bold;">Neuroscience</span></a><span class="_richTextNode"> – process data, run experiments, and model brain activity</span></li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Not sure where to start? </span><a href="https://www.mathworks.com/solutions.html"><span class="_richTextNode" style="font-weight: bold;">Browse all application areas</span></a><span class="_richTextNode">.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Pick one area, try an example, and if you want to see where these skills can lead, check out MathWorks </span><a href="https://www.mathworks.com/company/customer-stories.html"><span class="_richTextNode" style="font-weight: bold;">customer stories</span></a><span class="_richTextNode"> to see how engineers and scientists have applied MATLAB in industry to solve real-world problems.</span></div>
<div id="TMP_9811" style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode" style="font-weight: bold; text-decoration: underline;">Happy Coding — you&#8217;ve got this!</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">MATLAB gets easier the more you use it. Start with Day 1, do one thing at a time, and don&#8217;t stress about knowing everything up front. Nobody does!</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span class="_richTextNode">Key links from this post:</span></div>
<ol style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://github.com/mathworks/awesome-matlab-students"><span class="_richTextNode">Awesome MATLAB Students GitHub repo</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/academia/students/resources.html"><span class="_richTextNode">MATLAB &amp; Simulink Resources for Students</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted"><span class="_richTextNode">MATLAB Onramp</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://matlabacademy.mathworks.com/online-training-subscription"><span class="_richTextNode">Online Training Suite</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/help/"><span class="_richTextNode">MathWorks Documentation</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/matlabcentral/answers/"><span class="_richTextNode">MATLAB Answers</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/campaigns/offers/matlab-basic-functions-reference-cheat-sheet.html"><span class="_richTextNode">MATLAB Basic Functions Cheat Sheet</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/matlabcentral/cody"><span class="_richTextNode">Cody — MATLAB coding challenges</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/matlabcentral/fileexchange/"><span class="_richTextNode">MATLAB Central File Exchange</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/academia/students.html"><span class="_richTextNode">MathWorks Student Programs</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://www.mathworks.com/matlabcentral/"><span class="_richTextNode">MATLAB Central</span></a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="https://youtu.be/KGn5m-LD9Ng"><span class="_richTextNode">Watch the companion video on YouTube</span></a></li>
</ol>
</div>
<p><script type="text/javascript">var css = '._richTextNode {white-space: break-spaces;}'; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script><a href="https://blogs.mathworks.com/student-lounge/files/2026/08/aug24.mlx"><button class="btn btn-sm btn_color_blue pull-right add_margin_10">Download Live Script</button></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/08/24/learn-matlab-a-students-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Simulink-Based CAN Control and Validation on STM32F4 for a Dual-Motor EV Platform</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/08/12/simulink-based-can-control-and-validation-on-stm32f4-for-a-dual-motor-ev-platform/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/08/12/simulink-based-can-control-and-validation-on-stm32f4-for-a-dual-motor-ev-platform/#comments</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Wed, 12 Aug 2026 14:08:55 +0000</pubDate>
				<category><![CDATA[Automotive]]></category>
		<category><![CDATA[CAN-based control]]></category>
		<category><![CDATA[simulink]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13541</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/07/26August12_5.gif" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

In today’s blog, we are joined by Team I.C.C. from Inha University, South Korea. They share how they used MATLAB and Simulink to develop and validate a CAN-based embedded motor control workflow for... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/08/12/simulink-based-can-control-and-validation-on-stm32f4-for-a-dual-motor-ev-platform/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-style: italic;">In today’s blog, we are joined by Team I.C.C. from Inha University, South Korea. They share how they used MATLAB and Simulink to develop and validate a CAN-based embedded motor control workflow for their dual-motor EV platform. Over to you&#8230;</span></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Introduction</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><a href="https://www.instagram.com/icc.inha/"><span style="text-decoration: underline;">I.C.C. (Inha Car &amp; Computer)</span></a> is a student club at Inha University (South Korea) dedicated to automotive research, design, and hands-on electric race car production. Through activities such as developing electric racing vehicles, building embedded control systems, and preparing for engineering competitions, I.C.C. provides students with opportunities to gain practical experience in electric racing car development, teamwork, and problem-solving within the field of future mobility. In this project, the team focused on building and validating a Simulink-based CAN control workflow on STM32F4 for a dual-motor EV platform. Rather than presenting the work only as a dual-motor hardware project, this blog highlights how model-based design made CAN implementation, deployment, and real-time validation much easier to manage in practice.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 750px; height: 500px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26August12_1.png" alt="" width="750" height="500" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 1.</span> I.C.C. club members at a racing competition with the electric racing car (Inha University, South Korea)</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Motivation</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For our EV racing car, we needed more than a basic motor test. The real challenge was to establish a practical workflow for CAN-based control and validation on STM32F4 so that motor commands could be generated from live input, transmitted reliably, and checked against real hardware feedback during operation. While this workflow was developed for a rear-driven dual-motor platform and can later support torque vectoring, the immediate goal of the project was to make CAN-based control easier to implement, deploy, and verify.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">To make that possible, the workflow had to go beyond fixed CAN message tests and support a complete embedded control loop with:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">variable driver input,</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">independent motor command generation,</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">reliable CAN communication, and</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">real-time feedback monitoring.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">In the early hardware test stage, motor operation was checked mainly with predefined CAN commands in STM32CubeIDE before the pedal signal was connected through ADC. That approach was useful for basic validation, but it made it harder to iterate on continuously changing commands, integrate real input processing, and monitor the full control path in a structured way. To address this, we developed an embedded Simulink-based workflow on STM32F4 that combined throttle input processing, CAN-based command transmission, code generation and deployment, and feedback monitoring in one model. This shifted the project from isolated CAN testing toward a repeatable workflow for embedded control and validation, while still leaving room to expand into dual-motor coordination and future torque-vectoring logic.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">As a result, we established a practical CAN-based embedded workflow that could read real throttle input, transmit motor commands, and monitor feedback in real time on STM32F4. The validated workflow was then extended to a dual-motor structure, providing a solid foundation for future vehicle-control features such as torque vectoring.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Breaking down the problem</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">To build a practical CAN-based motor control workflow on a rear-driven dual-motor EV platform, the problem had to be approached as a control, communication, and validation challenge rather than as a simple motor test. The embedded system needed to convert driver input into commands, transmit them reliably over CAN, receive meaningful feedback, and organize the structure in a way that could later scale to independent left-right control.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold;">1. Converting Driver Input into Torque Commands</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The first requirement was an input-to-command path that could convert variable driver input into torque commands suitable for vehicle control. Fixed test commands were not enough, because torque vectoring depends on continuously changing motor commands based on throttle input and, eventually, vehicle-state-based control logic.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold;">2. Establishing Reliable CAN Communication</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The second requirement was a reliable CAN communication structure for both transmission and reception. On the transmit side, the controller needed to send properly formatted torque commands to each motor controller. On the receive side, it needed to collect feedback signals such as battery voltage, torque, RPM, and motor voltage so that each motor’s response could be monitored and validated during operation.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold;">3. Building a Scalable Dual-Motor Control Structure</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The third requirement was support for independent dual-motor control as a foundation for future torque-vectoring algorithms. This meant extending the validated single-motor structure into a scalable architecture in which the left and right motor paths could be configured, tested, and monitored separately. The goal was not simply to make two motors rotate, but to establish a dual-motor embedded control platform that could later support higher-level vehicle dynamics control.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 451px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26August12_2.jpg" alt="" width="601" height="451" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 2.</span> The overall structure of the dual-motor system</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">How did we implement it?</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">To implement this workflow, we developed the control structure in Simulink and deployed it on STM32F4 using the <a href="https://www.mathworks.com/products/stm32-microcontroller.html">STM32 Microcontroller Blockset</a>. The main objective was to bring CAN communication, throttle input processing, code generation, deployment, and feedback monitoring into a single model-based workflow that could be refined quickly during hardware testing. STM32F4 was a good fit because it offers built-in CAN interfaces, ADC inputs, and enough real-time performance for embedded motor control. We organized the model into functional subsystems for input processing, command generation, CAN transmission, CAN reception, and monitoring, which made the workflow easier to understand, debug, and extend from a single-motor test setup to a dual-motor platform.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We started by emulating pedal behavior in Simulink with a slider block, then later connected that same signal path to the actual ADC throttle input. This made it easy to move from simple bench testing to a more realistic dual-motor workflow driven by real input. On the transmit side, the throttle signal was translated into a motor command and packaged to match the motor controller protocol. Because the command changed continuously with the input, we were able to test dynamic motor actuation rather than relying only on fixed commands. By separating the CAN paths for each controller, we also created a structure that could support independent left and right motor control in future vehicle tests.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">On the receive side, the focus was on checking whether the motor controllers were responding as expected during operation. Since the controllers returned several different status groups, we used a MATLAB Function block to parse the incoming CAN data more efficiently. This allowed us to monitor key feedback signals such as battery voltage, torque, RPM, and motor voltage in real time. As a result, we gained a much clearer picture of how each motor was behaving and could validate the dual-motor setup in a more systematic way.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Debugging was also much more manageable with CAN STATUS information, <a href="https://www.mathworks.com/help/simulink/supportpkg/arduino_ug/remotely-monitoring-and-controlling-an-application-on-hardware.html">Monitor &amp; Tune</a>, and real-time monitoring in place. Instead of depending only on serial print messages, we could inspect internal signals directly and quickly tell whether an issue came from the model itself or from hardware conditions such as wiring and connections. We could also visualize the monitored signals as plots and export them as CSV files for later analysis, which made it much easier to review test results and compare behavior across hardware runs.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 569px; height: 321px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26August12_3.gif" alt="" width="569" height="321" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 3.</span> Real-Time hardware test with STM32F4, CAN communication, and dual motors with Simulink</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 1508px; height: 438px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26August12_4.png" alt="" width="1336" height="388" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 4.</span> A Simulink-based torque-vectoring control architecture built on top of the validated dual-motor workflow.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Results</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The biggest outcome of this project was that we established a Simulink-based CAN control and validation workflow that could be deployed directly to the real vehicle platform through STM32F4. By connecting the real ADC throttle input and generating CAN-based motor commands from the model, we showed that driver input could flow through the complete embedded path—from pedal signal, to controller logic, to CAN transmission, to actual motor response and feedback validation on hardware. This made the project more than a bench-level motor test; it became a practical demonstration of model-based embedded control on a real EV platform.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Just as importantly, the Simulink-based workflow made implementation, deployment, and debugging much easier to manage than a conventional low-level approach centered on predefined CAN commands in STM32CubeIDE. Instead of repeatedly modifying C code for every small change, we could adjust signal scaling, data types, CAN formatting, and sample times directly in the model and then regenerate and redeploy the code more efficiently. Monitor &amp; Tune, CAN STATUS information, and real-time monitoring also made validation much more systematic, because we could inspect internal signals directly and identify whether issues came from the model logic or from hardware conditions such as wiring and connections. The modular structure further made it easier to expand the validated workflow from a basic test case into a dual-motor architecture, giving us a scalable starting point for future vehicle functions such as torque vectoring.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 575px; height: 325px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26August12_5.gif" alt="" width="575" height="325" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 5.</span> The EV racing car is in test with torque vectoring implemented</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/08/12/simulink-based-can-control-and-validation-on-stm32f4-for-a-dual-motor-ev-platform/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Building Janus: How a FIRST Robotics Team Engineered a Championship Robot</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/07/27/building-janus-how-a-first-robotics-team-engineered-a-championship-robot/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/07/27/building-janus-how-a-first-robotics-team-engineered-a-championship-robot/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 27 Jul 2026 14:12:35 +0000</pubDate>
				<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Team achievements]]></category>
		<category><![CDATA[FIRST Robotics]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13523</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/07/F2.gif" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

For this week’s blog post, we’re featuring FRC Team 2040 from the FIRST Robotics Competition as they reflect on their 2026 season and share how they used Simulink and WPILib to coordinate their... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/07/27/building-janus-how-a-first-robotics-team-engineered-a-championship-robot/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-style: italic;">For this week’s blog post, </span><span style="font-style: italic;">we’re</span> <span style="font-style: italic;">featuring FRC Team 2040 from the</span> <a href="https://www.firstinspires.org/"><span style="font-style: italic; text-decoration: underline;">FIRST Robotics Competition</span></a> <span style="font-style: italic;">as they reflect on their 2026 season and share how they used Simulink and</span> <span style="font-style: italic;">WPILib</span> <span style="font-style: italic;">to</span> <span style="font-style: italic;">coordinate</span> <span style="font-style: italic;">their robot</span> <span style="font-style: italic;">Janus’s shooter</span> <span style="font-style: italic;">and help the team return to the FIRST</span> <span style="font-style: italic;">World</span> <span style="font-style: italic;">Championship</span><span style="font-style: italic;">. If you are interested in using MATLAB and Simulink for your team, please visit our</span> <a href="https://www.mathworks.com/academia/student-competitions/first-robotics.html"><span style="font-style: italic; text-decoration: underline;">FIRST Robotics page</span></a> <span style="font-style: italic;">or contact us at</span> <a href="mailto:roboticsarena@mathworks.com"><span style="font-style: italic; text-decoration: underline;">roboticsarena@mathworks.com</span></a><span style="font-style: italic;">.</span> <span style="font-style: italic;">We’re</span> <span style="font-style: italic;">excited to highlight their journey and hope you enjoy their insights!</span></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Meet FRC Team 2040</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Hello everyone! My name is Anirudh Chalamkuri, and I am the programming lead and implement driver for DERT, FRC Team 2040, based in Dunlap, Illinois. I joined the team during my junior year, after watching them demo their 2024 robot at a school event.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our team has competed in the FIRST Robotics Competition since 2007, and this year, after winning the Central Illinois Regional and being a finalist at the Greater Kansas City Regional, we qualified for and competed at the FIRST World Championship in Houston, Texas. This is a huge achievement and a very successful year for us, as we haven’t qualified for the World Championship since 2011.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 541px; height: 297px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_1.png" alt="" width="541" height="297" /></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Our Robot: Janus</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For the 2026 season, our team designedJanus,named after the two-faced Roman God of Beginnings.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The game this year <a href="https://www.youtube.com/watch?v=_fybREErgyM"><span style="text-decoration: underline;">Rebuilt</span></a>, although much more complex, boilsdown tocompeting for and collectingas manypiecesof fuel (15cm in diameter high-density foam balls) froma sharedcenterzoneand scoring them into your alliance’s hub for points.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our goal was to build a robot capable of scoring game pieces quickly and consistently from close to mid-range positions around the hub. Because of that, our robot falls under the ‘dumper-style’ category of bots, an archetype that generally relies less on shooting from long distances, and more on fast and repeatable cycles.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 649px; height: 265px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_2.png" alt="" width="649" height="265" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">If you would like more detailed breakdown of our robot’s mechanical design, check out this flyer I designed detailing Janus’ mechanical specifications:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 542px; height: 766px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_3.png" alt="" width="542" height="766" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For the purposes of this blog, I’ll give a quick overview of our shooting mechanism. Our shooter is divided into three separate segments, allowing the robot to launch up to three fuel pieces at the same time. Each segment has its own path through the mechanism, including transfer wheels that move fuel into position and a set of shooting flywheels that launch it toward the hub.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The transfer wheels are powered by a single Kraken X44 motor and move fuel from the indexer into the barrel of the shooter. Once the fuel is in position, the shooting flywheels launch it out of the robot. Unlike the transfer system, the shooter is divided into three independent shafts, each powered by a Kraken X60 motor and equipped with flywheels. The robot rotates to aim horizontally toward the hub, while a hood driven by two linear actuators adjusts the angle of the shot.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Even a single shot relies on many parts of the robot working together at exactly the right time. A large portion of our programming work throughout the season went into refining that coordination so the robot could score as consistently and reliably as possible.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Our Design Approach</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">At the beginning of the season, our team had a new and very successful kickoff plan, coordinated by our team lead William Anderson. If you would like to read more about it and consider implementing it for your own FRC team, I have linked a <a href="https://drive.google.com/file/d/10G9QCE3sMR7MN-CcxQpLHQU6nR_C-1EE/view?usp=sharing"><span style="text-decoration: underline;">PDF</span></a> he created detailing the procedure and the reasoning below.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">After deciding on the type of robot we would create, the programming team then set out to design the control systems for the scoring mechanism on our robot, we broke down our process like this:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 229px; height: 344px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_4.png" alt="" width="229" height="344" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Although each mechanism has a specific role, the robot can score consistently only if all parts work together with great precision. This made the programming behind the shooter especially important and tricky. We needed to coordinate several motors, adjust the hood position, and control the robot&#8217;s direction while keeping the process as easy as possible for the drivers. This means most of this needed to be done automatically on the press of a button.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Why did we use Simulink?</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Although our team had been using <a href="https://www.mathworks.com/products/simulink.html"><span style="text-decoration: underline;">Simulink</span></a> for three years prior, it paid off in a huge way this year.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Before joining the team, I had never used MATLAB or Simulink. I first learned how to use them during my junior year by watching Mr. Randy Anderson, our lead programming coach, teach us. During the following summer, the programming team gained more experience by working on several projects with a new programming mentor who joined our team. Those projects helped me learn the skills I needed before the start of the 2026 season.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Because I was already comfortable with hand-coding, Simulink did not feel that different to me. Once I understood how the blocks and signals worked, Simulink was just a more visual and intuitive way to write the same programming logic.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For newer programmers, however, Simulink was a game-changer. They did not need to memorize syntax before contributing to the robot. Instead, they could focus on the logic behind the program. Such as, what information the robot needed, what decisions it should make, and how each subsystem should respond. That made it easier for new members to get involved while still learning the core ideas behind programming. This was especially important because the majority of our programming team were rookies; in fact, my fellow programming co-lead, Melaina Humbles, and I were the only returning programming students for this season.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">How We Integrated Simulink with WPILib</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Integrating Simulink with WPILib, the open-source library used for FRC programming, was an exciting and technically challenging effort. The system was largely developed in 2023 by alumni/former team lead Janelyn Anderson, who also consistently returns to the team to update the codebase.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The basic idea is that once we create the control logic in Simulink, a build script uses Simulink Coder to generate C code from the model. That generated code is then integrated into our larger C++ and WPILib project.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 230px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_5.png" alt="" width="601" height="230" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The handwritten C++ code handles the connection between Simulink and the physical robot. It passes sensor data and driver inputs into the model, runs the generated control logic, and then sends the resulting commands back out to the motors and other hardware.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This cycle runs every 20 milliseconds during the robot’s periodic loop:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 336px; height: 336px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_6.png" alt="" width="336" height="336" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">To make this easier to manage, our framework uses reusable C++ components. Each component handles a specific part of the robot and includes a pre-step function and a post-step function. The pre-step function collects information from the hardware and sends it into Simulink. The post-step function takes the output from Simulink and applies it to the robot. Setting up each of these components requires minimal programming and can be done quickly whenever required, so most of the attention and time can go towards the Simulink logic.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 374px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_7.png" alt="" width="601" height="374" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">As you can see from the code snippet above, the amount of hand-code required is relatively minimal.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Janelyn also set up libraries that simplify the process of adding motors. Instead of rewriting a large amount of setup code each time a new motor is added, we can use wrappers to configure details such as the CAN ID, direction, and current limits in one place. Below is an example of two different categories of motors being created:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 485px; height: 337px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_8.png" alt="" width="485" height="337" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Another useful part of the framework is the ability to interact with certain values through Network Tables. These values can include PID constants, offsets, and other tunable parameters. We can adjust them through tools such as Glass or Advantage Scope while testing the robot, rather than rebuilding the entire program after every small change. The nature of this year’s game requires high precision, and being able to adjust parameters quickly on the fly during tuning saved a lot of time.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We can also use test points that display the values of important signals. This makes it easier to diagnose problems because we can see what the robot is measuring and what commands the model is producing in real time.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For example, while tuning the shooter, we could monitor values like:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Target flywheel RPM</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Measured flywheel RPM</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Flywheel motor output</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Hood target position</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Measured hood position</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Whether the robot is aligned with the hub</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Whether the shooter is ready to release fuel</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Now that I’ve gone over, at a high level, how the framework for Simulink integration works. Let’s delve into the Simulink code.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 321px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_9.png" alt="" width="601" height="321" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Above is a zoomed-out screenshot showing our primary Simulink Model for the robot’s controls. For today’s purposes, I will focus primarily on the “Rebuilt” section, more specifically the subsystem for shooting.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">One of the main tools we used to control the shooter was PID control. A PID controller continuously compares a desired value, known as the setpoint, to the robot’s actual measured value. It then adjusts the motor output via various feedback loops(Proportional, Integral, and Derivative)to reduce the difference between the two. Instead of relying on a fixed motor output and assuming it will behave the same way every time, the controller constantly makes small corrections based on sensor feedback.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For our shooter, each of the three channels is powered by its own Kraken X60 motor. Before releasing fuel, the robot needs to bring each flywheel to its target speed. Rather than simply applying a fixed amount of power and assuming the wheels will spin at the correct rate, the program measures the actual RPM and adjusts the motor output as needed.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For example, if one flywheel is spinning below its target RPM, the controller increases its output. As the flywheel approaches the desired speed, the controller makes smaller corrections. This allows the shooter to respond to changes in the system, such as the brief drop in speed that can occur when fuel passes through the wheels.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Below is a Simulink Subsystem that adjusts the shooter motor PID gains and controls when the integral term is enabled.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 246px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_10.png" alt="" width="601" height="246" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This subsystem adjusts the shooter motor PID gains based on how close the shooter is to its target speed. It subtracts the measured shooter speed from the desired shooter speed to calculate the current error, then uses several comparisons and logic blocks to determine whether the integral term should be enabled or temporarily disabled. There is also logic in order to remember the previous state and prevent the integral control from rapidly switching on and off between updates. The proportional gain is passed through directly, with no logic controlling it; meanwhile, the integral gain is selected based on the aforementioned logic. Finally, the subsystem checks whether the gain has changed and sends a signal telling the motor controller to update its PID settings.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The previous subsystem adjusted the PID gains used by the shooter motors. Below is an example of how we used one of our custom PID library blocks to implement a complete PID control loop within a subsystem. The model compares the desired transfer motor speed with the measured speed and passes both values to the PID block with feedforward, which calculates the duty cycle required to achieve the target speed.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 248px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_11.png" alt="" width="601" height="248" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Shooting a fuel object requires several mechanisms to work together. The flywheels must reach the correct speed, the hood must move to the correct position, and the robot must rotate toward the hub before the transfer wheels release the fuel. All of these rely on processing vision input, doing calculations, and then transferring that accurately to motor commands.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The subsystem shown below combines several calculated outputs from other subsystems and uses logic gates to determine whether the robot is ready to shoot. It also decides whether the robot is prepared to unload or pass fuel, which are handled by separate functions.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 443px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_12.png" alt="" width="601" height="443" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">It verifies that the robot is in the correct field zone, moving slowly enough, aimed at the target, and that the shooter wheels and hood are at their desired settings. These conditions are combined so the robot only transfers and shoots the fuel once the required systems are ready.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">After the robot evaluates its shooter speed, hood angle, alignment, and field position, those readiness signals are passed into this <a href="https://www.mathworks.com/help/stateflow/getting-started.html"><span style="text-decoration: underline;">Stateflow </span></a>chart. The chart controls when fuel is allowed to move through the final stages of the shooting system, preventing transfer and feeder wheels from activating before the robot is ready.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 601px; height: 437px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_13.png" alt="" width="601" height="437" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This Stateflow chart also organizes the shooting sequence into clear states. When the robot is not shooting, the transfer and feeder motors are stopped. Once a spin-up, shoot, or manual-unload command is received, the robot enters the shooting sequence and waits in the Spinning_Upstate while the shooter, hood, and alignment systems prepare. After the robot reports that it is ready to score, pass, or unload, it enters the Transfer state, where the transfer wheels move fuel from the indexer toward the barrel. Once the transfer wheels reach the required speed, the feeder activates to push the fuel through the shooter. The system returns to the spin-up state when the command is released, the shooting time limit is reached, or the robot is no longer ready.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">With this Stateflow chart, PID loops, and many other subsystems that I unfortunately do not have the time to share, the robot is able to successfully score fuel into the hub!</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">
<div style="text-align: center;"><img decoding="async" loading="lazy" class="wp-image-13526 aligncenter" src="https://blogs.mathworks.com/student-lounge/files/2026/07/F1.gif" alt="" width="645" height="363" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">A lot of work went into the code behind the robot throughout the season. It took plenty of testing, small adjustments, and troubleshooting to get everything working together the way we wanted. I was only able to highlight one of the main parts of our robot&#8217;s code here, so I will link our GitHub repository for anyone who is interested in looking through the <a href="https://github.com/DERT-2040/2025_Robot.git"><span style="text-decoration: underline;">full codebase </span></a>and learning more about how the robot works!</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Reflecting on Our 2026 Season </span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Making it to the FIRST Championship in Houston was a huge moment for our team. This is the best our team has ever done in its history. Making a deep playoff run at one regional is already an incredibly rare and exciting feat for us, but taking home the victory banner at one regional and then making it all the way to the finals at a second was something we never could have expected. After our unexpected win, our mentors and parent volunteers stepped up to raise the money and handle all of the logistics needed to get our team to Houston. We would not have been able to make the trip without their support.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">At Houston, the robot performed well and helped us end our season with a 6-4 record in a competitive field filled with top-tier robots from across the world. It was so exciting to see Janus compete on that stage after months of designing, building, programming, testing, and fixing problems together as a team.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Although making it this far was something we were incredibly proud of, there are still areas we would have liked to continue working on and will likely work on throughout the offseason. With more time and a lot of adjustments to the code and vision system, we would have loved to implement accurate shooting-on-the-move on our robot. It would’ve helped combat some of the heavy defense that was played at Houston, and increase the amount of cycles our robotics able to perform each match.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Overall, making it to Houston was a fitting end to an incredible season. It gave us the chance to compete against some of the best teams in the world and see how far our robot had come since the beginning of the year. Although there were still areas we could have improved, the experience of reaching the Championship was something we will always be proud of, and we hope it marks the beginning of a new annual tradition for the team.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 602px; height: 452px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26july27_14.png" alt="" width="602" height="452" /></div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/07/27/building-janus-how-a-first-robotics-team-engineered-a-championship-robot/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Automating the Unpredictable: Buckeye AutoDrive’s Random Obstacle Trajectory Generation</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/07/13/automating-the-unpredictable-buckeye-autodrives-random-obstacle-trajectory-generation/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/07/13/automating-the-unpredictable-buckeye-autodrives-random-obstacle-trajectory-generation/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 13 Jul 2026 14:47:31 +0000</pubDate>
				<category><![CDATA[Automotive]]></category>
		<category><![CDATA[adas]]></category>
		<category><![CDATA[autodrive]]></category>
		<category><![CDATA[RoadRunner]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13493</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/07/26July13_4.png" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>
Today we are joined by students from The Ohio State University&#8217;s SAE AutoDrive II team &#8211; Buckeye AutoDrive.
Representing the Center for Automotive Research (CAR) and the Ohio State... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/07/13/automating-the-unpredictable-buckeye-autodrives-random-obstacle-trajectory-generation/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Today we are joined by students from The Ohio State University&#8217;s SAE AutoDrive II team &#8211; Buckeye AutoDrive.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Representing the<a href="https://car.osu.edu/" target="_blank" rel="noopener"> Center for Automotive Research (CAR)</a> and the Ohio State Department of Electrical and Computer Engineering (ECE), the Senior Design Capstone Program has partnered with Buckeye AutoDrive to bridge the gap between theory and practice. The Capstone Program serves as a vital proving ground where ECE students transition from the classroom to solving complex, real-world engineering challenges. As a student-led team competing in the <a href="https://www.autodrivechallenge.com/" target="_blank" rel="noopener">AutoDrive Challenge II</a>, Buckeye AutoDrive brings together a multidisciplinary cohort of undergraduate and graduate students. Through this partnership, these two programs are working to shape the future engineering workforce.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">In this post, we will highlight how the Buckeyes utilize both <a href="https://www.mathworks.com/products/matlab.html" target="_blank" rel="noopener">MATLAB</a> and <a href="https://www.mathworks.com/products/roadrunner.html" target="_blank" rel="noopener">RoadRunner</a> to support their goal of improving autonomous driving systems. Specifically, we will focus on how they automate random obstacle trajectory placements. This breakthrough bolsters software testing robustness and pinpoints critical “edge case” scenarios. Below, we will outline the motivation and methodology of this development. Enjoy and Go Bucks!</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 556px; height: 314px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26July13_1.png" alt="" width="556" height="314" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Figure 1. Buckeye AutoDrive Vehicle</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Motivation</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Simulation is the backbone of autonomous development, enabling rigorous software testing while eliminating the high costs and safety risks of physical trials. The Buckeye Simulation Team is dedicated to building an extensive collection of simulation tools that mirror the complexities of real-world driving. By prioritizing environmental diversity and data integrity, we empower the team to build safe, reliable software in a controlled, virtual environment.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The random obstacle trajectory generator was completed as part of the 2026 MathWorks Simulation Challenge for the SAE AutoDrive II Competition. While the challenge focused on complex scenarios, the team challenged themselves to think outside of the box and solve emerging testing struggles.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Designed with the demands of the autonomous vehicle industry in mind, this tool tackles the inherent unpredictability of the real world. By automating irregular obstacle placement, we allow developers to catch software &#8220;hiccups&#8221; in a safe, virtual space before the vehicle ever encounters them on the road.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Methodology</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The team developed a streamlined workflow to bridge the gap between MATLAB and RoadRunner</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Initializing and Software Feature Grouping</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The first step in any RoadRunner project is establishing a seamless connection between the application and the project files. To streamline this, we developed an initialization Graphical User Interface (GUI) using the MATLAB App Designer application. Users declare the file paths for both the RoadRunner installation and the specific project folder. These selection tools can be seen in Figure 2 below.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 605px; height: 305px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26July13_2.gif" alt="" width="605" height="305" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Figure 2. Initial Graphical User Interface (GUI) Utilization</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Efficiency is key. Once the connection is live, users can choose their testing path:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Predefined Feature Testing: </span>Shortcuts based on specific software features (e.g., Sign Detection).</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Manual Selection:</span> Allows developers to hand-pick scenarios for custom testing.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">In Figure 2 above, a sample of a Sign Detection software feature is selected. The user has a diverse set of options that are constantly being expanded by the team as new features are developed and new scenarios are created.</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">RoadRunner Handshake</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Once selected, MATLAB script then executes a &#8220;handshake,&#8221; calibrating the environment to the selected scenarios automatically. This script uses predefined functions from the <a href="https://www.mathworks.com/products/automated-driving.html" target="_blank" rel="noopener">Automated Driving Toolbox</a>. A flow chart of this process is seen below in Figure 3.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 763px; height: 390px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26July13_3.png" alt="" width="763" height="390" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Figure 3. Software Feature</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Using this handshake, the script will loop through every stored scenario selected earlier in the initialization GUI. During each run, the scene (e.g., Four Way Stop) will be loaded in RoadRunner. Into this environment, the scenario (e.g., Car Obstacle and Left Turn) will be loaded. After some parameter calibration in the script, the simulation will connect and compile the vehicle software using a <span style="font-style: italic;">.rrbehavior</span> file connection. Examples of different simulations can be seen below in Figure 4.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 640px; height: 426px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26July13_4.png" alt="" width="640" height="426" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Figure 4. RoadRunner Scenarios with Various Obstacles and Traffic Patterns</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Repetition and Data Analysis</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Robustness requires repeatability and analysis. Our framework includes a repetition feature, allowing the same scenario to run multiple times to ensure the simulation &#8211; and the vehicle&#8217;s response &#8211; remains consistent under identical conditions before we introduce randomness.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">After simulation runs, data from a stored .<span style="font-style: italic;">csv</span> file is analyzed. The file includes time stamped positions of each actor with velocity vectors. This.csv is synthesized using secondary MATLAB scripts to generate a variety of metric data. This data is computed across the simulation and compared to safety and comfort thresholds to determine if the simulations passed or failed. Examples of this data can be seen in Figure 5.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 941px; height: 263px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26July13_5.png" alt="" width="941" height="263" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Figure 5. Examples of Data Metric Outputs with Pass/Fail Tolerance Thresholds</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Random Obstacle Trajectory Generation</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This is the core innovation. Rather than using static actor trajectories, the generator randomizes the starting point of obstacles (Actor 2). When this feature is active, the MATLAB script initializes a RoadRunner instance containing only the obstacle actors, excluding the Ego vehicle. The script then exports the scene into a structured code format, which is programmatically modified to assign new, randomized coordinates to the obstacles. Finally, this modified obstacle code is injected back into the primary simulation environment, overlaying the randomized actors onto the existing Ego vehicle scenario.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 1037px; height: 289px;" src="https://blogs.mathworks.com/student-lounge/files/2026/07/26July13_6.png" alt="" width="1037" height="289" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Figure 6. Random Obstacle Trajectory Generation Simulation Maps</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">As shown in Figure 6, the blue trajectory line for Actor 2 is an obstacle that starts at various points. This ensures:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Variable Timing:</span> By shifting the start point, the obstacle crosses the ego vehicle&#8217;s path at different intervals.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Dynamic Response:</span> This forces the software to detect and react to threats at unpredictable times, rather than relying on &#8220;pre-programmed&#8221; success at a specific waypoint.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">By moving away from &#8220;predicted&#8221; obstacle points, our software can be tuned to detect and react at any moment. This level of thoroughness significantly increases the safety and reliability of our vehicle when it is eventually translated from the virtual world to the physical road.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Conclusion</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">By linking MATLAB and RoadRunner in a repeatable workflow, the Buckeye AutoDrive team generated randomized obstacle trajectories that added real-world unpredictability while exposing edge case scenarios that normal testing can miss, thereby strengthening safety and reliability before road testing.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/07/13/automating-the-unpredictable-buckeye-autodrives-random-obstacle-trajectory-generation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MathWorks Minidrone Competition – Europe 2025: Model‑Based Design for Autonomous UAVs</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/06/22/mathworks-minidrone-competition-europe-2025-model%e2%80%91based-design-for-autonomous-uavs/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/06/22/mathworks-minidrone-competition-europe-2025-model%e2%80%91based-design-for-autonomous-uavs/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 22 Jun 2026 11:44:42 +0000</pubDate>
				<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Simulink]]></category>
		<category><![CDATA[Team achievements]]></category>
		<category><![CDATA[Autonomous UAVs]]></category>
		<category><![CDATA[Line follower]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13479</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_1.png" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

The MathWorks Cambridge office hosted the Europe 2025 edition of the MathWorks Minidrone Competition, welcoming students from universities across Europe. The 2025 edition drew applications from... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/06/22/mathworks-minidrone-competition-europe-2025-model%e2%80%91based-design-for-autonomous-uavs/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The MathWorks Cambridge office hosted the Europe 2025 edition of the MathWorks Minidrone Competition, welcoming students from universities across Europe. The 2025 edition drew applications from over 40 student teams.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Following a structured simulation and evaluation phase, six top performing teams were selected to advance to the final In‑person deployment round at the MathWorks Cambridge office. For students who took part in the MathWorks Minidrone Competition – Europe 2025, the experience extended well beyond the final results. The competition accelerated learning, strengthened confidence, and challenged teams to apply classroom learnings in a real engineering setting.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For those less familiar with the Minidrone Competition, this blog takes a closer look at what the program offers, why it is relevant in an academic context, and what made the Europe 2025 edition a meaningful and memorable experience for participating students.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 704px; height: 530px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_1.png" alt="Fig 1 - MDC Europe 2025.png" width="704" height="530" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Student teams at the MathWorks Cambridge Office</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">What Is the MathWorks Minidrone Competition?</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The <a href="https://in.mathworks.com/academia/students/competitions/minidrones.html">MathWorks Minidrone Competition</a> is a structured, academic program designed to help university students apply classroom theory to real-world autonomous systems using model-based design.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The competition challenges students to design, simulate, and deploy autonomous flight control algorithms for a real minidrone using <a href="https://in.mathworks.com/products/simulink.html">Simulink</a>, following the same workflow used by engineers in industry from system modelling and simulation to hardware deployment and validation.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">By combining curriculum-aligned concepts with hands-on experimentation, the program enables students to move beyond theoretical understanding and gain practical experience with system modelling, control design, autonomous guidance and navigation using image processing and <a href="https://in.mathworks.com/products/stateflow.html">Stateflow.</a></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">The Simulation Round: Where Designs Took Shape</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The Europe 2025 edition of the MathWorks Minidrone Competition challenged students to design an autonomous minidrone line follower using Simulink, beginning with a rigorous simulation round before progressing to deployment on a real Parrot Mambo minidrone.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Launched earlier in the year, the competition invited university teams across Europe to start their journey in simulation, where they developed and validated their algorithms using Simulink. Following a structured submission and evaluation process, top‑performing teams progressed to the final deployment round, where their models were tested on real hardware.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This simulation-first phase was not a preliminary exercise, but a deliberate engineering filter. Teams were evaluated on accuracy, robustness, level of tool usage, and solution optimization of their models, reinforcing the principle that strong simulation is a prerequisite for reliable hardware deployment. This journey mirrored industry workflows—model, test, refine, and deploy—giving students an authentic taste of modern engineering practice.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="aligncenter wp-image-13471" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_2.gif" alt="" width="530" height="298" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Simulation of autonomous minidrone flight</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The competition culminated in <span style="font-weight: bold;">live finals held in November 2025 at the MathWorks Cambridge Office</span>, where shortlisted teams came together to deploy, test, and compete with their algorithms on physical minidrones.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">At the MathWorks Cambridge Office: Deployment on Hardware</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" width="400" height="711" class="aligncenter size-full wp-image-13472" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_3.gif" alt="" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Live hardware flight tests as part of the final deployment round</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The Minidrone Competition – Europe 2025 brought together over 40 student teams from across Europe, reflecting the broad academic engagement with model based‑design and autonomous systems. From this group, six finalist teams earned the opportunity to compete in person at the MathWorks Cambridge Office.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For finalist teams, the <span style="font-weight: bold;">MathWorks Cambridge Office</span> marked a decisive transition from validated simulation models to autonomous flight on real hardware. In <span style="font-weight: bold;">November 2025</span>, students arrived not to demonstrate concepts, but to test whether their designs could withstand the realities of a physical system.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Finalist teams represented a diverse set of institutions, including:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">University of Oxford</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">ISAE‑SUPAERO</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Warsaw University of Technology</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">A joint team from the Technical University of Denmark and Warsaw University of Technology</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The Simulink models developed during the simulation phase were deployed onto Parrot Mambo minidrones, exposing students to constraints such as small embedded processor, physical dynamics and environmental variability. For many participants, this was their first experience collaborating and competing alongside peers from different countries. Working in a shared technical environment highlighted the collaborative nature of modern engineering.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The onsite agenda balanced focused technical work with opportunities for discussion and exchange, reinforcing that effective engineering practice depends not only on individual models, but also on communication, comparison of approaches, and collective problem solving.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">What Students Took Away (Beyond Rankings)</span></h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">While competition results provided a clear benchmark, the primary outcomes for students extended well beyond rankings.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Through the simulation and deployment workflow, participants gained:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Hands on experience with model‑based design workflows</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Practical exposure to control systems and image processing</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Experience deploying and validating algorithms on real hardware</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Insight into how industry engineers structure, test, and iterate designs for engineered systems.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Opportunities to build peer connections across institutions and countries.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 416px; height: 554px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_4.png" alt="Media (25).jpg" width="416" height="554" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Campus walkthrough and discussion at the MathWorks Cambridge Office</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Learning Beyond the Competition: Engineering in Context</span></h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">As part of the Cambridge finals, finalists also participated in an <span style="font-weight: bold;">exclusive technical session on Engineered Systems</span>, delivered by Dr<span style="font-weight: bold;">. </span><span style="font-weight: bold;">Gavin Walker from the MathWorks CDA Team</span>. The session provided additional context on how complex engineered systems are approached in professional settings, complementing the Hands-on deployment experience from the competition itself.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 699px; height: 528px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_5.png" alt="Fig 5 - Expert led session on engineered systems.jpg" width="699" height="528" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Expert led‑ session on engineered system</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Together, the technical challenge, peer interaction, and exposure to industry perspectives offered students a broader view of how academic knowledge translates into engineering practice at scale.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Student Perspectives: The Competition Experience</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" width="400" height="711" class="aligncenter size-full wp-image-13475" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_6.gif" alt="" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Student Team from University of Oxford</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Hearing directly from participants helps illustrate what the competition workflow meant in practice. Rather than focusing on outcomes or rankings, students consistently reflected on the engineering process itself, particularly the role of Simulation.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">“Spending two days at the MathWorks Cambridge Office helped us clearly understand the gap between simulation and deployment. The first day focused on testing and refining our model, followed by live deployment during the competition” &#8211; Team Abstract Quadqopter, University of Oxford</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 418px; height: 615px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_7.png" alt="Fig 7 - Team Abstract.png" width="418" height="615" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Team Abstract Quadqopter</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The Minidrone Competition helped us strengthen our MATLAB and Simulink skills beyond the learnings in coursework, particularly through hands‑on development and deployment. We look forward to the next edition of this event.” &#8211; Team KNR PW, Technology University of Denmark &amp; Warsaw University of Technology</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 426px; height: 544px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26june22_8.png" alt="Fig 8 - Team KNR PW.png" width="426" height="544" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Team KNR PW</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">These reflections underscore a shared experience across teams: the value of seeing theoretical designs tested, challenged, and improved when exposed to a competitive, collaborative environment.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Why This Matters for Universities and Educators</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For universities and educators across the globe, the MathWorks Minidrone Competition provides a structured way to reinforce core engineering concepts through applied learning, without requiring changes to existing curricula.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The competition aligns naturally with courses in perception, guidance, navigation, and control, as well as embedded applications in UAVs and robotics, enabling students to apply theoretical knowledge to real world applications through a model based design workflow.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The Europe 2025 edition further demonstrated how such programs can encourage collaboration across institutions, exposing students to peer learning. As a result, the Minidrone Competition acts as a practical extension of academic learning, strengthening the connection between theory, tools, and real world‑ implementation.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Looking Ahead</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The Europe 2025 edition demonstrated how structured, simulation first challenges can extend classroom learning into real engineering practice. As future editions evolve, the Minidrone Competition will continue to provide students and educators with opportunities to connect theory, tools, and deployment in a meaningful and applied context.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">If you are interested in participating, explore upcoming <a href="https://in.mathworks.com/academia/students/competitions/minidrones.html">MathWorks Minidrone Competitions near you.</a></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">If you would like to host the MathWorks Minidrone Competition on your campus, club, or as part of a course, please reach out to us at <a href="mailto:minidronecompetition@mathworks.com">minidronecompetition@mathworks.com</a><span style="font-weight: bold;">.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/06/22/mathworks-minidrone-competition-europe-2025-model%e2%80%91based-design-for-autonomous-uavs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using Lidar for 3D Object Detection</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/06/01/using-lidar-for-3d-object-detection/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/06/01/using-lidar-for-3d-object-detection/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 14:33:04 +0000</pubDate>
				<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[deep learning]]></category>
		<category><![CDATA[lidar]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13461</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/06/Point-Cloud-Player_zoom1.png" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>
Today, we&#8217;re going through each step of creating a 3D object detector using Lidar data. We&#8217;ll start with an introduction to 3D point clouds and how to process them, then we&#8217;ll... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/06/01/using-lidar-for-3d-object-detection/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Today, we&#8217;re going through each step of creating a 3D object detector using Lidar data. We&#8217;ll start with an introduction to 3D point clouds and how to process them, then we&#8217;ll label point clouds for deep learning, train an 3D object detector, and wrap up by discussing a few options for deploying the detector to your projects or hardware.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The complete dataset, code, and videos we&#8217;ll be discussing in this blog can be found at this <a href="https://github.com/mathworks-robotics/deep-learning-for-3D-object-detection" target="_blank" rel="noopener">GitHub Repository</a>.</div>
<ol style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="#M_70a0">Understanding and Processing Point Clouds</a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="#M_2f86">Labeling Point Clouds for Deep Learning</a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="#M_6179">Training a 3D Object Detector with Deep Learning</a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="#M_6ad9">Deploying a 3D Object Detector</a></li>
</ol>
<h2 id="M_70a0" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">1. Understanding and Processing Point Clouds</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The dataset used in this example can be found in this <a href="https://github.com/mathworks-robotics/deep-learning-for-3D-object-detection/tree/main/parkingLot" target="_blank" rel="noopener">&#8216;parkingLot&#8217; folder</a> and will need to be downloaded in order to follow along. A video explanation of this topic can be found <a href="https://www.youtube.com/watch?v=g-fD_2qSFVo&amp;list=PLn8PRpmsu08r-T6JFLhf-Bp3QcEpzE1ex&amp;index=1" target="_blank" rel="noopener">here</a>.</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Understanding Point Clouds</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Lidar sensors record spatial data and store it as a <span style="font-style: italic;">point cloud</span>, or a collection of points that represent the world around the sensor. In a 3D point cloud, these points are stored as x,y,z coordnates and can be visualized, so if your environment looks like this:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 599px; height: 338px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_1.png" alt="" width="599" height="338" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">your point cloud might look like this:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 600px; height: 340px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_2.png" alt="" width="600" height="340" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This is a way of numerically representing the world around us in 3 dimensions, which is helpful for developing algorithms that rely on things like distance from a robot or size of an object.</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Processing Point Clouds</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Processing point clouds before using them for deep learning can often lead to better results. The <a href="https://www.mathworks.com/help/lidar/ref/lidarviewer-app.html" target="_blank" rel="noopener">Lidar Viewer App</a> lets you import, view, and process point clouds interactively, and is demonstrated in this <a href="https://www.youtube.com/watch?v=g-fD_2qSFVo&amp;list=PLn8PRpmsu08r-T6JFLhf-Bp3QcEpzE1ex&amp;index=1&amp;t=179s" target="_blank" rel="noopener">video</a>.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">You can also process point clouds programmatically. Load in a point cloud from our dataset using the <span style="font-family: monospace;">pcread</span> function:</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">singlePtCld = pcread(<span style="color: #a709f5;">&#8216;./parkingLot/frame_0001.pcd&#8217;</span>);</span></div>
</div>
<div class="inlineWrapper outputs">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pcshow(singlePtCld)</span></div>
<div style="color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% / auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;">
<div class="inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsFigure" style="width: 1139px;" tabindex="-1" data-testid="output_0">
<div class="outputLayer selectedOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer activeOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer scrollableOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer navigationFocusLayer doNotExport" tabindex="-1" role="application" aria-hidden="false"></div>
<div class="figureElement eoOutputContent" role="article" aria-roledescription="Use Browse Mode to explore " aria-description="figure output "><img decoding="async" class="figureImage figureContainingNode" style="width: 560px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_3.png" /></div>
</div>
</div>
</div>
</div>
<h3 style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Denoising</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Point clouds can have &#8220;noise&#8221;, or data points that are outliers to what you&#8217;d expect to see in your point cloud. Use the <span style="font-family: monospace;">pcdenoise</span> function to remove or reduce these. The purple points in the figure below represent points that were removed.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">ptCloudDenoise = pcdenoise(singlePtCld);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">figure</span></div>
</div>
<div class="inlineWrapper outputs">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pcshowpair(singlePtCld, ptCloudDenoise)</span></div>
<div style="color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% / auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;">
<div class="inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsFigure" style="width: 1139px;" tabindex="-1" data-testid="output_1">
<div class="outputLayer selectedOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer activeOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer scrollableOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer navigationFocusLayer doNotExport" tabindex="-1" role="application" aria-hidden="false"></div>
<div class="figureElement eoOutputContent" role="article" aria-roledescription="Use Browse Mode to explore " aria-description="figure output "><img decoding="async" class="figureImage figureContainingNode" style="width: 560px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_4.png" /></div>
</div>
</div>
</div>
</div>
<h3 style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Downsampling</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Depending on your LiDAR and the environment you collected data in, you may have a lot of data points, which can lead to slower computaton. Use the <span style="font-family: monospace;">pcdownsample</span> function to make your point cloud less dense through downsampling. Use <span style="font-family: monospace;">pcshowpair</span> to view which data points were removed (purple) and which stayed (green).</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">ptCloudDownSampled = pcdownsample(ptCloudDenoise,<span style="color: #a709f5;">&#8216;random&#8217;</span>,0.60);</span></div>
</div>
<div class="inlineWrapper outputs">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pcshowpair(ptCloudDenoise, ptCloudDownSampled)</span></div>
<div style="color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% / auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;">
<div class="inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsFigure" style="width: 1139px;" tabindex="-1" data-testid="output_2">
<div class="outputLayer selectedOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer activeOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer scrollableOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer navigationFocusLayer doNotExport" tabindex="-1" role="application" aria-hidden="false"></div>
<div class="figureElement eoOutputContent" role="article" aria-roledescription="Use Browse Mode to explore " aria-description="figure output "><img decoding="async" class="figureImage figureContainingNode" style="width: 560px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_5.png" /></div>
</div>
</div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Check out <a href="https://www.mathworks.com/help/driving/lidar-processing.html" target="_blank" rel="noopener">this documentation page</a> to see further options for processing lidar data.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">It can be helpful to test out different preprocessing methods on a single point cloud to see how it affects your data. Once you have a combination of steps and settings that you&#8217;re happy with, you can apply it to the whole dataset. This is easy to do with the Lidar Viewer app, which exports the processed dataset to a folder called parkingLot_Edit by default.</div>
<h2 id="M_2f86" style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">2. Labeling Point Clouds for Deep Learning</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Once the data is processed, you can label the objects in the point clouds. First, split the data into a train and test dataset, which helps for the deep learning step.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pcd_files = dir(<span style="color: #a709f5;">&#8220;./parkingLot_Edit/*.pcd&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">test_data = pcd_files(1:366);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">train_data = pcd_files(367:807); </span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">if </span>~exist(<span style="color: #a709f5;">&#8220;./parkingLotTrain&#8221;</span>, <span style="color: #a709f5;">&#8216;dir&#8217;</span>)</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> mkdir(<span style="color: #a709f5;">&#8220;./parkingLotTrain&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">end</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">if </span>~exist(<span style="color: #a709f5;">&#8220;./parkingLotTest&#8221;</span>, <span style="color: #a709f5;">&#8216;dir&#8217;</span>)</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> mkdir(<span style="color: #a709f5;">&#8220;./parkingLotTest&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">end</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">for </span>i=1:length(train_data)</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> fileName = fullfile(train_data(i).folder, train_data(i).name);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> copyfile(fileName, <span style="color: #a709f5;">&#8220;./parkingLotTrain&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">end</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">for </span>i=1:length(test_data)</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> fileName = fullfile(test_data(i).folder, test_data(i).name);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> copyfile(fileName, <span style="color: #a709f5;">&#8220;./parkingLotTest&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #0e00ff;">end</span></span></div>
</div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For this example, we label cars, cones, and barrels using the <a href="https://www.mathworks.com/help/lidar/ref/lidarlabeler-app.html" target="_blank" rel="noopener">Lidar Labeler app</a>. You can start a new labeling session by running the &#8216;lidarLabeler&#8217; command below</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 0.666667px solid #d9d9d9;"><span style="white-space: pre;">lidarLabeler</span></div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">or by selecting the Lidar Labeler app from the &#8216;APPS&#8217; tab.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Watch <a href="https://www.youtube.com/watch?v=0d7dg91Osxo&amp;list=PLn8PRpmsu08r-T6JFLhf-Bp3QcEpzE1ex&amp;index=2" target="_blank" rel="noopener">this video</a> to see how we label the dataset and save the labels to a variable called <span style="font-family: monospace;">gTruth:</span></div>
<div></div>
<p><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/0d7dg91Osxo?si=rggLx2MANaZJvcgY" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 id="M_6179" style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">3. Training a 3D Object Detector with Deep Learning</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">With a labeled dataset, it&#8217;s time to train your object detector! A video explanation of this topic can be found <a href="https://www.youtube.com/watch?v=pwoUySMYUlM&amp;list=PLn8PRpmsu08r-T6JFLhf-Bp3QcEpzE1ex&amp;index=3" target="_blank" rel="noopener">here</a>.</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Import Labeled Data</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Create datastores to access the data and associate labels with their corresponding point clouds.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">[pcds,bxds] = lidarObjectDetectorTrainingData(gTruth, <span style="color: #a709f5;">&#8220;SamplingFactor&#8221;</span>,1);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">dsTrain = combine(pcds, bxds);</span></div>
</div>
<div class="inlineWrapper outputs">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">preview(dsTrain)</span></div>
<div style="color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% / auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;">
<div class="inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableTableElement" style="width: calc(100% - 5px);" tabindex="-1" data-testid="output_3">
<div class="outputLayer selectedOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer activeOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer scrollableOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer navigationFocusLayer doNotExport" tabindex="-1" role="application" aria-hidden="false"></div>
<div id="variableeditor_client_Document_0" class="ClientDocument veSpecifier table DataFitToViewport" tabindex="0" aria-labelledby="variableeditor_views_SummaryBar_0">
<div class="summaryBar" style="font-size: 12px; font-family: Consolas, Inconsolata, Menlo, monospace;">ans = <span style="color: #b3b3b3; font-style: normal;">1×3 cell </span></div>
<div id="variableeditor_TableViewModel_0" class="cell lightWeightView ClientViewDiv hasSummaryBar" style="width: 100%; overflow: auto;" data-viewid="__1">
<table style="border-spacing: 0px; border-collapse: collapse;" cellspacing="0">
<thead>
<tr>
<th style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 6px 3px 3px; width: 34px; border: 1px solid #bfbfbf; text-align: left; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;" rowspan="1"></th>
<th style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid #bfbfbf; text-align: center; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;">1</th>
<th style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid #bfbfbf; text-align: center; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;">2</th>
<th style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid #bfbfbf; text-align: center; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;">3</th>
</tr>
</thead>
<tbody>
<tr>
<th style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 6px 3px 3px; width: 34px; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; text-align: left; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;">1</th>
<td style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; text-align: left;">1×1 pointCloud</td>
<td style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; text-align: left;">4×9 double</td>
<td style="text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; white-space: nowrap; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; text-align: left;">4×1 categorical</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">When you read from the datastore <span style="font-family: monospace;">dsTrain</span>, it returns a point cloud, bounding boxes of each object in the point cloud, and the labels for each bounding box.</div>
<h3 style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Augment the Data</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Augmentation is a great way to make your dataset, and therefore your object detector, more robust. Use the <span style="font-family: monospace;">sampleLidarData</span> function to collect point cloud samples from each of the classes present in the data.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">classNames = [<span style="color: #a709f5;">&#8220;car&#8221;</span>, <span style="color: #a709f5;">&#8220;barrel&#8221;</span>, <span style="color: #a709f5;">&#8220;cone&#8221;</span>]; </span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">sampleLocation = fullfile(pwd, <span style="color: #a709f5;">&#8220;parkingLotSampled&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">[ldsSampled,bdsSampled] = sampleLidarData(dsTrain,classNames,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> WriteLocation=sampleLocation,Verbose=false);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">dsSampled = combine(ldsSampled,bdsSampled);</span></div>
</div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Then, apply the &#8216;pcBboxOversample&#8217; function to insert these samples into each point cloud, ensuring that each point cloud will have at least 3 of each object. The images below are an example of what this process looks like.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 412px; height: 309px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_6.png" alt="" width="412" height="309" /> <img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 412px; height: 310px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_7.png" alt="" width="412" height="310" /></div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">totalObjects = 3;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">dsOversampled = transform(dsTrain,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> @(x)pcBboxOversample(x,dsSampled,classNames,totalObjects));</span></div>
</div>
</div>
<h3 style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Configure Object Detector</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Specify the point cloud range, class names, and <a href="https://www.mathworks.com/help/vision/ug/anchor-boxes-for-object-detection.html" target="_blank" rel="noopener">anchor boxes</a> that you&#8217;ll use to train the detector.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">anchorBoxes = calculateAnchorsPointPillars(gTruth.LabelData);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">xMin = 0;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">xMax = 69.12;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">yMin = -39.68; </span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">yMax = 39.68;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">zMin = -0.5157;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">zMax = 5;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pcRange = [xMin, xMax, yMin, yMax, zMin, zMax];</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pretrainedDetector = load(<span style="color: #a709f5;">&#8220;pretrainedPointPillarsDetector.mat&#8221;</span>,<span style="color: #a709f5;">&#8220;detector&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">oldDetector = pretrainedDetector.detector;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">detector = pointPillarsObjectDetector(oldDetector.Network,pcRange,classNames,anchorBoxes);</span></div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Use the <a href="https://www.mathworks.com/help/deeplearning/ref/trainingoptions.html" target="_blank" rel="noopener"><span style="font-family: monospace;">trainingOptions</span></a> function to specify how the model will be trained. Choosing training options is an iterative process, so try adjusting some of these options and see how it affects the performance of your detector.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">options = trainingOptions(<span style="color: #a709f5;">&#8216;adam&#8217;</span>,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;MaxEpochs&#8217;</span>,60,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;MiniBatchSize&#8217;</span>,3,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;GradientDecayFactor&#8217;</span>,0.9,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;SquaredGradientDecayFactor&#8217;</span>,0.999,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;LearnRateSchedule&#8217;</span>,<span style="color: #a709f5;">&#8220;piecewise&#8221;</span>,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;InitialLearnRate&#8217;</span>,0.0002,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;LearnRateDropPeriod&#8217;</span>,15,<span style="color: #0e00ff;">&#8230;</span> </span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;LearnRateDropFactor&#8217;</span>,0.8,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;BatchNormalizationStatistics&#8217;</span>,<span style="color: #a709f5;">&#8216;moving&#8217;</span>,<span style="color: #0e00ff;">&#8230;</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"> <span style="color: #a709f5;">&#8216;ResetInputNormalization&#8217;</span>,false);</span></div>
</div>
</div>
<h3 style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Train Object Detector</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Use the <span style="font-family: monospace;">trainPointPillarsObjectDetector</span> function to train your network!</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 0.666667px solid #d9d9d9;"><span style="white-space: pre;">[detector,info] = trainPointPillarsObjectDetector(dsOversampled,detector,options);</span></div>
</div>
</div>
<h3 style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Test Object Detector</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Now that you have a trained detector, test it on a frame from the test set:</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">player = pcplayer([xMin xMax],[yMin yMax],[zMin zMax]);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">testframe = pcread(<span style="color: #a709f5;">&#8216;./parkingLotTest/frame_0014.pcd&#8217;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">view(player,testframe);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">ax = player.Axes;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">[bboxes,scores,labels] = detect(detector,testframe,<span style="color: #a709f5;">&#8220;Threshold&#8221;</span>,0.4);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"></div>
</div>
<div class="inlineWrapper outputs">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">showShape(<span style="color: #a709f5;">&#8220;cuboid&#8221;</span>,bboxes,Color=<span style="color: #a709f5;">&#8220;green&#8221;</span>,Parent=ax,Opacity=0.3,LineWidth=1);</span></div>
<div style="color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% / auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;">
<div class="inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsFigure" style="width: 1139px;" tabindex="-1" data-testid="output_4">
<div class="outputLayer selectedOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer activeOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer scrollableOutputDecorationLayer doNotExport" aria-hidden="true"></div>
<div class="outputLayer navigationFocusLayer doNotExport" tabindex="-1" role="application" aria-hidden="false"></div>
<div class="figureElement eoOutputContent" role="article" aria-roledescription="Use Browse Mode to explore " aria-description="figure output "><img decoding="async" class="figureImage figureContainingNode" style="width: 560px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_8.png" /></div>
</div>
</div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">By showing the detected objects, we can see that the detector is successfully detecting the row of barrels!</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Once you have a 3d object detector that you&#8217;re happy with, save it to a .MAT file for later use.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 0.666667px solid #d9d9d9;"><span style="white-space: pre;">save <span style="color: #a709f5;">detector detector</span></span></div>
</div>
</div>
<h2 id="M_6ad9" style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">4. Deploying a 3D Object Detector</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">You will need to do some setup before you can deploy a neural network. Watch <a href="https://www.youtube.com/watch?v=F3c6pcHM_aQ&amp;list=PLn8PRpmsu08r-T6JFLhf-Bp3QcEpzE1ex&amp;index=4&amp;t=748s" target="_blank" rel="noopener">this video</a> to learn more about the setup steps and for an explanation of the following options.</div>
<ol style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="#H_7246B1BB" target="_blank" rel="noopener">Generate a static library</a></li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><a href="#H_8FF2D8D7" target="_blank" rel="noopener">Generate an executable ROS2 node</a></li>
</ol>
<h3 id="H_7246B1BB" style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">Option 1: Generating a Static Library</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">To get started, create an inference function called <span style="font-family: monospace;">pillarPredict</span> that loads the trained network, makes a prediction, and returns the detection results.</div>
<div class="preformatted-matlab" style="margin: 10px 3px 10px 55px; padding: 10px 10px 10px 5px;">
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #0e00ff;">function </span>[bboxes, scores, labels] = pillarPredict(pcloud_3d, intensities)</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #008013;">%#codegen</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">persistent </span>mynet</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">if </span>isempty(mynet)</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> mynet = coder.loadDeepLearningNetwork(<span style="color: #a709f5;">&#8216;detector.mat&#8217;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">end</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">%Converting to pointCloud so the model can detect objects. pointCloud</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">%function can be used in code generation</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> pcloud = pointCloud(pcloud_3d, Intensity=intensities);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> [bboxes,scores,labels] = detect(mynet,pcloud,<span style="color: #a709f5;">&#8216;Threshold&#8217;</span>,0.5);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #0e00ff;">end</span></span></div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Then, create an entry point script. This helps in defining the input and output variable types and shapes.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% Load a test data point and convert it from point cloud to 3D array</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pcloud = pcread(<span style="color: #a709f5;">&#8220;..\testData\frame_0001.pcd&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">pcloud_3d = pcloud.Location;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">intensities = pcloud.Intensity;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">[bboxes, scores, labels] = pillarPredict(pcloud_3d, intensities);</span></div>
</div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Now, open MATLAB Coder and set it up to generate a static library. The code generation function will be the <span style="font-family: monospace;">pillarPredict</span> function and the entry point script is the entry point function shown above.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 0.666667px solid #d9d9d9;"><span style="white-space: pre;">coder</span></div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Ensure that &#8216;Enable code generation for deep learning&#8217; is checked and the right library is used. This can be set under Settings -&gt; Deep Learning as shown below.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 595px; height: 422px;" src="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1_9.png" alt="" width="595" height="422" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The next step is to generate code. Here, choose a static library, then click &#8216;Generate&#8217; to begin code generation. The static library can then be used with your project!</div>
<h3 id="H_8FF2D8D7" style="margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;">ROS Node Generation</h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">These steps show how to generate a ROS2 node that subscribes to a point cloud message and publishes the inference of the trained network. To get started, setup MATLAB Coder to generate a ROS2 node and to use the appropriate deep learning library. For this example, we&#8217;ll generate a node that can run on a Jetson Orin Nano using the CUDNN library, which uses CUDA cores to speed up inference.</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% Setup the coder to generate a ROS2 node on a remote device</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg = coder.config(<span style="color: #a709f5;">&#8220;exe&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.Hardware = coder.hardware(<span style="color: #a709f5;">&#8220;Robot Operating System 2 (ROS 2)&#8221;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.Hardware.DeployTo = <span style="color: #a709f5;">&#8220;Remote Device&#8221;</span>;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.Hardware.BuildAction = <span style="color: #a709f5;">&#8220;Build and run&#8221;</span>;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% The Jetson board has an ARM 64 bit processor so we choose that as the device type</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.HardwareImplementation.ProdHWDeviceType = <span style="color: #a709f5;">&#8220;ARM Compatible-&gt;ARM 64-bit (LLP64)&#8221;</span>;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.HardwareImplementation.ProdLongLongMode = true;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% The next three lines sets up the GPU coder and sets up to use CUDNN</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.GpuConfig = coder.GpuCodeConfig;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.GpuConfig.Enabled = true;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.DeepLearningConfig = coder.DeepLearningConfig(<span style="color: #a709f5;">&#8216;cudnn&#8217;</span>);</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% The last 4 lines provides information of the remote device so the coder</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;"><span style="color: #008013;">% can transfer the generated code and build it.</span></span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.Hardware.RemoteDeviceAddress = <span style="color: #a709f5;">&#8216;172.21.89.193&#8217;</span>;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.Hardware.ROS2Workspace = <span style="color: #a709f5;">&#8216;/home/ubuntu/ros2_ws&#8217;</span>;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.Hardware.RemoteDeviceUsername = <span style="color: #a709f5;">&#8216;ubuntu&#8217;</span>;</span></div>
</div>
<div class="inlineWrapper">
<div style="border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;"><span style="white-space: pre;">cfg.Hardware.RemoteDevicePassword = <span style="color: #a709f5;">&#8216;ubuntu&#8217;</span>;</span></div>
</div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">With the coder setup, you can create a MATLAB ROS2 node that can then be used to generate a CUDA ROS node. The below function <span style="font-family: monospace;">lidarInfer</span> creates a simple node that subscribes the topic &#8220;static_cloud&#8221; (which is being published by another node that reads the point cloud file) and publishes the bounding box location and object labels.</div>
<div class="preformatted-matlab" style="margin: 10px 3px 10px 55px; padding: 10px 10px 10px 5px;">
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #0e00ff;">function </span>lidarInfer()</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">%#codegen</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> node = ros2node(<span style="color: #a709f5;">&#8220;/detector_node&#8221;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> pclSub = ros2subscriber(node, <span style="color: #a709f5;">&#8220;/static_cloud&#8221;</span>,<span style="color: #a709f5;">&#8220;sensor_msgs/PointCloud2&#8221;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">% Create a bounding box publisher</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> bboxPub = ros2publisher(node, <span style="color: #a709f5;">&#8216;/bbox&#8217;</span>,<span style="color: #a709f5;">&#8216;std_msgs/Float32MultiArray&#8217;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> bboxMsg = ros2message(<span style="color: #a709f5;">&#8220;std_msgs/Float32MultiArray&#8221;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">% Create a label publisher</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> labelPub = ros2publisher(node, <span style="color: #a709f5;">&#8216;/label&#8217;</span>, <span style="color: #a709f5;">&#8216;std_msgs/String&#8217;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> labelMsg = ros2message(<span style="color: #a709f5;">&#8220;std_msgs/String&#8221;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> r = ros2rate(node, 30);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> reset(r);</span></div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We set the rate to 30Hz, but this would depend on the hardware you use and the inference speed that can be achieved along with the rate at which the Lidar is publishing.</div>
<div class="preformatted-matlab" style="margin: 10px 3px 10px 55px; padding: 10px 10px 10px 5px;">
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">while</span>(1)</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> [data, ~, ~] = receive(pclSub, 5);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">if </span>~isempty(data)</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">% Using raw data to pass to the predict function since a pointcloud object cannot be passed to a code generation function</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> rawData = rosReadXYZ(data);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> [bboxes, scores, labels] = pillarPredict(rawData);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> [~,idx] = max(scores);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> bboxMsg.data = zeros(6, 1, <span style="color: #a709f5;">&#8216;single&#8217;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> labelMsg.data = <span style="color: #a709f5;">&#8221;</span>;</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">if </span>~isempty(scores)</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> bboxMsg.data = single(bboxes(idx,:)&#8217;);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> label_data = cellstr(labels(idx));</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> labelMsg.data = label_data{1};</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">end</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> send(bboxPub, bboxMsg);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> send(labelPub, labelMsg);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">end</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> waitfor(r);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">end</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #0e00ff;">end</span></span></div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The main loop shown above reads the point cloud message and then passes it to the <span style="font-family: monospace;">pillarPredict</span> function shown below, which loads the trained network and returns the inference results. The results are then passed into the bounding box and label variables before being published.</div>
<div class="preformatted-matlab" style="margin: 10px 3px 10px 55px; padding: 10px 10px 10px 5px;">
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #0e00ff;">function </span>[bboxes, scores, labels] = pillarPredict(pcloud_3d)</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #008013;">%#codegen</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">persistent </span>mynet</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">if </span>isempty(mynet)</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> mynet = coder.loadDeepLearningNetwork(<span style="color: #a709f5;">&#8216;detector.mat&#8217;</span>);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #0e00ff;">end</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">%Converting to pointCloud so the model can detect objects. pointCloud</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> <span style="color: #008013;">%function can be used in code generation</span></span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> pcloud = pointCloud(pcloud_3d);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"> [bboxes,scores,labels] = detect(mynet,pcloud,<span style="color: #a709f5;">&#8216;Threshold&#8217;</span>,0.5);</span></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"></div>
<div style="border-radius: 0px; padding: 0px; line-height: 15.6px; min-height: 16px; white-space: pre; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px; border: 0px none #212121;"><span style="white-space: pre;"><span style="color: #0e00ff;">end</span></span></div>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For the purpose of code generation, save these functions in separate files. Now, pass the function and coder setup to the <span style="font-family: monospace;">codegen</span> function</div>
<div style="background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;">
<div class="inlineWrapper">
<div style="border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 0.666667px solid #d9d9d9;"><span style="white-space: pre;">codegen <span style="color: #a709f5;">lidarInfer -config cfg</span></span></div>
</div>
</div>
<div style="margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The generated code is then transferred to the remote device and built before being executed. Now the node runs on the Jetson independent of MATLAB and can be stopped or started again through the device.</div>
</div>
<p><script type="text/javascript">var css = '.eoOutputWrapper { width: calc(90vw - 10px) !important; } .embeddedOutputsVariableTableElement .ClientViewDiv  table tr {  height: 22px;  white-space: nowrap;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr td,.embeddedOutputsVariableTableElement .ClientViewDiv  table tr th {  background-color:white;  text-overflow: ellipsis;  font-family: Arial, sans-serif;  font-size: 12px;  overflow : hidden;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr span {  text-overflow: ellipsis;  padding: 3px;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr th {    color: rgba(0,0,0,0.5);  padding: 3px;  font-size: 9px;} /* ClientDocument has a summary bar child that takes up 17px, this clashes with overflow on the view which allots space for scrollbars. On print preview, this causes headers from </p>
</p>
</p>
<thead>
<p> to overlap on subsequent pages. Displaying Document as flex renders summarybar and view in column format and fixes the issue g2788485 */.embeddedOutputsVariableTableElement .ClientDocument {  display: flex;  flex-direction: column;}'; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script><a href="https://blogs.mathworks.com/student-lounge/files/2026/06/26June1.mlx"><button class="btn btn-sm btn_color_blue pull-right add_margin_10">Download Live Script</button></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/06/01/using-lidar-for-3d-object-detection/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bringing DB-15 to Life with Model-Based Design</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/05/18/bringing-db-15-to-life-with-model-based-design/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/05/18/bringing-db-15-to-life-with-model-based-design/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 18 May 2026 12:30:46 +0000</pubDate>
				<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Simulink]]></category>
		<category><![CDATA[Team achievements]]></category>
		<category><![CDATA[robotics]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13441</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/05/upload.gif" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

For this week’s blog post, we invited the DuBois Area Robotics team to share their journey and how they used MATLAB and Simulink for the 2025 BEST Robotics Championship. MathWorks is immensely... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/05/18/bringing-db-15-to-life-with-model-based-design/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-style: italic;">For this week’s blog post, we invited the DuBois Area Robotics team to share their journey and how they used MATLAB and Simulink for the 2025 </span><a href="https://bestrobotics.org/" target="_blank" rel="noopener"><span style="font-style: italic;">BEST Robotics</span></a><span style="font-style: italic;"> Championship. MathWorks is immensely proud of their achievements, and we hope you also find their insights useful! With that, I’ll hand it over to them.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Who We Are: DuBois Area Robotics</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We are DuBois Area Robotics, a public high school robotics club based in western-central Pennsylvania. We have been competing in BEST Robotics since 2011 and VEX Robotics since 2019.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">For BEST Robotics, we often include a few students from neighboring districts. One of the aspects of BEST that keeps us returning is its company-style structure, which requires us to integrate marketing, engineering, and design into a unified team effort. We also enjoy the challenge of building a competitive robot using only common materials that can be found in a typical hardware store.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 487px; height: 383px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_1.png" alt="" width="487" height="383" /></div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Kneeling (L to R)</span>: Aubree Evans (CEO, Lead Driver), Aiden Via (Marketing Head)</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Standing (L to R, both rows)</span>: Ken Evans (coach), Marissa Gilga (Lead Exhibit), Mason Keller, Nic Evans, Derrick Weber (Lead Builder), Bela Keller (Lead Programmer), Peyton Walker (Lead Notebook), Paul McCloskey, Jen Keith (coach), Jack Stringer</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Not Pictured</span>: Molly Sensor, Nolen Murray</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 823px; height: 290px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_2.png" alt="" width="823" height="290" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2></h2>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Our Robot: [DB-15]</h2>
<p>&nbsp;</p>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 654px; height: 201px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_3.png" alt="" width="654" height="201" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This year’s game,<a href="https://www.youtube.com/watch?v=Fe7yaAlJ6aQ" target="_blank" rel="noopener"> <span style="text-decoration: underline;">Factoids</span></a>, was built around the concept of training an AI system. The major tasks were to connect a neural network and then train it with valid information, “true factoids”. Towards this end, we designed DB-15 to quickly connect the network and passively collect a large amount of factoids, autonomously sorting the true and false factoids.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">DB-15 measures 23” × 23.5” × 23.75” and weighs 24.00 lbs, and is built around five main subsystems that operate under both autonomous and driver control. Its wide wheelbase and large wheels were chosen to improve stability when climbing the ramp and navigating the field.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold;">Factoid Collection &amp; Transport</span></div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The robot collects factoids through an intake on the back.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Simply driving over factoids funnels them into the intake and then to the Archimedes screw in the center of the robot.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The Archimedes screw transports both true and false factoids up into the sorting mechanism.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold;">Sorting Mechanism</span></div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">An infrared sensor and a limit switch are used to differentiate between the factoids.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The IR sensor first detects if there is a factoid in the sorting system.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The limit switch acts as a pressure plate (the true factoids are heavier and will trigger the switch).</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">True factoids are stored in a magazine until the driver is ready to score.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">False factoids are dropped into a storage box (“fake news” box) to prevent recollecting factoids that have already been sorted.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">At the end of the match, the arm can open the fake news box.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold;">Arm &amp; Scoring System</span></div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The arm was geared for torque to control a heavy tray that can carry all five neural network tiles at once.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The tray is hinged in the middle so it can fold to remain size compliant.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The tray is connected to the arm using 3D-printed team custom parts that serve as a latch, end effector, and release trigger for an arm extension.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Two neodymium magnets on the underside of the arm allow passive collection of true “Wall Street” factoids while actively retrieving a “Library of Content” factoid.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 745px; height: 766px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_4.png" alt="" width="745" height="766" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 745px; height: 519px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_5.png" alt="" width="745" height="519" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 747px; height: 675px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_6.png" alt="" width="747" height="675" /></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Our Design Process</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We began by breaking down the game rules and fully understanding the scoring system. From there, we evaluated the difficulty of each task to develop a realistic strategy, focusing on areas where technical and programming solutions could provide an advantage. Once our strategy was defined, we created a list of core robot systems and their required functions and attributes.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Normally, we divide systems among small groups for parallel brainstorming, but due to our smaller team size, the entire design team worked through each system sequentially. Individual members then took ownership of specific ideas. Competing designs were evaluated collaboratively and integrated into the final robot design. Throughout the process, we consistently looked for opportunities where software could improve or simplify mechanical solutions.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We chose to use Simulink for several reasons:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Simulation was valuable given our 8-week build season, where most of our time is spent constructing the robot and there is limited time for on-robot testing.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">It allowed us to develop and test control logic before hardware assembly, reducing the need for extensive debugging later.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">We could simulate controller inputs and observe system behavior, giving us feedback on signal flow and control response.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The block-based environment made it more intuitive for modeling control systems and state logic than traditional text-based programming.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Many of the systems on our robot are natural matches for Stateflow charts, and when they are not, we still have the option of using custom functions for text coding or manipulating them with other Simulink blocks.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our team has been using Simulink since 2016 and prioritizes training at least one new member each year to support knowledge transfer. However, each season remains a learning experience, as most new members have limited prior exposure. While online courses and webinars are available, one of our coaches is pretty good with Simulink, and if we forget something, he can help with the basics or suggest an alternative approach.We also do a lot of online searches and look over Simulink videos from other years to learn about other approaches.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Last year, we were fortunate to have a former lead programmer mentor the team. Our current lead programmer is a junior with one year remaining, and we are actively training a younger member to take over in the future. He began in 6th grade, and Simulink’s visual programming environment made it significantly easier for him to learn core concepts early on.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Our Code Implementation</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This year, we faced an additional challenge as BEST transitioned from the VEX Cortex to the VEX V5 control system. It was a late change, and we had to transition from the existing<a href="https://www.mathworks.com/matlabcentral/fileexchange/47666-simulink-coder-support-package-for-arm-cortex-based-vex-microcontroller" target="_blank" rel="noopener"><span style="text-decoration: underline;"> Simulink VEX Cortex </span></a>support to the <a href="https://www.mathworks.com/matlabcentral/fileexchange/68649-simulink-coder-support-package-for-vex-edr-v5-robot-brain" target="_blank" rel="noopener"><span style="text-decoration: underline;">VEX V5 support package in Simulink</span></a>, which required some adaptation. The main issue was the new motor controller (MC55) and missing input ports on the controller block (for simulation). As recommended, we used the <a href="https://www.mathworks.com/help/rtw/vexv5/ref/smartmotorwrite.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">V5 Smart Motor Write block</span></a> to control the MC55, and after some testing, we were able to achieve consistent and expected motor behavior.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The V5 remote control blocks also did not initially support simulation inputs in our workflow. To enable full system simulation, we temporarily integrated Cortex-based blocks during early testing. While this added an extra step, it pushed us to explore Simulink’s signal routing tools more deeply. We discovered the <a href="https://www.mathworks.com/help/simulink/slref/variantsource.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">variant source block</span></a>, which was exactly what we needed. We had already been using signal buses to route some control signals, but the variant source block would solve our problem if we put all control signals into the same bus. From there, we addressed all signal routing and also used a bus for output signals. This made our code more manageable and even made adding new systems easier.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our drivetrain has become standardized for our team. We typically use a tank-drive configuration with a speed cut controlled by a button latch. We also implement deadbands and a custom MATLAB function to improve low-speed precision by mapping joystick inputs to motor outputs using a non-linear function. This also compensates for signal loss introduced by the deadband block while preserving full output when needed.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Every other system on our robot is controlled using <a href="https://www.mathworks.com/products/stateflow.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">Stateflow</span></a> charts. We define operating modes that the motors and servos need (such as on, off, forward, reverse), then create states and transitions accordingly. Visually seeing each state activate (or not) during simulation is a great troubleshooting tool. We try to locate tunable parameters outside of Stateflow charts as inputs to make them easier to understand and adjust. Our outputs are usually just control signals. If there are other values that need to be passed to other parts of the code, we tend to write them to memory.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">There were a few design issues this year that were either solved or improved through our code. While we developed a low-tech factoid sorter, we found more consistent results with our sensor-based system. Instead of using physical limit switches on the arm, we added a potentiometer and used it to both limit motion and move to predetermined locations. We had also considered using it for PID control, but the arm performed well without it.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">One problem inherent to our intake and Archimedes’ screw system was occasional jamming. While we addressed this mechanically, it wasn’t enough. Drivers could reverse the intake manually, but this took focus away from other tasks and reduced the advantage of passive collection. In previous years, addressing this in code would have been difficult, as the older control system provided no motor feedback, and the MC55 motor controllers do not either. Fortunately, we found and used advanced smart motor read/write blocks in Simulink and added them to our V5 library. They allowed us to monitor current drawn from the V5 brain by the MC55s. Using Simulink’s <a href="https://www.mathworks.com/help/simulink/supportpkg/arduino_ug/remotely-monitoring-and-controlling-an-application-on-hardware.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">monitor and tune</span></a>, we found the threshold that was crossed whenever the motor stalled. With this, the robot could detect jams in real time and automatically clear them without driver input.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 587px; height: 295px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_7.png" alt="" width="587" height="295" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">Code structure overview</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We included a controller map and port diagram for reference. We also experimented with <a href="https://www.mathworks.com/help/simulink/dashboard.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">dashboard displays</span></a> once we found the solution to them not working with larger Windows displays.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 305px; height: 369px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_8.png" alt="" width="305" height="369" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Variant source and subsystem architecture showing our control and sensor inputs, enabling seamless simulation and hardware deployment.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 677px; height: 473px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_9.png" alt="" width="677" height="473" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This subsystem combines the outputs from the gamepad simulator and our simulated sensor values (linked to the dashboard controls) into a single bus. We descriptively named each channel to make using the bus more intuitive. To avoid errors, we used the same signal names as our V5 control signal bus.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 588px; height: 287px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_10.png" alt="" width="588" height="287" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Here you can see the advanced smart motor read block. Only the first 2 values are actually output when using the MC55. Our signals are pulled from the control bus. This really cleaned up our code and process.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 564px; height: 436px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_11.png" alt="" width="564" height="436" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This is the Stateflow for the intake and Archimedes’ screw. To constantly monitor the system for jamming, we used a parallel Stateflow structure. (Parallel structure essentially allows multitasking.)</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 588px; height: 336px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_12.png" alt="" width="588" height="336" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The arm performed numerous tasks, both autonomously and with driver input. Thus, it required quite a few inputs and parameters. The custom function only sends a true value after a very specific combination of joystick movements is held for a predetermined time.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 588px; height: 387px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_13.png" alt="" width="588" height="387" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">This section controls the position of our factoid dispenser ramp. Adjustable values are clearly noted outside of the Stateflow where they can be adjusted. The Stateflow chart automatically moves the ramp from the starting position to the lower scoring position as soon as the intake is started. This prevents driver error as the two positions are hard to discern from across the field</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><strong>Here is our submission to the Simulink Design Award:</strong></div>
<div style="text-align: center;"><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/YOFcFvZv4GA?si=i5bJ3JMpJjNbl8Wk" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"><br />
</iframe></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Highlights from the Denver BEST Regional Championship</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">DuBois Area High School competes at the local Grove City Competition each year. This event qualifies teams for the Regional Championship. We did quite well this year, winning a number of awards and securing our place at regionals.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our regional competition is the Denver BEST Regional, which was held in Wichita, Kansas, this year. There, we faced the top teams from seven other regionals. Our team’s work was recognized with several awards, including 2nd place in the Overall BEST award and winning the Simulink Design Award. We are especially proud of these achievements, as we are one of the few public high schools competing at both our local and regional events. Additionally, our 2025 team was our smallest ever, and each member worked hard to help overcome that challenge.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 838px; height: 295px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may18_14.png" alt="" width="838" height="295" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/05/18/bringing-db-15-to-life-with-model-based-design/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Simulating a Hybrid PVT-Chiller System for Maximum COP in Jordan’s Hot Summers</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/05/04/simulating-a-hybrid-pvt-chiller-system-for-maximum-cop-in-jordans-hot-summers/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/05/04/simulating-a-hybrid-pvt-chiller-system-for-maximum-cop-in-jordans-hot-summers/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 04 May 2026 13:06:55 +0000</pubDate>
				<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Simulink]]></category>
		<category><![CDATA[hybrid renewable energy]]></category>
		<category><![CDATA[smart grid modeling]]></category>
		<category><![CDATA[thermal energy management]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13424</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_1.png" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

For today’s blog, we’re joined by Dr. Heba Al Zaben, Eng. Adham Yacoub, Eng. Waleed Mohamadieh, Eng. Omar Faire, and Eng. Khaled Al Halab from AlHussein Technical University, whose project earned... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/05/04/simulating-a-hybrid-pvt-chiller-system-for-maximum-cop-in-jordans-hot-summers/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-style: italic;">For today’s blog, we’re joined by Dr. Heba Al Zaben, Eng. Adham Yacoub, Eng. Waleed Mohamadieh, Eng. Omar Faire, and Eng. Khaled Al Halab from AlHussein Technical University, whose project earned second place for Best Use of MATLAB &amp; Simulink at the Twelfth National Parade for Technology Competition. They share how they modeled and optimized a hybrid PVT-chiller system to improve cooling efficiency in Jordan’s extreme summer climate &#8211; over to you.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Introduction</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The subject of this study is the development and analysis of an air-cooled chiller integrated with photovoltaic-thermal (PVT) system, as Jordan experiences very hot summer climate conditions (with mean daytime temperatures around 30–35 °C and peak temperatures often exceeding 40 °C) and has a demand for sustainable energy solutions. The goal of this study was to improve overall energy efficiency by utilizing both electrical and thermal output of the PVT panels to satisfy the high cooling demand of the summer climate. To simulate the entire system, a detailed MATLAB/Simulink model was developed by implementing real-time climatology data for Jordan. This research further explored the system configuration parameters by focusing on the parameters that have the greatest affect on hybrid system performance. Drawing on past research studies and technical studies, the study discussed the effects of PVT panel’s tilt angle; cross-sectional area of mist nozzles used for surface cooling; mass flow rate of cooling mist; and mass flow rate of air over the PVT surface. The theoretical study then presented the effects of each of the variables to understand the distinct and combined effects on electrical efficiency, thermal efficiency, and cooling performance through expanded simulations.The goal of the analyses was to optimize the configuration of the system in order to achieve maximum energy output performance.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 700px; height: 296px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_1.png" alt="" width="700" height="296" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 1:</span> Simulink model of the proposed hybrid PVT system integrated with air-cooled chiller, pre-mist system, and heat exchanger.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 551px; height: 453px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_2.png" alt="" width="551" height="453" /><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 627px; height: 439px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_3.png" alt="" width="627" height="439" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 2:</span> Mechanical outlines of the existing PV system with air-cooled chiller (Case 1) and the proposed PVT system integrated</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;">with air-cooled chiller, pre-mist system, and heat exchanger (Case 2).</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"></h2>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">How was the project developed?</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The administrative building of the Special Communications Commission in the capital Amman was chosen as a case study where local climate and energy data specific to the selected location was analyzed.Our approach included the following:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Designing a detailed Simulink model available via <a href="https://matlab.mathworks.com/"><span style="font-weight: bold;">MATLAB Online</span></a> of the hybrid proposed system</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Modeling each subsystem; PV panel, thermal collector, mist cooling, and air-cooled chiller</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Integrating real-time weather and solar irradiance data into the system from Nasa Power data website.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Utilizing the <a href="https://www.mathworks.com/matlabcentral/answers/640465-installing-coolprop-on-matlab"><span style="font-weight: bold;">CoolProp</span></a> library for an accurate calculation of fluid thermodynamic properties, which enhance the precision of thermal and cooling subsystem simulations.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Each subsystem was initially analyzed independently, after which all subsystems were integrated to form the complete representation of the proposed hybrid system.</li>
</ul>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"></h2>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">The Role of MATLAB/ Simulink</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">MATLAB and Simulink were essential at every stage in this project, as the dynamic behavior of energy flow, cooling demand, and thermal output was modelled in real time using Simulink. The precise geographic coordinates of the chosen case study building were synchronized with real-time temperature and solar radiation data obtained from <a href="https://power.larc.nasa.gov/"><span style="font-weight: bold;">NASA POWER</span></a> data website, as this method made sure that the effects of climate change on the PVT system&#8217;s and the air-cooled chiller&#8217;s performance were accurately represented, also the graphical results made it easier to analyze system behavior under variable climate conditions and performance improvements were calculated using a variety of statistical tools, and graphs of electrical and thermal efficiency were displayed. We were able to create a dependable and scalable hybrid energy model by seamlessly integrating electrical, thermal, and mechanical subsystems using <a href="https://www.mathworks.com/products/simulink.html"><span style="font-weight: bold;">Simulink&#8217;s modular block approach</span></a>.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Building on this technical foundation, the project&#8217;s robust simulation and analysis capabilities were recognized on a broader stage. Our team had the privilege of showcasing this hybrid PVT system at the <a href="https://htu.edu.jo/news/htu-hosts-the-12th-national-technology-parade-with-the-participation-of-22-jordanian-universities"><span style="font-weight: bold;">12th National Technology Parade in Jordan</span></a>, an event that brings together innovative engineering solutions from across the kingdom. By leveraging <a href="https://www.mathworks.com/help/matlab/"><span style="font-weight: bold;">MATLAB’s advanced documentation</span></a> and specialized toolboxes, we could validate our findings against industry standards, ensuring that our model remains a viable reference for future sustainable energy research. For more highlights and updates from the competition, you can visit the official <a href="https://www.facebook.com/NTPJo/"><span style="font-weight: bold;">National Technology Parade Facebook page</span></a>.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Results:</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 808px; height: 450px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_4.png" alt="" width="808" height="450" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 3:</span> Temporal variation of PV panel cell temperature.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 775px; height: 412px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_5.png" alt="" width="775" height="412" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 4:</span> Temporal variation of thermal efficiency.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 773px; height: 442px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_6.png" alt="" width="773" height="442" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 5:</span> The COP variation for the baseline (without mist) and hybrid case (with mist and air-cooled chiller).</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">As shown in Figure 5, the coefficient of performance (COP) improves between hours 9 and 15 due to the operation of the pre-mist system, with an increase of about 12.32% compared to the baseline case. Additionally, the COP in the ‘after’ case remains non-zero for an extra hour due to the effect of the pre-mist cooling, which maintains lower operating temperatures and allows the system to continue operating efficiently for a longer duration.This result is close to findings in similar studies, which reported a 14.54% improvement. The slight difference is due to the selection of parameters to balance electrical efficiency, thermal efficiency, COP, and water consumption. Furthermore, Figure 3 shows that the PV panel temperature decreases by 29.3% in Case 2, leading to an increase in electrical efficiency of 9.48% as illustrated in Figure 4.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Conclusion</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The hybrid PVT-chiller system is a promising integration of renewable energy and cooling technologies, especially in hot climates such as Jordan’s. Through MATLAB and Simulink, we were able to model, simulate, and optimize a hybrid PVT system that can significantly reduce cooling costs while boosting solar efficiency. The following results were obtained throughout the course of our work:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The coefficient of performance (COP) improved by 14.32%.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The temperature of the solar PV panels decreased by 29.3%.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Electrical efficiency improved by 12.1%.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The thermal efficiency of the proposed hybrid system reached 40.3%.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">The CO2 reduction was approximately 5.85 TN/Year.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The most relevant limitation of this system is the water consumption rate of 235 liters/day. Especially in a climate as dry as Jordan&#8217;s, this is not sustainable. Our project demonstrates the potential of simulation tools to translate engineering concepts into practical and sustainable solutions. We are sharing this work and look forward to contributing to further innovations in hybrid PVT systems worldwide.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"></h2>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Looking Ahead</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our next objective is to move from simulation to practical implementation, building on the modelling stage. In order to accurately depict energy demands and cooling requirements, the system was designed using data from a real commercial building in Amman, Jordan, which included real climate and load conditions.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The high water consumption of the mist cooling system integrated with the PVT unit was one of the main constraints we faced during the analysis. In Jordan&#8217;s water-scarce environment, the current model&#8217;s estimated daily water usage of 235 liters is unsustainable for large-scale or long-term operations. One of the main objectives for future development is to lower this consumption by using smart control algorithms, intermittent misting, or other passive cooling techniques. In the next phase of our work, we plan to:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">To improve system reliability and lessen dependency on the grid during peak hours, incorporate battery storage into the load shifting model.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Create and test AI-based control algorithms to forecast cooling demand, optimize energy flows, and dynamically modify chiller and misting operations in response to current environmental conditions.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Work with regional academic and industrial partners to advance experimental prototyping with the goal of validating the model in real-world settings.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Look into opportunities for technology transfer and commercialization, particularly through collaborations with Jordanian energy efficiency and sustainability programs.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Examine the system&#8217;s payback period and long-term environmental benefits, as well as its economic viability with lower water consumption.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 624px; height: 468px;" src="https://blogs.mathworks.com/student-lounge/files/2026/05/26may4_7.png" alt="" width="624" height="468" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">Figure 6:</span> Our team was awarded second place for Best Use of MATLAB &amp; Simulink by MathWorks at the Twelfth National Parade for Technology Competition.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/05/04/simulating-a-hybrid-pvt-chiller-system-for-maximum-cop-in-jordans-hot-summers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Team Endurance Racing Engineered a Winning Electric BAJA Powertrain Model in Simscape</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/04/20/how-team-endurance-racing-engineered-a-winning-electric-baja-powertrain-model-in-simscape/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/04/20/how-team-endurance-racing-engineered-a-winning-electric-baja-powertrain-model-in-simscape/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 15:48:52 +0000</pubDate>
				<category><![CDATA[Automotive]]></category>
		<category><![CDATA[eBAJA]]></category>
		<category><![CDATA[Simscape]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13407</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/04/1.png" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

In today’s blog, we are joined by Team Endurance Racing from Vishwakarma Institute of Technology, Pune, who placed 1st in the BAJA SAEINDIA: MathWorks Electric Powertrain Simulation Challenge... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/04/20/how-team-endurance-racing-engineered-a-winning-electric-baja-powertrain-model-in-simscape/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-style: italic;">In today’s blog, we are joined by Team Endurance Racing from Vishwakarma Institute of Technology, Pune, who placed 1st in the BAJA SAEINDIA: MathWorks Electric Powertrain Simulation Challenge 2026.</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 id="TMP_5b8a" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Who We Are and What We Achieved</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We are <a href="https://www.instagram.com/team_endurance_racing/"><span style="text-decoration: underline;">Team Endurance Racing</span></a> from <a href="https://www.vit.edu/"><span style="text-decoration: underline;">Vishwakarma Institute of Technology, Pune</span></a><span style="text-decoration: underline;">,</span> a student motorsports team focused on electric mobility and system-level vehicle engineering. At eBAJA SAEINDIA 2026, we secured an Overall 5th Rank and achieved 1st Rank in the BAJA SAEINDIA: MathWorks Electric Powertrain Simulation Challenge 2026. This blog presents our approach to the simulation challenge, covering our modeling assumptions, battery pack development, powertrain subsystem implementation, simulation scenarios, and the key engineering insights we gained.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 649px; height: 390px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_1.png" alt="" width="649" height="390" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">Team Endurance Racing with the Winning Car</span></div>
<h2 id="TMP_3fbe" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Understanding the Problem Statement</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The BAJA SAEINDIA: MathWorks Electric Powertrain Simulation Challenge 2026 required teams to simulate and analyze an electric powertrain for an all-terrain vehicle (eBAJA) using MATLAB and Simulink. <a href="https://github.com/mathworks/electric-all-terrain-vehicle"><span style="text-decoration: underline;">A reference Simscape<img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> model</span></a> of a generic electric ATV was provided as the starting point, and teams were expected to adapt it to align with their own competition vehicle concepts.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 667px; height: 318px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_2.png" alt="" width="667" height="318" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">Figure 1: Reference electric BAJA model</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The reference model simulated a basic electric ATV with a battery, single-motor rear-wheel drive, and a set drive cycle for performance testing. However, it lacked the actual architecture, battery setup, and specific performance details of a real BAJA electric vehicle.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The main gaps between the template model and a real eBAJA vehicle were:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">&#8211; The battery was modeled as a simplified source rather than a structured pack with series-parallel cells and realistic voltage/current behavior.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">&#8211; The powertrain architecture and parameters were generic and not tuned to any specific team vehicle.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">&#8211; Model fidelity was limited for tasks such as realistic range estimation, transient response analysis, and component sizing.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The engineering intent of the challenge was to encourage teams to improve model fidelity by implementing a realistic battery configuration, refining the powertrain to match their design intent, and achieving accurate tracking of the prescribed drive cycle. Simulation accuracy directly affects real vehicle design because it allows teams to evaluate energy usage, thermal and electrical loading, and performance trade-offs before making hardware decisions.</div>
<h2 id="TMP_0715" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Vehicle &amp; Powertrain Assumptions</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The simulated vehicle represents an electric BAJA all-terrain vehicle (eBAJA ATV) intended for off-road endurance and dynamic events. To keep the model generally applicable while still realistic, we used generic but representative parameter values within realistic bounds.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Key assumptions used in the model include:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 549px; height: 401px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_3.png" alt="" width="549" height="401" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Conceptually, the fixed gear ratio and transfer case are chosen such that the motor can operate in an efficient speed range near its rated speed when the vehicle is around the 60 km/h target, while still providing adequate wheel torque at lower speeds for launch and off‑road operation in both RWD and 4WD modes.</div>
<h2 id="TMP_13fe" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Battery Pack Modelling Approach</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The default battery block in the reference model acted as a simplified equivalent source and did not represent the internal structure, voltage behaviour, or realistic current limits of an eBAJA battery pack. This limited the ability to study cell‑level effects, voltage sag under load, and SOC evolution during transient events such as acceleration and hill climbs.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">To address this, we used the <a href="https://www.mathworks.com/help/simscape-battery/ref/batterybuilder-app.html"><span style="text-decoration: underline;">Battery Builder app</span></a> to create Simscape battery models with a nominal voltage of about 72 V and a usable capacity of 80 Ah, representative of an eBAJA‑level system. Voltage and capacity values were selected to support endurance‑style operation while maintaining reasonable weight and packaging for an off‑road ATV. The pack was based on cylindrical lithium‑ion cells with the following representative specification:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 551px; height: 249px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_4.png" alt="" width="551" height="249" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Key parameters emphasized in the battery model included:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">State of Charge (SOC) estimation using current integration (coulomb counting).</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Current limits to capture behaviour during peak load conditions.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">SOC‑dependent internal resistance to model voltage drop (sag) at higher currents.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Monitoring of terminal voltage at pack or module level to ensure it remained within safe operating limits.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">By incorporating SOC‑dependent open‑circuit voltage and internal resistance behaviour, the battery model produced realistic voltage responses during high‑demand segments, which directly influenced available motor torque and overall vehicle response.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 744px; height: 400px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_5.png" alt="" width="744" height="400" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">Figure 2: Battery pack</span></div>
<h2 id="TMP_204d" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Motor Parameter Updates</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The design retained the single-motor architecture but updated several key motor-related parameters to accurately represent a typical eBAJA-class traction motor. The model included the following specifications:</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">A fixed gear ratio of 5, selected to provide a suitable reduction for off-road operation.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Maximum torque set at approximately 65 N·m.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Maximum power specified around 9 kW.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">An overall efficiency estimated at 95%.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">An efficient operating point defined at 5500 rpm with a torque output of 18 N·m.</li>
</ul>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">These calibrated parameters allowed the generic motor to emulate the behavior of a realistic eBAJA traction unit while maintaining compatibility with the DC bus voltage and the overall template architecture.</div>
<h3 id="TMP_2b21" style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Controller Tuning and Strategy</span></h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">After updating the motor parameters, the control strategy was refined to ensure stable torque delivery and precise tracking of the drive cycle. Tuning efforts were concentrated on achieving smooth acceleration without oscillations, maintaining stable velocity tracking across varying load conditions, limiting peak current during periods of high demand, and preventing abrupt torque transitions that might result in unrealistic acceleration spikes.</div>
<h3 id="TMP_96ab" style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Subsystem Interaction and Simulation Flow</span></h3>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The simulation established a clear chain of subsystem interaction: the battery supplied DC power to the motor drive; the drive commanded motor torque in response to torque inputs; the motor transferred this torque through the fixed gear reduction and driveline to the wheels; and the resulting vehicle speed and acceleration were fed back to the controller for closed-loop regulation.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 763px; height: 386px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_6.png" alt="" width="763" height="386" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">Figure 3: Powertrain model</span></div>
<h2 id="TMP_9c66" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Simulation Scenarios &amp; Results</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The model was tested using a drive cycle with acceleration, cruising, hill-climb, and braking segments to assess system response under varying loads and speeds. Scenarios included initial acceleration, steady cruising, and increased resistance. Analyses focused on vehicle speed vs. time, battery SOC, current, and power flow.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 793px; height: 421px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_7.png" alt="" width="793" height="421" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">Figure 4: Simulation results</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Simulated vehicle velocity closely followed the reference cycle, with only minor deviations in rapid transitions, demonstrating effective speed control. Battery SOC declined gradually, showing adequate capacity for the load. Peak current and power appeared during acceleration and resistance phases; cruising used less current, indicating efficient power use. Battery voltage stayed within safe limits, with expected minor dips during high-current events. Overall, the results confirmed stable operation and suitability for further analysis.</div>
<h2 id="TMP_0c68" style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;">Key Design Insights &amp; Learnings</h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The simulation revealed key design trade-offs: gearing impacts both top speed and low-speed torque; battery resistance and state-of-charge affect voltage and motor torque, so realistic modeling is crucial for accurate performance estimates; controller settings heavily influence tracking quality and current spikes. Validating assumptions proved essential—optimistic battery models and loose control gains led to misleading results, but iterative refinement improved accuracy and understanding. These insights show that even moderately detailed models can help student teams make more informed design choices than relying on heuristics or trial-and-error.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">How Simulation Helped Us Think Like Engineers</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">________________________________________________________________________________________________________________________________________</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">&#8220;MATLAB and Simulink fostered a systems-thinking approach to powertrain design, where the battery, motor, controller, and driveline were treated as interconnected subsystems influencing overall vehicle performance. This approach helped us structure our models into well-defined subsystems with clear interfaces, validate model behavior against expected trends and reference drive cycles, and iteratively refine key design parameters such as battery capacity, gear ratio choices, and control gains based on simulation evidence rather than assumptions.&#8221;</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-weight: bold;">________________________________________________________________________________________________________________________________________</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">What’s Next for the Team</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 478px; height: 302px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26April20_8.png" alt="" width="478" height="302" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">Our eBAJA vehicle on track</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">We aim to test more drive cycles, including endurance and high-speed scenarios, while improving loss and thermal modeling for better efficiency analysis. Matching simulation results with real vehicle data is a priority, so we&#8217;re refining assumptions to minimize discrepancies. We&#8217;re incorporating Kalman-filter-based estimators, advanced controllers, and additional input signals to enhance SOC and range predictions. Precise PMSM motor modeling and HPPC battery tests will help align simulated and physical performance. This foundation will enable future team members to explore new powertrain layouts, control strategies, and battery options through ongoing simulation-based development.</div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/04/20/how-team-endurance-racing-engineered-a-winning-electric-baja-powertrain-model-in-simscape/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>From Real Roads to Real Simulations: How Team TwinX Won Smart India Hackathon 2025</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/04/06/from-real-roads-to-real-simulations-how-team-twinx-won-smart-india-hackathon-2025/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/04/06/from-real-roads-to-real-simulations-how-team-twinx-won-smart-india-hackathon-2025/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 04:23:09 +0000</pubDate>
				<category><![CDATA[Automotive]]></category>
		<category><![CDATA[Hackathons]]></category>
		<category><![CDATA[MATLAB traffic simulation]]></category>
		<category><![CDATA[RoadRunner]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13393</guid>

					<description><![CDATA[<div class="overview-image"><img src="https://blogs.mathworks.com/student-lounge/files/2026/04/26april6_4.png" class="img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" /></div><p>

The Smart India Hackathon (SIH) is a nationwide initiative aimed at engaging students in addressing some of the most pressing challenges of everyday life. Established to promote a culture of... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/04/06/from-real-roads-to-real-simulations-how-team-twinx-won-smart-india-hackathon-2025/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The <a href="https://sih.gov.in/" target="_blank" rel="noopener"><span style="text-decoration: underline;">Smart India Hackathon (SIH)</span></a> is a nationwide initiative aimed at engaging students in addressing some of the most pressing challenges of everyday life. Established to promote a culture of innovation and practical problem-solving, SIH serves as a dynamic platform for students to develop and showcase their creative solutions to real-world issues. Since 2019, MathWorks has partnered with SIH, guiding students through problem statements, webinars, and mentorship as they develop real world solutions.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Driving on Indian roads often demands constant alertness, what appears smooth and open can suddenly turn into a mix of potholes, unexpected barricades, roadside parking, and vehicles weaving in from every direction. Many traffic simulation tools, however, are built around orderly lanes and consistent driving patterns. Addressing the gap between these assumptions and real road conditions became the focus of Team TwinX’s work and shaped the solution that led to their win.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">In this post, we are excited to feature Team TwinX from <a href="https://www.kkwagh.edu.in/engineering/" target="_blank" rel="noopener"><span style="text-decoration: underline;">K.K Wagh Institute Of Engineering Education and Research, Nashik,</span></a> the winners of the <a href="https://sih.gov.in/sih2025PS" target="_blank" rel="noopener"><span style="text-decoration: underline;">Smart India Hackathon (SIH) 2025 MathWorks problem statement</span></a><span style="text-decoration: underline;">. </span>They share their journey, what they learned through the process, and how they approached the challenge.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 562px; height: 408px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26april6_1.png" alt="" width="562" height="408" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><span style="font-style: italic;">Team TwinX: Aakanksha Sutrave, Anurag Mohod, Abhishek Ahirrao, Vaishnavi Pawar, Sagar Sahu, Chanchal Mahalpure, Prof.Dr.Vilas Patil (Mentor).</span></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">The Challenge That Inspired Us</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">During the problem statement selection phase, we explored multiple options across domains. Instead of choosing something that sounded easy or familiar, we focused on problems that reflected real, visible challenges. When we came across the statement related to accelerating road network modelling for Indian traffic simulations, it immediately stood out because it aligned with everyday experiences and had strong real-world relevance. We chose this problem because it addressed a gap we could clearly observe. Indian roads are complex, dynamic, and unpredictable, yet most simulation tools are designed for ideal conditions. The problem allowed us to work at the intersection of technology, infrastructure, and real societal impact. More importantly, it offered room to innovate rather than simply implement a known solution.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 602px; height: 330px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26april6_2.png" alt="" width="602" height="330" /></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Breaking down the Problem by</span> <span style="font-weight: bold;">‘</span><span style="font-weight: bold;">Design Thinking</span><span style="font-weight: bold;">’</span> <span style="font-weight: bold;">Approach</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">At first, the expectations felt high and the problem space broad, so our early discussions explored multiple directions before we identified what truly mattered. Once we broke the challenge into smaller components and defined the core problem, our ideas aligned and the solution began to take a clear, systematic form.</div>
<ul style="margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px;">
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Empathize: </span>We observed that most traffic simulation tools are built for ideal roads, while Indian roads involve potholes, temporary barricades, mixed traffic, and unpredictable movement, making realistic modelling difficult for planners and researchers.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Define: </span>We identified that the core problem is not the lack of tools, but the heavy manual effort and absence of Indian-context awareness in existing road network modelling workflows.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Ideate: </span>We explored how real maps, simple text inputs, and automation could be combined to reduce effort while improving realism.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Prototype &amp; Test: </span>We built and refined small functional modules, continuously checking whether the output truly reflected Indian road conditions and reduced user workload.</li>
</ul>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Preparation from Internal Hackathon to Winning the Grand Finale</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold; text-decoration: underline;">August – September: The Beginning</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">From August to September, our journey started with the Team formation and internal rounds of the Smart India Hackathon on campus. This phase was less about having a perfect solution and more about forming the team having right learning mindset along with understanding the problem, exploring ideas, and most importantly, understanding each other as a team. We focused on building trust, identifying strengths, and seeing whether we could work together effectively when the solution itself was still unclear. The best thing we decided as a team was “Identifying and then playing on strength of each member”.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold; text-decoration: underline;">October: Finding the Right Direction</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">October marked a turning point when our idea was officially submitted on the SIH portal. The MathWorks problem statement pushed us to think beyond assumptions and focus on real Indian road conditions. This phase involved a lot of trial and error some ideas worked, others didn’t. But we keep working day and night on finding the right solution. All the late-night meetings pushed us to more clarity and practicality which mattered more than complexity. And by the end of the month, our solution had taken a clear and meaningful shape.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold; text-decoration: underline;">November: Validation and Refinement</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Being selected as SIH 2025 grand finalists in November gave us confidence and a sense of responsibility. An expert working in same field was provided to us as a mentor for ‘mentoring session’ from ‘MathWorks’ as per SIH guidelines. This mentoring session help us to understand whether our approach was on the right track or not, while also pushing us to prepare for deeper scrutiny. This month was spent refining the concept, improving usability, and balancing technical depth. Every discussion helped us simplify and strengthen the solution.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"><span style="font-weight: bold; text-decoration: underline;">December: The Grand Finale</span></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 590px; height: 408px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26april6_3.png" alt="" width="590" height="408" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">The grand finale on December 8-9 was intense and unforgettable. We followed a simple rule in each judging round “get feedback from judges in mentoring round and modify the solution till upcoming evaluation round”. Over 36 hours, despite exhaustion and pressure, we stayed focused and motivated to complete every task given by the judges. We worked for 34-35 hours in the 36 hours of hackathon. The pressure was high, but the environment pushed us to think clearly and communicate effectively. The journey from confusion to clarity felt complete at this stage. When we were announced as winners, it wasn’t just joy it was relief, gratitude, and pride in the months of learning, teamwork, and belief that brought us there.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Our Solution</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our solution is a software-based workflow that converts real-world Indian road data into complete, simulation-ready traffic scenarios with minimal manual effort. We start by importing real maps using <a href="https://www.openstreetmap.org/" target="_blank" rel="noopener"><span style="text-decoration: underline;">OpenStreetMap</span></a> or simple coordinate-based searches, which form the base of the road network.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">On top of this, we automatically place vehicles and other pedestrians, assign realistic Indian driving behaviors, and allow users to modify distances and speeds through an easy-to-use interface. Scenarios can also be generated using plain text inputs, where AI-assisted logic helps create MATLAB-compatible scripts for traffic simulations.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">To improve realism, we integrate Indian-specific road assets such as potholes, barricades, road damage, and construction elements. We also support creating 3D assets from 2D images and maintaining a reusable asset library for repeated use.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Weather conditions are added based on geographic location, allowing simulations to reflect real environmental conditions. Finally, the entire scenario can be exported directly to <a href="https://in.mathworks.com/help/driving/ref/drivingscenariodesigner-app.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">Driving Scenario Designer</span></a>, <a href="https://in.mathworks.com/products/roadrunner.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">RoadRunner</span></a>, and <a href="https://in.mathworks.com/products/simulink.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">Simulink</span></a> for further editing, sensor integration, and high-fidelity 3D simulation.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Our approach significantly reduces manual modelling time while ensuring simulations reflect the actual complexity of Indian roads.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 602px; height: 338px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26april6_4.png" alt="" width="602" height="338" /></div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Why MATLAB Became the Backbone</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">MATLAB was the backbone because it allowed us to build an end-to-end workflow on a single platform. Using MATLAB, we processed real map data, generated traffic scenarios, assigned driving behaviors, and directly connected the output to <a href="https://in.mathworks.com/help/driving/ref/drivingscenariodesigner-app.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">Driving Scenario Designer</span></a>, <a href="https://in.mathworks.com/products/roadrunner.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">RoadRunner</span></a>, and <a href="https://in.mathworks.com/products/simulink.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">Simulink</span></a>.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Instead of switching between multiple tools, we automated the entire pipeline from OSM import and scenario logic to 3D simulation and weather integration within the MathWorks ecosystem. This made our solution technically consistent, easier to scale, and practical for real users such as traffic planners, researchers, and simulation engineers.</div>
<h2 style="margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;"><span style="font-weight: bold;">Lessons Learned During This Journey</span></h2>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">A week before the SIH Grand Finale, We the Team TwinX sketched a handmade trophy and winning cheque not to predict the outcome, but to keep ourselves motivated and focused on taking one step at a time. As first-time participants, that belief, along with teamwork and consistency, turned SIH into more than a competition it became a lesson in clarity, coordination, and trusting the process.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Winning, for us, was never the starting goal, it naturally followed the lessons we gathered along the way. We learned that pivoting our ideas when needed, while staying committed to the larger objective, often leads to better outcomes. More than individual talent, it was collaboration that carried us forward. We also realized that steady, consistent effort sustains success far better than short bursts of intensity. In the end, the award marked a milestone, but it was the journey itself that truly shaped who we are as engineers.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 592px; height: 344px;" src="https://blogs.mathworks.com/student-lounge/files/2026/04/26april6_5.png" alt="" width="592" height="344" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;"></div>
</div>
<p><script type="text/javascript">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }</script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.mathworks.com/student-lounge/2026/04/06/from-real-roads-to-real-simulations-how-team-twinx-won-smart-india-hackathon-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
