Skip to content

mirmisbahali/deakin_rover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Deakin Rover Logo

Deakin Rover β€” Australian Rover Challenge 2026

A student-built, ROS2-powered lunar rover competing at the Australian Rover Challenge 2026.

ROS2 Jazzy Docker Python License

Build


Rover hero shot Deakin Rover doing the construction task (Image Source: ARCh 2026 Day 3 Livestream)


Table of Contents


πŸš€ Project Overview

The Deakin Rover is designed and built by the Deakin Competitive Robotics Club for the Australian Rover Challenge (ARC), Australia's premier university rover competition. Teams design, build, and operate rovers through a series of field tasks including terrain traversal, equipment servicing, autonomous navigation, and science sample retrieval.

This repository contains the full software stack of Deakin Rover Borealis for the 2026 competition entry: onboard Jetson Nano software, base station ROS2 workspace, and the web-based operator dashboard built with Next.js β€” all containerised with Docker.


πŸ— System Architecture

The rover runs a self-contained ROS2 stack on an NVIDIA Jetson Nano. The operator connects via a Next.js web GUI over Wi-Fi with no ROS2 installation required on the operator's PC.

Note on dcr_base_station/base_station_ws/ and dcr_base_station/.devcontainer/: These exist solely for local development and GUI testing. They allow a developer without access to the physical rover to spin up an Ubuntu + ROS2 Jazzy container running the same nodes as the Jetson, so the GUI can be validated end-to-end on a laptop. They are not part of the competition architecture and are not deployed on-site.

Rover (NVIDIA Jetson Nano β€” dcr_rover/):

Drivetrain:

flowchart LR
    d1[USB Joystick] --> d2["/joy topic"] --> d3[dcr_joy_to_motor] --> d4[MotorMovementCommand.srv] --> d5["BLD-305s (RS485/Modbus RTU)"] --> d6[6-wheel drivetrain]
Loading

Robotic Arm:

flowchart LR
    a1[USB Joystick] --> a2["/arm/joy topic"] --> a3["motor_node (IKPy FK/IK)"] --> a4[nobleo_socketcan_bridge] --> a5[CAN bus] --> a6[6-DOF arm motors]
Loading

Camera Streaming:

flowchart LR
    c1[3x USB Cameras] --> c2[mjpg_streamer] --> c3["HTTP :8080 / :8090 / :8091"]
Loading

Antenna and LEDs:

flowchart LR
    an1[rover_antenna] --> an2["/dev/ttyACM1"] --> an3[ESP32] --> an4[Antenna deploy + RGB LED array]
Loading

Operator Comms:

flowchart LR
    o1["Next.js GUI (operator PC)"] -- WebSocket --> o2["rosbridge_server :9090"]
    o1 -- MJPEG --> o3["mjpg streams :8080 / :8090 / :8091"]
Loading

Development tool β€” Foxglove Studio + foxglove_bridge (:8765): During development and field testing, Foxglove Studio connected to the rover via foxglove_bridge to visualise the robotic arm URDF in real time, giving the team a live digital twin of the arm. This was used to verify joint positions and ensure no arm segment was colliding with the chassis or other parts of the rover during operation. Foxglove is not required to run the system in competition.

Operator PC (dcr_base_station/gui/ only):

flowchart LR
    gui["Next.js GUI\nlocalhost:3000"]
    gui -- "roslib.js WebSocket" --> rb["rover IP:9090\nrosbridge_server"]
    gui -- "MJPEG HTTP" --> cam["rover IP:8080 / :8090 / :8091\nmjpg_streamer"]
Loading

The Jetson Docker container (dustynv/ros:jazzy-desktop-r36.4.0-cu128-24.04, CUDA 12.8-optimised) is the only containerised ROS2 environment used in competition.


✨ Features

Software

Feature Details
ROS2 Jazzy middleware rosbridge WebSocket server (:9090) for GUI communication
Full Docker containerisation Dev containers for both Jetson and operator PC; reproducible builds with zero host dependency conflicts
Operator dashboard Next.js 16 / React 19 / MUI 7 web GUI β€” camera feeds, arm control, antenna/LED panel, joystick status
Joystick teleoperation USB gamepad β†’ /joy β†’ dcr_joy_to_motor at 3 Hz with 500 ms watchdog timeout
6-DOF arm kinematics motor_node implements forward & inverse kinematics via IKPy from a URDF model
Multi-camera streaming 3Γ— USB cameras (640Γ—480, 15 fps, MJPEG) via mjpg_streamer on ports 8080/8090/8091
Deployable antenna Custom deployment code + ESP32 firmware; RGB LED control via serial at 115200 baud
SocketCAN bridge nobleo_socketcan_bridge (C++20) at 1 Mbps β€” exposes CAN bus as /socketcan_bridge/rx and /socketcan_bridge/tx ROS2 topics
Custom ROS2 interfaces dcr_interfaces (motor commands, LED commands), arm_interfaces (motor move/status messages)

Hardware

