<?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, 01 Jun 2026 14:33:04 +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>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>
		<item>
		<title>RoboSub Simulation Environment</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/03/23/robosub-simulation-environment/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/03/23/robosub-simulation-environment/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 23 Mar 2026 16:45:39 +0000</pubDate>
				<category><![CDATA[Simulink]]></category>
		<category><![CDATA[marine robotics]]></category>
		<category><![CDATA[RoboSub]]></category>
		<category><![CDATA[Underwater Simulation]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13384</guid>

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

In today’s blog, Abhishek Shankar from the Student Programs team at MathWorks introduces a newly released underwater RoboSub simulation environment built with Simulink, Simulink 3D Animation, and... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/03/23/robosub-simulation-environment/">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;">In today’s blog, Abhishek Shankar from the Student Programs team at MathWorks introduces a newly released underwater RoboSub simulation environment built with Simulink, Simulink 3D Animation, and Unreal Engine that enables teams to test algorithms and accelerate development. Over to you, Abhishek&#8230;</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;"></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Underwater robotics has been on the rise over the past few years, which reflects the rise in robotics in general. While it might appear to be a niche area, there are several areas in science and engineering that benefit from autonomous underwater vehicles (AUV) such as marine biology (collecting samples, tagging endangered animals, etc.), ship inspection and maintenance, deep sea exploration, military, etc. Seeing the potential impact of AUV is such areas, there have been several competitions to push the development of AUV&#8217;s. One such competition is <a href="https://robosub.org/programs/2026/" target="_blank" rel="noopener">RoboSub</a> &#8211; an underwater robotics competition held by RoboNation. The competition pushes the participants to develop vision, navigation and control systems to perform several challenging tasks such as object avoidance, object detection, station keeping, localization and so on. The challenges come in various forms when underwater &#8211; lack of GPS is a main factor since the AUV must now use only on board sensors to localize itself, no help from satellites. Vision can also be tricky underwater due to distortions and reduced visibility the deeper the AUV dives. Further, the cost of development and testing increases quickly with the need of water proof bodies, underwater thrusters, expensive sensors such as DVL&#8217;s (Doppler Velocity Logger) and access to a pool or a lake for testing. Weather also plays a role as teams in the northern hemisphere have to deal with frozen lakes during winter, which reduces testing time by up to 4 months. To address some of these issues, we have now released a virtual environment to simulate the tasks at RoboSub. Simulation helps identify issues early, reduce development time, cost, and risk in the model-based design workflow. The environment is built in MATLAB 2025b and uses <a href="https://www.mathworks.com/products/3d-animation.html" target="_blank" rel="noopener">Simulink 3D Animation</a> for photorealistic visualization while the physics are simulated in Simulink. The virtual environment can be cloned from <a href="https://github.com/mathworks-robotics/RoboSub-Virtual-Environment" target="_blank" rel="noopener">this repository</a>, and will be used for a virtual RoboSub competition in 2026.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 969px; height: 251px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march23_1.png" alt="" width="969" height="251" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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;">Model Overview</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 virtual environment has two main components. The Simulink model that takes in the AUV parameters and simulates the physics (left part of the above image) and a Unreal Engine based visualization environment for visualizing the AUV (right part of the image above).</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 18px; 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;">Simulink Model</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 Simulink model is at the heart of the virtual environment. The AUV block, which is a masked subsystem, takes in the properties of the AUV such as its mass, inertia, volume, thruster positions, sensor positions and actuators to simulate the physics of the body. The model calculates the AUV dynamics based on hydrostatic and hydrodynamic forces and computes the forces and moments from the thrusters. These are then fed into a 6-DOF block that computes the vehicle states (position, velocity, orientation, angular velocity) at each time step. The model breakdown is shown in the image 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: 975px; height: 319px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march23_2.png" alt="" width="975" height="319" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 sensor block takes in the robot state and simulates the reading of common underwater sensors such as IMU, DVL and camera. More sensors can be modeled as and when required by the user. The sensor readings are then the outputs from the AUV block. The noise profiles of these sensors can be edited to match the sensor the user is using to make the simulation more realistic and potentially reduce the sim-to-real gap. The actuator subsystem simulates the two main actuators used in RoboSub &#8211; torpedoes and marker dropper. These subsystems are shown below. The model simulates the physics of these objects by sampling the position of the AUV at the time of firing and appending the position based on the physics of the object.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 976px; height: 193px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march23_3.png" alt="" width="976" height="193" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 visualization block ties it all together by visualizing the AUV&#8217;s pose and states in a photorealistic environment built using Simulink 3D Animation which uses Unreal Engine in the background. The virtual environment is set to an Olympic sized swimming pool to reflect the competition environment but users can design their own environment based on their needs. In the next section, I will talk more about the photorealistic 3D environment.</div>
<h3 style="margin: 15px 10px 5px 4px; padding: 0px; line-height: 18px; 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;">Visualization</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;">Simulink 3D Animation provides the user with the option to <a href="https://www.mathworks.com/help/sl3d/customize-scenes-in-unreal-engine-for-3d-simulations.html" target="_blank" rel="noopener">build their custom scene using Unreal Engine (UE)</a>. In this virtual environment, the visualization environment is an Olympic sized swimming pool. The features on the pool are modified using UE actors. The water is modeled using the experimental water plugin and the lighting is adjusted through custom shaders to make the underwater view realistic. Below, you can see a gif of the environment and how it interacts with the AUV&#8217;s with a positive buoyant force.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 325px; height: 350px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march23_4.gif" alt="" width="325" height="350" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 environment also consists of other artifacts that relate to the competition such as navigation gates, torpedo target boards, marker target and octagon. These will further be modified to reflect the changes for the 2026 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;">More information on the model and the blocks within it can be found in this <a href="https://github.com/mathworks-robotics/RoboSub-Virtual-Environment/blob/main/RoboSub%20Virtual%20Environment.pdf" target="_blank" rel="noopener">detailed document</a> in the GitHub repository.</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;">Simulation</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;">Now that we have an overview of the simulation environment, I can show how a simulation in this environment looks like. For this, I&#8217;ll take the task of navigating through a gate and firing a torpedo at the target board. For this example, I am assuming that the location of the gate and the board are known but for the competition, navigation will be based on vision. For the tasks, there is a Stateflow chart managing the AUV&#8217;s high level execution and individual PID&#8217;s to control the AUV and keep it close to the planned path. The Stateflow and control system is shown in the image 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: 985px; height: 477px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march23_5.png" alt="" width="985" height="477" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 gif below shows the AUV navigating and firing a torpedo at the board &#8211; a common task at RoboSub. Further, it is easy to connect this environment to ROS using our <a href="https://www.mathworks.com/products/ros.html" target="_blank" rel="noopener">ROS toolbox</a>, which allows the user to publish sensor messages through the <a href="https://www.mathworks.com/help/ros/ref/publishros2.html" target="_blank" rel="noopener">ROS publisher block</a> and <a href="https://www.mathworks.com/help/ros/ref/subscriberos2.html?s_tid=srchtitle_support_results_1_ros2%2520subscribe" target="_blank" rel="noopener">subscribe</a> to thruster inputs and torpedo or marker commands. This lets the user easily connect to an external navigation or control algorithms and visualize the simulation in Simulink. More information on the simulation interface and it&#8217;s ROS interface can be found in this <a href="https://www.youtube.com/watch?v=NWA829n2UPE" target="_blank" rel="noopener">video with RoboNation</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: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 468px; height: 468px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march23_6.gif" alt="" width="468" height="468" /></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;">This blog goes over the newly released virtual environment for RoboSub using Simulink 3D Animation. The model simulates the physics of the user&#8217;s AUV closely based on the inputs such as mass, inertia and coefficients of drag. It also provides rich sensor data from various sensors used in underwater navigation. Two actuating systems are simulated &#8211; torpedoes and marker dropper which would help teams test these tasks out in simulation before deploying in the competition. MathWorks also offers a range of other products to help design autonomous behaviors. For example, <a href="https://www.mathworks.com/products/stateflow.html" target="_blank" rel="noopener">Stateflow</a> makes it easy to design state machines (a common decision making architecture), navigation and path planning capabilities using our <a href="https://www.mathworks.com/products/navigation.html" target="_blank" rel="noopener">Navigation toolbox</a>, etc. These products are included in the <a href="https://www.mathworks.com/academia/student-competitions/robosub.html" target="_blank" rel="noopener">competition license that is complimentary</a> to all RoboSub participants! And finally, MathWorks will be launching a Virtual RoboSub Challenge to encourage more teams to test and validate in simulation and give them a chance to win up to $1000. So if you have registered for RoboSub, try to participate in the virtual challenge to test your algorithms in simulation and to stand a chance to win the prize money. Good Luck!</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/03/23/robosub-simulation-environment/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MathWorks Research Internship Experience: Divyamaan Sahoo</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/03/09/mathworks-research-internship-experience-divyamaan-sahoo/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/03/09/mathworks-research-internship-experience-divyamaan-sahoo/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 11:53:07 +0000</pubDate>
				<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Simscape]]></category>
		<category><![CDATA[Simulink]]></category>
		<category><![CDATA[DCRG Project]]></category>
		<category><![CDATA[Student Success]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13371</guid>

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

Today we’re talking to Divyamaan Sahoo, who participated in the Development Collaborative Research Grant program at MathWorks, which supports academic research aligned with development priorities... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/03/09/mathworks-research-internship-experience-divyamaan-sahoo/">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;">Today we’re talking to Divyamaan Sahoo, who participated in the </span><a href="https://www.mathworks.com/academia/research/research-collaborations.html"><span style="font-style: italic;">Development Collaborative Research Grant program</span></a><span style="font-style: italic;"> at MathWorks, which supports academic research aligned with development priorities for MATLAB and Simulink. Through the program, he contributed to the development of the Acoustic Library for Simscape, helping advance tools for modeling acoustic systems and transducers while supporting research and education in physical acoustics.</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;">Meet Divyamaan Sahoo</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;">My name is Divyamaan Sahoo and I am a puppeteer, sound artist, mathematician, and electroacoustic engineer. I am from Calcutta, West Bengal, India. I am currently pursuing my Ph.D. in Acoustics at The Pennsylvania State University in State College, PA. My area of study is physical acoustics, transducers and signal processing. I am interested in sound, acoustics and pure mathematics (number theory, geometry, and topology).</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 219px; height: 273px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march9_1.png" alt="" width="219" height="273" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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>
<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;">What’s your research about?</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;">I am part of a team that is developing, testing, and documenting the <a href="https://www.mathworks.com/matlabcentral/fileexchange/181011-simscape-acoustic-library"><span style="text-decoration: underline;">Acoustic Library for</span> <span style="text-decoration: underline;">Simscape</span></a>, a foundational project that enables modeling acoustic phenomena using “lumped” elements. In broad terms, it is a method to break down a complex physical phenomenon into separate domains—electrical, mechanical, thermal, etc.—and describe the phenomenon in each domain using three elementary relationships: x is proportional to y, OR x is proportional to the derivative of y, OR x is proportional to the integral of y. The constants of proportionality here are denoted “R”, “L”, and “C” and x and y are defined such that their product x times y equals power. In the electrical domain, this describes the ubiquitous RLC circuit, where x is voltage and y is current. The fundamental idea here is that it is possible (and often beneficial) to define “R” “L” “C” elements in other physical domains. The reason is, instead of solving systems of (coupled) differential equations, one can draw analogous “R” “L” “C” circuits and evaluate the musing circuit analysis techniques. This is what Simscape achieves at its core.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Acoustic “R” “L” “C” circuits have been around for many decades and their inclusion in Simscape has been especially advantageous for studying and prototyping transducers .Dr. Stephen Thompson (my mentor and advisor) has been using these components to teach advanced transducer courses at Penn State with great success.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 simple example of how this is useful in a real-world application is the modeling of loudspeakers to determine the design and dimensions of their enclosures. Currently, the library highlights microphones, loudspeakers, and examples such as the multidomain modeling of earbud headphones inserted in a human ear. However, any physical acoustics problem using lumped elements can be modeled using this library. I anticipate that such a tool will have a tremendous impact on both industrial and educational contexts worldwide.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 someone who remains deeply curious about the art and science of transducers, it has been an especially rewarding experience to contribute to the Simscape Acoustic Library and have MathWorks support its development through the <a href="https://www.mathworks.com/academia/research/research-collaborations.html"><span style="text-decoration: underline;">Development Collaborative Research Grant</span></a> (DCRG) program. The library we see today is the result of Dr. Thompson’s research (and <span style="font-style: italic;">his </span>advisor’s!) and is made possible thanks to cohorts of acoustics graduate students and faculty members at Penn State who have been using and refining these blocks over the years.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 374px; height: 308px;" src="https://blogs.mathworks.com/student-lounge/files/2026/03/26march9_2.png" alt="" width="374" height="308" /></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;">The Research Internship Experience</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 primary goal of my internship has been to collaborate with Signal Processing &amp; Communications (<a href="https://www.mathworks.com/products/audio.html"><span style="text-decoration: underline;">Audio Toolbo</span><span style="text-decoration: underline;">x<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;" /></span></a> team) and Control Design Automation to build a support package for the <a href="https://www.mathworks.com/matlabcentral/fileexchange/181011-simscape-acoustic-library"><span style="text-decoration: underline;">Acoustic Library for</span> <span style="text-decoration: underline;">Simscape </span></a>by creating documentation for all components, maintaining equivalent analogous circuits of all blocks, conducting preliminary unit testing, developing Simscape code to specified conventions, and devising a unique set of icons for the library.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">So far I have established a solid theoretical foundation for the library and internal design documentation for each component, redesigned icons for all components, maintained an exhaustive list of all equivalent circuits for each block in the library, and delivered a series of three in-depth lectures providing an overview and background to the Acoustic Library, distilling the concepts necessary to model acoustic systems using Simscape. I also conducted preliminary unit tests, identified bugs, and maintained a faithful record of meetings with various team members and stakeholders to ensure a smooth development 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 result has been an in-depth and comprehensive literature review of all canonical acoustics references, including numerous critical papers and unpublished texts on transducers to ensure that the underlying physics of each component and their analogous circuit representations are accurate. This internship has been instrumental in strengthening the foundation of my Ph.D. research project on the R&amp;D of novel transducers and signal processing algorithms for hearing aids.</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;">What’s next?</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;">Thanks to the encouragement of my team, I recently submitted an abstract to present our research at the upcoming Acoustical Society of America/ Acoustical Society of Japan conference this December, for the special session <span style="font-style: italic;">“Acoustics in Multiphysics Measurements: Modeling and Applications,” </span>hosted by the Physical Acoustics Technical Committee. We hope that this abstract will be accepted!</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">I hope to continue working on the DCRG research project as part of my Ph.D. dissertation research in the Fall and contribute toward the success of the Acoustic Library release. It would be a dream to pursue a full-time role at MathWorks, focusing on R&amp;D and technical writing for acoustics/audio.</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/03/09/mathworks-research-internship-experience-divyamaan-sahoo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MathWorks Research Internship Experience: Tingkai Li</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/02/23/mathworks-research-internship-experience-tingkai-li/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/02/23/mathworks-research-internship-experience-tingkai-li/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 23 Feb 2026 13:26:19 +0000</pubDate>
				<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Simulink]]></category>
		<category><![CDATA[DCRG Project]]></category>
		<category><![CDATA[lithium-ion batteries]]></category>
		<category><![CDATA[state of health (SOH)]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13363</guid>

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

Today we’re talking to Tingkai Li, who participated in the Development Collaborative Research Grant program at MathWorks, which supports academic research aligned with development priorities for... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/02/23/mathworks-research-internship-experience-tingkai-li/">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;">Today we’re talking to Tingkai Li, who participated in the </span><a href="https://www.mathworks.com/academia/research/research-collaborations.html"><span style="font-style: italic;">Development Collaborative Research Grant program</span></a><span style="font-style: italic;"> at MathWorks, which supports academic research aligned with development priorities for MATLAB and Simulink. Through the program, he advanced battery health estimation and degradation forecasting while helping translate research into practical industry tools.</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;">Meet Tingkai Li</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;">My name is Tingkai Li, born and grew up in Quanzhou, China. I hold my BS in mechanical engineering from Iowa State University, and I’m currently a 4th year PhD student in mechanical engineering at University of Connecticut. I’ve interned at MathWorks for summer 2024 and summer 2025, both times at the Apple Hill campus.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 182px; height: 218px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb23_1.png" alt="Picture2.png" width="182" height="218" /></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;">What’s your research about?</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;">My research falls under the general topic of prognostics and health management (PHM) for lithium-ion batteries, in which I specialize in lifetime prediction, capacity fade forecasting, state of health (SOH) estimation, and degradation diagnostics.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Lithium-ion batteries have been widely used all over the place in our daily lives. Similar to other engineered systems and even human beings, lithium-ion batteries age gradually over time, both naturally and by usage. Research in PHM for lithium-ion batteries focuses on delivering a better understanding and a more accurate representation of the battery’s internal state, as well as a forecast of future degradation. All these advancements help with a better prediction of the performance of both batteries themselves and the systems relying on them for power supply by identifying potential failures that may cause chaotic accidents and by optimizing the maintenance scheduling for the systems.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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://www.mathworks.com/academia/research/research-collaborations.html"><span style="text-decoration: underline;">Development Collaborative Research Grant </span></a>(DCRG)project I’m part of focuses on developing more accurate, robust, and trustworthy approaches to estimate the state of health (SOH) and forecast future degradation under varying usage conditions for batteries. My role in this project includes designing and running battery aging tests, eventually developing better approaches for SOH estimation and degradation forecasting.</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;">The Research Internship Experience</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 my internship I was located in the Apple Hill campus, working closely with the <a href="https://www.mathworks.com/products/predictive-maintenance.html"><span style="text-decoration: underline;">Predictive</span> <span style="text-decoration: underline;">Maintenance</span> <span style="text-decoration: underline;">Toolbox</span><span style="font-weight: bold; text-decoration: underline;"><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;" /> </span></a>team to explore and develop some functionality for extracting features from battery usage data( e.g., charge/discharge measurements, electrochemical impedance spectra, etc.)for various data-driven battery modelling workflows (e.g., state of health estimation, remaining useful life prediction).These projects align very well with what I’ve learned and developed in my research, allowing me to bring my knowledge to customers by providing such features in MathWorks’ ecosystem.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">So far, I have developed several prototype and examples during my two internships, some of which are expected to be shipping out in the future releases. One of my projects during my internship in Summer 2024 has been available in R2025a as an example (<a href="https://www.mathworks.com/help/predmaint/ug/automatic-data-segmentation-and-feature-extraction-for-reference-performance-battery-test.html"><span style="text-decoration: underline;">Automatic Data Segmentation and Feature Extraction for Reference Performance Test in Lab-Measured Battery Aging Data &#8211; MATLAB &amp; 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: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 448px; height: 270px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb23_2.png" alt="Picture3.png" width="448" height="270" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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>
<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;">What’s next?</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;">I’ll go back to school and continue working on both the DCRG project and my other projects. With an expected graduation on Spring 2026, I am considering positions in the industry where I can leverage my domain knowledge in battery modelling and a broader context of AI application in 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: center;"></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/02/23/mathworks-research-internship-experience-tingkai-li/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Future Engineers Use MATLAB and Simulink at World Robot Olympiad</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/02/09/how-future-engineers-use-matlab-and-simulink-at-world-robot-olympiad/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/02/09/how-future-engineers-use-matlab-and-simulink-at-world-robot-olympiad/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 15:27:30 +0000</pubDate>
				<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Simulink]]></category>
		<category><![CDATA[Team achievements]]></category>
		<category><![CDATA[robotics]]></category>
		<category><![CDATA[Student Success]]></category>
		<category><![CDATA[World Robot Olympiad]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13351</guid>

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

MathWorks began partnering with the World Robot Olympiad (WRO) last season (2025) to support student teams using modeling and simulation as part of their robotics workflows. As part of this... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/02/09/how-future-engineers-use-matlab-and-simulink-at-world-robot-olympiad/">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;">MathWorks began partnering with the </span><a href="https://wro-association.org/" target="_blank" rel="noopener"><span style="font-style: italic; text-decoration: underline;">World Robot Olympiad (WRO)</span></a><span style="font-style: italic;"> last season (2025) to support student teams using modeling and simulation as part of their robotics workflows. As part of this partnership, we introduced the </span><a href="https://wro-association.org/mathworks_modeling_award/" target="_blank" rel="noopener"><span style="font-style: italic; text-decoration: underline;">MathWorks Modeling Award</span></a><span style="font-style: italic;">, which recognizes teams that demonstrate creativity and technical skill using MATLAB and Simulink in their project designs </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;"><span style="font-style: italic;">The Pythons, winners of the MathWorks Modeling Award in the Future Engineers category, used MATLAB and Simulink to support their autonomous driving solution. The Future Engineers category is designed for older students (ages 14–22), with a challenge that changes every 3–4 years and currently focuses on building a robot with a steering drive that can navigate a track autonomously. </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;"><span style="font-style: italic;">For today’s blog, we’re joined by The Pythons, who will share their robot design and describe how MATLAB and Simulink supported their development process. 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;">We are <a href="https://www.the-pythons.com/" target="_blank" rel="noopener"><span style="text-decoration: underline;">The Pythons</span></a>, an Egyptian robotics team founded by Innova STEM Education Co. in 2016 and based in Alexandria, Egypt. This was our first time participating in the World Robot Olympiad (WRO), and over the years we have also taken part in several local and international robotics competitions, including RoboCup Junior. Our goal as a team is to contribute to the robotics field and explore how robotics can be used to improve people’s lives through hands-on engineering challenges.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 527px; height: 423px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_1.png" alt="Picture1.png" width="527" height="423" /></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: center;"></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;">Meet our Robot</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 tackle the autonomous driving challenge, we designed a robot centered around the Raspberry Pi 5, which handles all major processing tasks. Our system is responsible for:</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;">Calculating deviation from center position using a sensor fusion algorithm that combines data from ultrasonic sensor and heading information calculated from MPU6050 sensor.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Issuing commands to motors to move according to data.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Detecting blocks and orange and blue lines using a custom trained YOLOv8 model running on a Google Coral Edge TPU.</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: 313px; height: 293px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_2.png" alt="Picture2.jpg" width="313" height="293" /></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;">Discovering the MathWorks Modeling Award </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;">We had heard of MATLAB and Simulink, however we never had the opportunity to learn it but all that changed when we heard about the <a href="https://wro-association.org/mathworks_modeling_award/" target="_blank" rel="noopener"><span style="text-decoration: underline;">MathWorks Modeling Award </span></a>from our national organiser.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 exploring the <a href="https://www.mathworks.com/academia/student-competitions/world-robot-olympiad.html"><span style="text-decoration: underline;">learning resources</span></a> provided by MathWorks for WRO, including their <a href="https://www.mathworks.com/company/events/webinars/upcoming/series/matlab-and-simulink-for-wro-2025-na-2025.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">official WRO webinars</span></a>, along with the <a href="https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted" target="_blank" rel="noopener"><span style="text-decoration: underline;">MATLAB</span></a> and <a href="https://matlabacademy.mathworks.com/details/simulink-onramp/simulink" target="_blank" rel="noopener"><span style="text-decoration: underline;">Simulink Onramp</span></a> courses, getting started became much easier than we expected. These resources helped us understand how to use modeling and simulation tools effectively and showed us how they could take our robot design to the next level.</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;">Simulate, Test, Improve: Our Implementation 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;">Using MATLAB, Simulink and <a href="https://www.mathworks.com/products/simscape.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">Simscape</span></a> saved us so much time and played a major role in our development process</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;">MATLAB was useful for writing our mapping and control logic. Its clear syntax made it easy to implement and modify algorithms quickly</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Simulink was by far the best tool we used! We were able to tune algorithms and filters without needing any hardware, we can just tune it with the click of a button! The modular structure made it easy to identify where issues were occurring, and the built-in visualization tools helped us understand the robot’s behavior and diagnose logical problems that might otherwise have taken days to uncover.</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/products/simscape-electrical.html" target="_blank" rel="noopener"><span style="text-decoration: underline;">Simscape Electrical</span></a> was used to simulate our electrical system. By modeling current draw and stall current, we identified issues with our original battery choice since we kept having power issues. Fixing this early through simulation prevented a mistake that could have cost us the competition, and it’s a tool we plan to continue using in future robotics projects.</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;">Models and graphs</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 main control model takes input from two different sources that both estimate deviation from the center of the lane. These signals are passed through a complementary filter, which produces an estimated deviation value. This output is then sent to a PID controller, mapped to a servo range, and finally sent to the steering servo</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 intentionally kept this algorithm as simple as possible while maintaining reliable performance. This simplicity made tuning faster and troubleshooting more straightforward once the system was deployed.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 936px; height: 200px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_3.png" alt="Screenshot 2026-02-09 101307.png" width="936" height="200" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: left;">When simulating we encountered a problem as there was no way to simulate camera readings, so as a work-around, we got readings from our test-runs and inputted it as a step function to know the output as shown in this graph</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 output starts at 90, representing no deviation</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">It then moves to 60, commanding the servo to steer right</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;">This approach allowed us to validate our control logic even without a fully simulated vision pipeline</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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: 527px; height: 386px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_4.png" alt="Picture4.png" width="527" 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: left;">As for the complementary filter sub-system. We used a simple complementary filter to fuse the sensor readings and calculate estimated deviation from the centre of the lane using the following equation:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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;">
<p>&nbsp;</p>
<p>θt =α(θt-1+ωtΔt)+θ acc,t(1-α)</p>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">
<p style="margin: 0; line-height: 1.4;"><strong>where</strong><br />
θ<sub>t</sub> = Estimated angle at time t<br />
θ<sub>t-1</sub> = Angle estimate from the previous time step<br />
ω<sub>t</sub> = Angular velocity from the gyroscope at time t<br />
Δt = Sampling time interval<br />
θ<sub>acc,t</sub> = Angle estimated from the accelerometer at time t<br />
α = Complementary filter coefficient (0 &lt; α &lt; 1)</p>
</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 672px; height: 298px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_5.png" alt="Screenshot 2026-02-09 101036.png" width="672" 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;"></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;">Using Simscape Electrical</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;">We developed a Simscape model of the robot’s electrical subsystem to perform system-level analysis which was not that difficult thanks to the detailed documentation on each block used in addition to the <a href="https://www.youtube.com/watch?v=AMnzljjkbB4" target="_blank" rel="noopener"><span style="text-decoration: underline;">tutorial</span></a> on the official MATLAB YouTube channel, we did come across a problem which was how to simulate microcontrollers so we used the Simscape power consumption block and calculated the maximum power consumption of the microcontrollers and used it as a parameter in the Simscape power consumption block</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 911px; height: 257px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_6.png" alt="Screenshot 2026-02-09 100713.png" width="911" height="257" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 535px; height: 319px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_7.png" alt="Picture7.png" width="535" height="319" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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;">From the simulation results:</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;">Maximum current usage was approximately 7 A</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Required operating voltage was around 11.1 V</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 results directly informed our battery selection and improved system reliability during competition runs.</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 and Key Takeaways</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;">Using MATLAB, Simulink, and Simscape allowed us to model, simulate, and test our robot’s systems before deploying them on hardware. This helped us identify issues early, refine control strategies, and improve overall performance, ultimately contributing to our team winning the MathWorks Modeling Award<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;">The project taught us the importance of system-level thinking, simulation-based verification, and careful integration of hardware and software.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Looking ahead, we plan to enhance our models with more detailed sensor dynamics, environmental variability, and figure out a way to fully simulate our system including motion camera readings and implementing advanced mechanical steering.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 483px; height: 344px;" src="https://blogs.mathworks.com/student-lounge/files/2026/02/26feb9_8.png" alt="Picture8.jpg" width="483" height="344" /></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/02/09/how-future-engineers-use-matlab-and-simulink-at-world-robot-olympiad/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why Students Should Learn Model-Based Design: Insights from Industry Leaders at MATLAB EXPO</title>
		<link>https://blogs.mathworks.com/student-lounge/2026/01/26/why-students-should-learn-model-based-design-insights-from-industry-leaders-at-matlab-expo/?s_tid=feedtopost</link>
					<comments>https://blogs.mathworks.com/student-lounge/2026/01/26/why-students-should-learn-model-based-design-insights-from-industry-leaders-at-matlab-expo/#respond</comments>
		
		<dc:creator><![CDATA[Tanya Kuruvilla]]></dc:creator>
		<pubDate>Mon, 26 Jan 2026 13:21:04 +0000</pubDate>
				<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Simulink]]></category>
		<category><![CDATA[Skills]]></category>
		<category><![CDATA[Model-Based Design (MBD)]]></category>
		<guid isPermaLink="false">https://blogs.mathworks.com/student-lounge/?p=13335</guid>

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

