{"id":4460,"date":"2023-12-02T04:47:00","date_gmt":"2023-12-02T04:47:00","guid":{"rendered":"https:\/\/creating-worlds.com\/homepage\/?p=4460"},"modified":"2024-02-02T04:59:09","modified_gmt":"2024-02-02T04:59:09","slug":"simulating-lunar-rover-operations-in-vr","status":"publish","type":"post","link":"https:\/\/creating-worlds.com\/homepage\/?p=4460","title":{"rendered":"Simulating Lunar Rover Operations in VR"},"content":{"rendered":"\n<p><em>The Canadian Space Agency (CSA) is currently working on the development of a rover set to be deployed on the south pole of the Moon by the end of the decade. Given the close collaboration between CSA and ESA in the Artemis program, there is a significant emphasis on ensuring high interoperability between the technological solutions of both agencies. To showcase this interoperability, I was tasked with creating an interactive VR experience centered on the prospective CSA rover being deployed to the Moon via ESA&#8217;s upcoming Argonaut lander.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Objectives<\/h3>\n\n\n\n<p>The aim was not merely to offer users an immersive experience of the CSA rover&#8217;s deployment, but also to provide them with the means to control the rover&#8217;s movement, allowing them to embark on hypothetical missions in a virtual lunar landscape.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What I did<\/h3>\n\n\n\n<p>I built from scratch a model corresponding to the projected look of the upcoming CSA rover and I designed a rover deployment and control system in Unreal Engine 4.   <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Workflow<\/h3>\n\n\n\n<p>At the time of this project, no official blueprints for the CSA rover were available, only a few photos of early prototypes. Faced with this lack of information on key features, such as the placement of its robotic arm, I created sketches of various configurations and shared them with colleagues for input. <\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05336228919&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05336228919\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/rover-arms-1024x576.jpg\" alt=\"\" class=\"wp-image-4462\" srcset=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/rover-arms-1024x576.jpg 1024w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/rover-arms-300x169.jpg 300w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/rover-arms-768x432.jpg 768w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/rover-arms-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Their feedback allowed me to converge on a plausible configuration for the rover. Using this information, I then developed a more detailed model of the rover using Cinema 4D. I used Substance Painter for all texturing work.  <\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05336228d33&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05336228d33\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"4466\" src=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa_mesh2-1024x1024.jpg\" alt=\"\" class=\"wp-image-4466\" srcset=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa_mesh2-1024x1024.jpg 1024w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa_mesh2-300x300.jpg 300w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa_mesh2-150x150.jpg 150w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa_mesh2-768x768.jpg 768w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa_mesh2-370x370.jpg 370w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa_mesh2.jpg 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Final rigged mesh <\/figcaption><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0533622903d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a0533622903d\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"4459\" src=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSArover_render1-1024x1024.jpg\" alt=\"\" class=\"wp-image-4459\" srcset=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSArover_render1-1024x1024.jpg 1024w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSArover_render1-300x300.jpg 300w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSArover_render1-150x150.jpg 150w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSArover_render1-768x768.jpg 768w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSArover_render1-370x370.jpg 370w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSArover_render1.jpg 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Model with finalized textures<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>For the initial &#8216;proof-of-concept&#8217; implementation of the rover in Unreal, I employed keyboard keys as input for controlling the rover&#8217;s movement. Users were also provided with the option to &#8217;embody&#8217; the rover by switching to a camera mounted at the rear of the rover, as demonstrated in the following video: <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 1280 \/ 720;\" width=\"1280\" controls src=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/CSA_rover_test1_x264_shorter_x264_001.mp4\"><\/video><\/figure>\n\n\n\n<p>After internal testing at our lab, I improved the control interface by enabling users to activate and control the rover using a virtual tablet device. This tablet also offered a real-time video feed streamed by the rover, enabling users to drive the rover beyond their own visual range.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0533622999c&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a0533622999c\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/roverControl-1024x576.jpg\" alt=\"\" class=\"wp-image-4463\" srcset=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/roverControl-1024x576.jpg 1024w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/roverControl-300x169.jpg 300w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/roverControl-768x432.jpg 768w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/roverControl-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>As of now, I am in the process of converting the rover simulator to Unreal Engine 5, which offers greater visual fidelity, especially with regards to rendering the lunar landscape, as illustrated by the screenshot below: <\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05336229ccc&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05336229ccc\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa-rover-in-vortex-1024x576.jpg\" alt=\"\" class=\"wp-image-4458\" srcset=\"https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa-rover-in-vortex-1024x576.jpg 1024w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa-rover-in-vortex-300x169.jpg 300w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa-rover-in-vortex-768x432.jpg 768w, https:\/\/creating-worlds.com\/wp-content\/uploads\/2024\/02\/csa-rover-in-vortex-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The Canadian Space Agency (CSA) is currently working on the development of a rover set to be deployed on the south pole of the Moon by the end of the decade. Given the close collaboration between CSA and ESA in the Artemis program, there is a significant emphasis on ensuring high interoperability between the technological<\/p>\n","protected":false},"author":1,"featured_media":4458,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[33],"class_list":{"0":"post-4460","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-vr","8":"tag-vr"},"_links":{"self":[{"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=\/wp\/v2\/posts\/4460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4460"}],"version-history":[{"count":7,"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=\/wp\/v2\/posts\/4460\/revisions"}],"predecessor-version":[{"id":4473,"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=\/wp\/v2\/posts\/4460\/revisions\/4473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=\/wp\/v2\/media\/4458"}],"wp:attachment":[{"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/creating-worlds.com\/homepage\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}