Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

188 total results found

Getting Started

Jonny Boi

Prerequisites All development happens on Ubuntu 22.04 (Jammy Jellyfish). If you are running Windows, the easiest way to install it is through WSL2. If you prefer to work in Docker, you can use image docker.io/osrf/ros:humble-desktop-full. You need to have a ba...

Frontend — Basics

Base station

Location: src/ and src/routes/ The frontend is a SvelteKit TypeScript application. It uses Svelte 5's runes-based reactivity ($effect, $props, $state) throughout. All communication with the Rust backend goes through Tauri's invoke() function. Incoming rover d...

Backend — Commands

Base station

Location: src-tauri/src/commands/ Tauri commands are Rust functions exposed to the frontend via invoke. All commands are registered in and live in the module. Each page below covers one file.

RFiD Time Tracker

rover_state.rs — Rover Mode State

Base station Backend — Commands

The state described here MIGHT be subject to change Manages the three global boolean flags that track the rover's current operating mode. The state is held in a RoverState struct registered as Tauri managed state (initialised in lib.rs), so it persists for the...

ArUco

Jonny Boi Computer Vision

Architecture and ERC tasks ArUco marker During the navigation task, there will be some landmarks of note that the rover can use to establish its position relative to the Mars Yard. These landmarks will be identified through fixed wooden poles that dis...

Overview

Jonny Boi SLAM

This subsystem is still in experimentation phase and WILL change. The autonomous navigation of the rover is supported by the use of an Intel RealSense D435i depth camera. This sensor provides synchronized RGB, depth, and inertial measurements (IMU), which are ...

Overview

Jonny Boi Rover Communications

Communication is a subsystem responsible for bridging the two distinct networks present on the rover: the Ethernet Network and the ROS2 Network. Without it, Jonny Boi (the Jetson Orin Nano) would have no way to talk to the hardware microcontrollers or the Base...

file_management.rs — Persistent File Storage

Base station Backend — Commands

Handles all file I/O for the application. Files are stored inside Tauri's app_data_dir, which is platform-specific (e.g. %APPDATA%\base_station on Windows). Three subdirectories are used: DirectoryPurposetasks/Saved task plan filesimages/Snapshots captured fro...

gstreamer.rs — Video Streaming

Base station Backend — Commands

Receives H.264 video from the rover over UDP, decodes it, and serves it as MJPEG over HTTP so the frontend can display it in <img> tags. Pipeline per camera udpsrc (UDP port) → rtpjitterbuffer → rtph264depay → avdec_h264 → videoconvert → jpegenc → appsink Each...

network.rs — UDP & Dummy Simulator

Base station Backend — Commands

This file is work in progress Exposes commands related to the UDP connection and the development simulator. Commands send_ping_cmd(packet_type) Intended to send a ping packet to the rover over UDP. Currently logs to console — full implementation pending. start...

controller.rs — Gamepad Input

Base station Backend — Commands

Runs a background listener for gamepad input using the gilrs library, translating button and axis events into UDP packets sent to the rover. All dispatching is gated on the current mode (drive vs. pickup) and whether the relevant manual mode is active. Modes T...

checks.rs — Diagnostics

Base station Backend — Commands

Two utility commands for diagnostics and maintenance. ping() Prints "PING FROM RUST" to the console. Used to verify the Tauri bridge is working. clear_cache() Deletes all contents of the base_station/ folder inside the system cache directory. Exposed as a call...

load_model.rs — 3D Model Loading

Base station Backend — Commands

Handles loading of 3D model files bundled with the application. load_model(path) → Vec<u8> Reads a model file by filename and returns its raw bytes to the frontend. In debug builds, models are loaded from src-tauri/models/. In release builds, they are loaded f...

rover_commands.rs — Rover Science Commands

Base station Backend — Commands

This file is work in progress These commands are called by the frontend to request measurements or send data to the rover. All four are currently partially stubbed — they simulate a 1-second rover response delay and return dummy values, but the actual UDP disp...

Backend — Networking & Protocol

Base station

Location: src-tauri/src/network/ This module owns the UDP socket and all communication between the base station and the rover. It is split into four files: service, listener, sender and dummy.

Overview

Base station Backend — Networking & Protocol

The socket is created once in service.rs, wrapped in an Arc, and shared between the listener and the sender/dummy so they all use the same bound port. Graph subject to change as communication gets finalized

service.rs — UDP Socket

Base station Backend — Networking & Protocol

UdpService is a thin wrapper that binds a UDP socket and holds it in an Arc<UdpSocket> so it can be shared across async tasks. It is registered as Tauri managed state at startup so any command can access the socket via State<'_, UdpService>. Binds to address p...