{"id":13036,"date":"2025-11-19T17:43:09","date_gmt":"2025-11-19T16:43:09","guid":{"rendered":"https:\/\/dronesonen.usn.no\/?p=13036"},"modified":"2025-11-21T14:39:02","modified_gmt":"2025-11-21T13:39:02","slug":"aroweek-12","status":"publish","type":"post","link":"https:\/\/dronesonen.usn.no\/?p=13036","title":{"rendered":"AROWEEK 12"},"content":{"rendered":"\n<p><strong>Bram van den Nieuwendijk<\/strong>&nbsp;<\/p>\n\n\n\n<p>This week I continued in the assembly of the car. 3D printed wheels have arrived and I did some alterations on them so they can be attached to the car. The rotatating and heaving top is now also ready to be tested. The missing hardware components from my part is now the watertank and its supports which I have sent to be 3D printed. Also the pump supports still have to be finalized. Rick is currently working on the assembly of the electrical components after this the testing will begin.&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>Sulaf Bozomqita \u2013 Week 12: Smarter Avoidance &amp; Adaptive Speed Control<\/strong>&nbsp;<\/p>\n\n\n\n<p>This week I made a major leap in the obstacle detection system by introducing predictive avoidance, adaptive speed control, and a logging mechanism for debugging. I had fun doing that, it was challenging for sure, making a predictive system like this, and it made me learn much more. Previously, the robot reacted to obstacles with simple maneuvers. Now, it anticipates obstacles, plans short reroutes, and adjusts speed dynamically based on environmental risk.&nbsp;<\/p>\n\n\n\n<p>What I did new this week with the code:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"409\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-122.png\" alt=\"\" class=\"wp-image-13037\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-122.png 684w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-122-300x179.png 300w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><\/figure>\n\n\n\n<p>I focused on predictive path planning, where the robot can now chooses the safest direction and calculates a short reroute (turn + forward move) before resuming with normal navigation. This makes avoidance more intelligent and less random, ergo it makes for a much smarter system.&nbsp;&nbsp;<\/p>\n\n\n\n<p>In addition to that, I made the adaptive speed control much more \u2018aware\u2019 in a way. If obstacles are close on both sides, the robot slows down more. But if the path is clear, it accelerates back to cruising speed.&nbsp;<\/p>\n\n\n\n<p>Lastly, the multiple simulated obstacles appeared dynamically to test the predictive avoidance and adaptive speed control.&nbsp;<\/p>\n\n\n\n<p><strong>Testing:<\/strong>&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"538\" height=\"271\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-123.png\" alt=\"\" class=\"wp-image-13038\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-123.png 538w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-123-300x151.png 300w\" sizes=\"auto, (max-width: 538px) 100vw, 538px\" \/><\/figure>\n\n\n\n<p><strong>Output:<\/strong>&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"583\" height=\"268\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-124.png\" alt=\"\" class=\"wp-image-13039\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-124.png 583w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-124-300x138.png 300w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/figure>\n\n\n\n<p>As the console output shows, the robot is seen first navigating, with gradual speed control I implemented, then it <em>predicts <\/em>an obstacle, maneuver accordingly: by backing up, <em>deciding<\/em> to turn left then <em>resumes<\/em> forward after rerouting, then gradually keeps navigating forward.&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>Conclusion &amp; What I learned&nbsp;<\/strong>&nbsp;<\/p>\n\n\n\n<p>This week was both challenging and rewarding. Implementing a predictive avoidance and adaptive speed control pushed me to think beyond simple obstacle reaction for the robot, and designing a system that feels intelligent was quite entertaining, especially considering this is how smart systems really work. By making this system, I feel like I made a more smart system than I had before. It was hard because I had to make the robot anticipate obstacles, then choose the safest path to take, and adjust speed dynamically, all while keeping the code efficient and testable without real hardware to test it on.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Despite the complexity, it was fun and satisfying to see the simulation behave more like a real <em>autonomous<\/em> robot as we always wanted it to be when starting this project. It really feels like this is coming together as I envisioned it originally.&nbsp;<\/p>\n\n\n\n<p><strong>The rest of the code from before for context:<\/strong>&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"658\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-126.png\" alt=\"\" class=\"wp-image-13040\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-126.png 673w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-126-300x293.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"658\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-126.png\" alt=\"\" class=\"wp-image-13042\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-126.png 673w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-126-300x293.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"451\" height=\"201\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-125.png\" alt=\"\" class=\"wp-image-13041\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-125.png 451w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-125-300x134.png 300w\" sizes=\"auto, (max-width: 451px) 100vw, 451px\" \/><\/figure>\n\n\n\n<p><strong>Rick Embregts<\/strong>&nbsp;<\/p>\n\n\n\n<p>This week the PCB&#8217;s finally came. However when I asked about the assembly equipment it turned out the teacher needed one or two weeks of preperation before I could assemble my PCB. For this reason I chose to run the backup plan. See the schematic for the backup plan below:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"656\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-140-1024x656.png\" alt=\"\" class=\"wp-image-13114\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-140-1024x656.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-140-300x192.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-140-768x492.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-140-1536x985.png 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/11\/image-140.png 1699w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>As you can see the BMS and battery are not part of the plan anymore. One of the servo&#8217;s was also not needed anymore because of the different mechanical design.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Later this week we got all of the parts for the backup plan. On Friday we began assembling the backup plan.&nbsp;<\/p>\n\n\n\n<p>This week I have been informed that the motors and batterie casing are going to be bought.&nbsp;<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bram van den Nieuwendijk&nbsp; This week I continued in the assembly of the car. 3D printed wheels have arrived and I did some alterations on them so they can be attached to the car. The rotatating and heaving top is now also ready to be tested. The missing hardware components from my part is now [&hellip;]<\/p>\n","protected":false},"author":114,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13036","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/13036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/users\/114"}],"replies":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13036"}],"version-history":[{"count":3,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/13036\/revisions"}],"predecessor-version":[{"id":13115,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/13036\/revisions\/13115"}],"wp:attachment":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}