Introduction: Why These Skills Matter
Engineering today is a dynamic, fast-moving field. Whether you’re designing autonomous vehicles, aerospace systems, or renewable energy solutions, one truth... <a class="read-more" href="https://blogs.mathworks.com/student-lounge/2026/01/26/why-students-should-learn-model-based-design-insights-from-industry-leaders-at-matlab-expo/">read more >></a></p>]]></description>
										<content:encoded><![CDATA[<div class="rtcContent">
<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;">Introduction: Why These Skills Matter</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;">Engineering today is a dynamic, fast-moving field. Whether you’re designing autonomous vehicles, aerospace systems, or renewable energy solutions, one truth remains: success depends on mastering both cutting-edge tools and foundational skills.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 MATLAB EXPO, Paul Shears, Chief Engineer at BAE Systems, talked with Ronald van Loon and shared insights that resonate deeply with students and early-career engineers. His message was clear:</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;">Model-Based Design (MBD) </span>is transforming how complex systems are developed.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Curiosity and hands-on learning </span>are the keys to thriving in this evolving landscape.</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;">After watching Paul’s interview we’ll explain why MBD matters, how you can start learning it today, and what core skills will set you apart in your engineering journey.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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: 600px; height: 334px;" src="https://blogs.mathworks.com/student-lounge/files/2026/01/26jan26_1.png" alt="Screenshot 2026-01-23 173947.png" width="600" height="334" /></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;">Why Model-Based Design Matters</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;">Imagine you’re tasked with designing a flight control system for a fast jet aircraft; a system where safety is non-negotiable and precision is everything. Traditionally, such projects required 12 months and a team of 30 engineers. But at BAE Systems, using Model-Based Design (MBD) with tools like Simulink and Simscape, the same task was completed in under three months by just six engineers; and delivered with zero defects.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">So, what makes MBD so powerful?</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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 writing thousands of lines of code upfront, engineers create graphical models that represent system behavior. These models can be simulated early in the design process, allowing teams to verify performance before hardware is built. Once validated, the models can automatically generate production-quality code for embedded systems.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Paul explained how this approach transformed their 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: center;"><span style="font-style: italic;">“We use a very multi-domain model based approach which covers the entire V life cycle of a product development life cycle. I think one of the examples where we&#8217;re quite proud is in the development of a full authority digital flight control computer. So we used great technologies from MathWorks like Simulink to design that software and then use that to autocode the software. Now as you can imagine that&#8217;s a very large complex piece of software. Very safety critical indeed. We&#8217;re able to autocode that. So shaving lots of time and money off the development cost and actually deliver it to the customer with uh with defects.” </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;">Another example involved hydraulic actuator control systems for fast jets. Using Simulink and Simscape, the team modeled the physical system, tested control logic, and auto-generated code for FPGA hardware. When integrated into real hardware, it worked first time; a testament to the reliability of simulation-driven 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;"><span style="font-weight: bold;">Why It Matters for Students</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;"><span style="font-weight: bold;">Industry Standard: </span>Model-Based Design is widely adopted in aerospace, automotive, robotics, and beyond.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Efficiency: </span>It reduces development time and cost while improving reliability.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Career Advantage: </span>Employers value engineers who understand simulation-driven workflows and can bridge theory with practice.</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;">Getting Started with Model-Based Design</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 don’t need a defence lab to learn MBD. You can start right now with tools and resources available to 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;">Begin with MATLAB and Simulink basics. These platforms are the foundation of MBD and are widely used across industries. Explore free tutorials on the MathWorks <a href="https://www.mathworks.com/academia/students/resources.html"><span style="text-decoration: underline;">MATLAB and Simulink Resources for Students</span></a> webpage, which offers step-by-step guides for beginners.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Next, simulate simple systems. For example, model a DC motor or a PID controller in Simulink. Experiment with parameters and observe how changes affect performance. This hands-on approach helps you understand the cause-and-effect relationships in system 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;">Once you’re comfortable, dive into Simscape for physical modeling. Simscape lets you represent multidomain domain systems in a unified environment—perfect for multidisciplinary projects.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Pro Tip: Use MATLAB Live Scripts to combine code, equations, and visualizations in one interactive document. This makes your work easy to share and present, whether for coursework or competitions.</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;">Core Skills for Early-Career Engineers</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;">Technical tools are essential, but they’re not enough. Paul’s advice? <span style="font-style: italic;">“Be a tinkerer.”</span>The most successful engineers are creators who love experimenting and learning by doing.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Start by writing simple scripts in MATLAB or Python. These languages form the backbone of modern engineering workflows. Solve problems on coding challenge platforms to sharpen your logic and algorithmic thinking.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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, take it a step further: build prototypes. Use Arduino boards, sensors, and servos to create small systems. This hands-on approach teaches you how software interacts with hardware—a skill that’s invaluable in embedded systems, robotics, and IoT.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">And don’t do it alone. Collaboration is key. Join a student club, participate in a competition hackathon, or work on team projects. Engineering is a team sport, and employers look for candidates who can communicate effectively and adapt to different roles.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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;">Soft Skills to Cultivate:</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;"><span style="font-weight: bold;">Problem-Solving: </span>Break down complex challenges into manageable steps.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Creativity: </span>Think beyond the obvious—innovation often comes from unconventional ideas.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;"><span style="font-weight: bold;">Continuous Learning: </span>Technology evolves fast; stay curious and keep upskilling.</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;">Paul summed it up perfectly:</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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;For a successful career in engineering and I&#8217;ve been one for 25 years, I think it&#8217;s always about challenging yourself and learning new things and that that passion to learn and grow, rather than just sitting on a static piece of knowledge.&#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;"></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;">Building a Career Mindset</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;">In industries like aerospace and defense, projects can span decades. That means continuous learning isn’t optional—it’s essential. Knowledge retention and adaptability are key to staying relevant.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;">Paul highlighted a unique 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;"><span style="font-style: italic;">“A lot of our products we have support contracts that extend out like 40 or 60 years and we have to support things in the field. So as you can imagine knowledge retention and business continuity is a big problem. At the same time you know someone doesn&#8217;t want to work on one thing all their career right so you need an organization where people can move around rotate so they can continuously learn and grow and upskill themselves.” </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;">One enabler of this flexibility is Model-Based Engineering, which provides a common language and toolset across product groups. For students, this means learning tools like MATLAB and Simulinkisn’tjust about oneproject—it’sabout building a foundation that applies across domains.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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;">How to Stay Ahead:</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;">Rotate through different areas—controls, AI, embedded systems—to broaden your perspective.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Learn emerging technologies like AI and machine learning, but understand their ethical and safety implications.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Build networks: Join student clubs, attend hackathons, and participate in events like MATLAB EXPO to connect with peers and industry experts.</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 experiences often lead to internships, research opportunities, and full-time roles. More importantly, they help you develop the adaptability that modern engineering careers demand.</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: Your Journey Starts Now</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;">Engineering is about solving interconnected problems—and the tools and methods will keep evolving. Combine technical mastery (MATLAB, Simulink, AI) with curiosity and collaboration, andyou’llbe ready for the challenges—and opportunities—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;">Start today:</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;">Explore MathWorks tutorials and learning paths.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Build your first simulation.</li>
<li style="margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;">Share your projects with the community.</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 future of engineering needs problem-solvers like you. Be inspired, be creative, and keep learning.</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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.youtube.com/watch?v=3GbxWShjzW8"><span style="text-decoration: underline;">Watch the full video h</span><span style="text-decoration: underline;">e</span><span style="text-decoration: underline;">re.</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;"><a href="https://www.mathworks.com/academia/students/resources.html"><span style="text-decoration: underline;">Click here to find MATLAB and Simulink resources for students.</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: center;"><img decoding="async" loading="lazy" class="imageNode" style="vertical-align: baseline; width: 640px; height: 360px;" src="https://blogs.mathworks.com/student-lounge/files/2026/01/26jan26_2.png" alt="uk-expo-2025-event-detail.jpg" width="640" height="360" /></div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-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;">UK Expo 2025</div>
<div style="margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; 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/01/26/why-students-should-learn-model-based-design-insights-from-industry-leaders-at-matlab-expo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
