{"id":102,"date":"2025-03-31T18:28:36","date_gmt":"2025-03-31T18:28:36","guid":{"rendered":"https:\/\/ayaannaha.com\/?p=102"},"modified":"2025-03-31T18:30:33","modified_gmt":"2025-03-31T18:30:33","slug":"102","status":"publish","type":"post","link":"https:\/\/ayaannaha.com\/index.php\/2025\/03\/31\/102\/","title":{"rendered":"Cargo Rover for a Lunar Base; Part 1"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Lunar Rover!!!<\/h2>\n\n\n\n<p>A future lunar base will have a ton of jobs for robotics to complete &#8211; I decided to narrow the scope of my project down to transporting supplies.<\/p>\n\n\n\n<p>To resupply a lunar base, you\u2019ll need to send a lander. The types of supplies will probably include food, water, oxygen, equipment, tools, new habitat modules, scientific instruments, the list goes on and on. It could be simpler to have an astronaut move the cargo, however, space suits have terrible mobility. An astronaut can\u2019t even pick up a tool if they drop it, and some of the supplies will be too heavy to realistically move without some form of assistance.<\/p>\n\n\n\n<p><strong>In short, robotics are going to be a key technology for ensuring a crewed lunar base runs smoothly<\/strong><\/p>\n\n\n\n<p>My rover uses ROS2 (robot operating system 2) for it\u2019s control, communications, and navigation. ROS is a super versatile robotics library and it\u2019s used in a ton of industry applications. So far, I\u2019ve used ROS2, RViz (robot visualization software) and Gazebo (A physics simulation built for ROS) to simulate my rover in lunar terrain.<\/p>\n\n\n\n<p>The key things I learnt through this simulation were:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ROS Fundamentals &#8211; topics, nodes, communications.<\/li>\n\n\n\n<li>Coding a URDF file for the rover &amp; visualizing it with RViz<\/li>\n\n\n\n<li>Setting up a Gazebo simulation<\/li>\n\n\n\n<li>Coding the steering control using ROS libraries.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Rover Simulation\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/sYYCmFDplrY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>My rover is technically pretty simple. I\u2019m using a Raspberry Pi 4B as the rover computer. The pi sends motor commands to an Arduino Nano, which converts those motor commands into a PWM (pulse width modulation) signal.<\/p>\n\n\n\n<p>PWM is basically a way to control the voltage going into a device without actually changing the voltage of the power supply. You \u201cpulse\u201d the voltage on and off, and the average of the amount of time the voltage is on is how much \u201cpower\u201d the system gets.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"650\" height=\"446\" src=\"https:\/\/ayaannaha.com\/wp-content\/uploads\/2025\/03\/image-3.png\" alt=\"\" class=\"wp-image-103\" style=\"width:286px;height:auto\" srcset=\"https:\/\/ayaannaha.com\/wp-content\/uploads\/2025\/03\/image-3.png 650w, https:\/\/ayaannaha.com\/wp-content\/uploads\/2025\/03\/image-3-300x206.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/figure>\n\n\n\n<p>That PWM signal goes to a motor controller, which amplifies the signal to a usable voltage for the motors. So far I\u2019ve wired up 1 motor, but the final version is going to have 4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"720\" height=\"540\" src=\"https:\/\/ayaannaha.com\/wp-content\/uploads\/2025\/03\/image-4.png\" alt=\"\" class=\"wp-image-104\" srcset=\"https:\/\/ayaannaha.com\/wp-content\/uploads\/2025\/03\/image-4.png 720w, https:\/\/ayaannaha.com\/wp-content\/uploads\/2025\/03\/image-4-300x225.png 300w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Roadblocks &amp; Challenges<\/h3>\n\n\n\n<p>This project didn\u2019t come without it\u2019s roadblocks though. I struggled for a bit with figuring out exactly what parts I needed to get for a while, since it\u2019s hard to know what you\u2019ll need to get started with robotics. Currently, I\u2019ve been struggling with getting serial-usb connection working with the Raspberry Pi and the Arduino, which has been a major blocker in me continuing this project.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Next Steps:<\/h3>\n\n\n\n<p>These are just the first steps for this project. I plan on 3D printing a chassis for the rover and testing it out in a sandbox once I get past the software roadblocks I\u2019m facing currently.<\/p>\n\n\n\n<p>Once I have the base rover built, I want to include a linear actuation system, possibly including a magnet, or a robotic arm to pick up and move supplies. The goal is to have a prototype that can successfully move a mockup of some lunar cargo from one location (a lander) to another (a habitat)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Content:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/youtu.be\/CZyX-p6fLZQ?si=ZJ5OK_ZWShKIcRKQ\">Youtube vid of me going through the raspberry pi setup process<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/x.com\/AyaanNaha\/status\/1862272373283856569\">Twitter post showing off part of the electronics \/ powering system<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The Lunar Rover!!! A future lunar base will have a ton of jobs for robotics to complete &#8211; I decided [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-102","post","type-post","status-publish","format-standard","hentry","category-projects"],"_links":{"self":[{"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/posts\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":4,"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"predecessor-version":[{"id":108,"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/posts\/102\/revisions\/108"}],"wp:attachment":[{"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ayaannaha.com\/index.php\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}