Subsystem Details
6-wheel drivetrain BLD-305s brushless motor controllers via RS485/Modbus RTU; up to 3500 RPM; address-based direction control
6-DOF robotic arm CAN-bus actuated; position control and speed control modes; laser-equipped end effector
Multi-camera rig 3Γ— USB cameras
Deployable antenna ESP32-controlled deployment mechanism with addressable RGB LED array

Robotic arm in action 6-DOF robotic arm picking rocks during the construction task (Image Source: ARCh 2026 Day 3 Livestream.)


πŸ† Awards & Recognition

Australian Rover Challenge 2026

Award Category
Best Team Culture Team Culture

Best Team Culture Award Team Deakin receiving the Best Team Culture Award at the Australian Rover Challenge 2026. (Watch on Livestream: Link)


πŸ›  Getting Started

Setup involves several prerequisite steps β€” installing the PEAK CAN driver, patching the Linux kernel for multi-camera USB support, connecting and configuring cameras, installing Docker, VS Code, and the Dev Containers extension β€” before the ROS2 workspace can be built and launched.

Operator GUI screenshot Operator dashboard: live camera feeds, arm control panel, antenna control, and joystick status. (Image Source: ARCh 2026 Day 3 Livestream.)


πŸ‘₯ Team & Acknowledgements

Team Deakin β€” ARC 2026

Member GitHub / LinkedIn Title Contribution
Arden Drew Cunneen GitHub LinkedIn Team Leader & Project Manager Managed the project end-to-end; sourced funding; enforced systems engineering process; organised all logistics, travel, and accommodation for Adelaide
Misbah Ali GitHub LinkedIn Software & Autonomous Systems Lead ROS2 architecture design, Docker containerisation, teleoperation pipeline, GUI development, designed the wheels
Ayan GitHub LinkedIn Software Team GUI development
Atharva GitHub LinkedIn Software Team GUI development
Bon GitHub LinkedIn Payloads Team Lead Led the development of Robotic Arm, Robotic arm forward & inverse kinematics implementation and ROS2 code
Ryan Falconer LinkedIn Payloads Team Member Designed, manufactured, and assembled the robotic arm together with Bon
Gregorius Nathaniel Perdana Budihartono LinkedIn Payloads Team Member Designed and programmed the end effector; designed the construction-task scooper; arm electronics; 3D-printed motor housing and mechanical parts
Simeon Chun Kit Choo LinkedIn Payloads Team Member Robotic arm design and development; wire management and soldering; chassis panels and Borealis front plate design and manufacturing; designed the rover carry frame
Seth Belleville LinkedIn Payloads Team Member Designed construction-task pavers; major contributor to Best Team Culture Award
Nguyen GitHub LinkedIn Cameras & Communication Team Lead Antenna deployment code and ESP32 firmware for antenna control
Tuan GitHub LinkedIn Cameras & Communication Co-lead Antenna deployment code and ESP32 firmware for antenna control
Zachary Michael Dwyer LinkedIn Cameras & Communication Team Member Camera placement and testing; electrical organisation and wire management; parts sourcing; assisted with antenna installation, wireless networking, and IP configuration
Truong Gia Bao Ly LinkedIn Cameras & Communication Team Member Camera and communication subsystem; LED installation; electrical wire management; provided car and drove the team to/from Adelaide and the competition site
Biniam Seyoum Getachew LinkedIn Payloads Team Member CAD design for the robotic arm (hose connection); 3D printed mechanical parts; electrical wire management
Nathan @BadCodr LinkedIn Electrical Team Lead Full electrical architecture (2025 base), drivetrain motor control, Linux kernel patch for multi-camera support, mjpg-streamer integration
Zack Harvey LinkedIn General Support Spray-painted rover chassis; laser-cutting and manufacturing support; club executive support for funding and club activities

Acknowledgements

2025 Foundations

  • Lachlan Carboon LinkedIn β€” co-founded the Deakin Competitive Robotics Club and started the rover project at Deakin University. He signed the team up for the Australian Rover Challenge, introduced it to Deakin students, built the first team, and submitted the first competition documents in 2025 β€” without him, none of this exists.
  • Matt Davison LinkedIn β€” designed the original rover from the ground up in 2025, enabling Deakin's first-ever entry at the Australian Rover Challenge. The full mechanical design β€” chassis, suspension, and wheels β€” was his work, and the 2026 build is built directly on top of it.
  • Jatan Vadgama LinkedIn (Mechanical Team Lead, ARC 2025) β€” took Matt's design, made key modifications, and assembled the complete rover for the 2025 competition. His mechanical engineering and creativity were instrumental in the 2025 build cycle. The 2026 team used the chassis and suspension he assembled and redesigned only the wheels.
  • Nathan LinkedIn β€” the drivetrain motor control system is built on top of the electrical design and codebase Nathan developed for the 2025 competition. His work on RS485 motor interfacing and the Linux kernel patch for multi-camera USB support laid the foundation for this year's software.

Open Source

Team Deakin at ARC 2026

Team Deakin at ARC 2026 Team Deakin at the Australian Rover Challenge 2026.


πŸ“„ License

License

This project is licensed under the Apache License 2.0 β€” see the LICENSE file for details.

About

This is the official repository of Deakin University's student-built lunar rover for the Australian Rover Challenge 2026.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors