Skip to the content
2 layersRover, the printed circuit board in 3D

This is the main repository for the Autonomous Forest Navigation Rover NANA

Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
154
Pads
449
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 7 (file 20221018)
Created
24 Oct 2024
Updated
5 Mar 2026

Overview

Rover is an open-source printed circuit board by Alp-1, from the Alp-1/NANA-Forest-Rover repository on GitHub. It is a 2-layer board with 32 parts on 154 nets.

It is built around the 1N4733A and BC547. Its parts include 17 connectors, 7 ICs, 4 diodes, 2 capacitors and 1 resistor. It belongs with the robots and motor control boards and the ESP32 and RP2040 boards of this library.

Main components

2

README

README.md

banner-nana

This is the main repository for NANA (Near-ground Autonomous Navigator for Arboreous Terrain), a low-cost autonomous forest navigation rover developed as a Group Design Project at the University of Southampton, commissioned by Professor Jadu Dash's remote sensing group. The core challenge is autonomous point-to-point navigation from a 15 cm viewpoint under forest canopy, with degraded GPS, limited look-ahead, and compliant vegetation indistinguishable from solid obstacles using geometry alone. Navigation combines geometric terrain analysis (RANSAC-based slope estimation) with semantic image segmentation (random forest classifier over four terrain classes) on depth and RGB frames from an Intel RealSense D455. The wiki contains further documentation on the rover's operation and configuration.

Note: Contributions to hardware, sensor integration, algorithm design and field work are not fully reflected in the commit history.

Note 2: Some files are not publicly available due to university policy. Some links may also be broken as a result of the migration from the University of Southampton's GitLab instance.

Research Poster

Poster

The Directory Layout

text
.
├── .vscode                 # VS Code settings
├── CAD Models              # CAD Models used in the project with attributions. 
├── ESP32                   # ESP32 code for ESP32-C3 dronebridge.
├── GPS                     # Script to start NTRIP caster.
├── low_level_control       # Low level control
├── lua_scripts             # Lua scripts uploaded in flight controller
├── navigation              # Autonomous navigation
├── pyrealsense             # Intel Realsense library required on Raspberry Pi
├── schematic               # Schematic of the low level controller
├── .gitignore
├── pyproject.toml          # Python dependencies
└── README.md

Installation

To run some code that are not hardware dependent on your local PC, you can run the following commands in Python (Version used: 3.10.5 in PC and Raspberry Pi):

(./ is the repo root directory)

sh
$ pip install -e .

Rover

Low Level Control

There are two components in the low level control i.e. the motor controller and the central hub. They are both implemented on the Raspberry Pi Pico using micropython. See the README.md in the low level control folder for more information.

Autonomous navigation

The files in the pyrealsense folder may have to be in the same directory as the navigation scripts, depending on your installation. Another option is to include the right package from local directory i.e.

python
from pyrealsense import pyrealsense2 as rs

To run the autonomous navigation script, use the following command in the navigation folder:

sh
$ python navigation_final.py

Key Results

The platform was evaluated across four progressively harder terrain types, from uniform asphalt through open grassland to forest floor with sparse and dense vegetation, with two runs per environment and eight quantitative metrics extracted from flight data logs via MATLAB (trajectory deviation, traversal time, energy consumption, bumpiness, GPS signal recovery, intervention count, and idle time).

NANA completed autonomous missions in all four environments. On uniform and grassy terrain the rover achieved 0 to 2 interventions per run with path deviations of 12-87%. In forest terrain with dense vegetation, the system remained operational but required more frequent intervention (6 per run) and showed significantly higher path deviation (293-295%), reflecting the challenge of near-ground navigation through compliant obstacles. The full system was built for approximately £2,370, placing it among the lowest-cost 20% of autonomous forest navigation platforms surveyed in Niu et al. (2023). The platform is currently in use by the Geography faculty at the University of Southampton for field data collection.


Parts

32
QtyValueFootprintReferences
4ACS711xEXLT-31ABSensor_Current:Allegro_QFN-12-10-1EP_3x3mm_P0.5mmU4, U5, U6, U7
3PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU1, U2, U3
21N4733ADiode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1, D3
21N5820Diode_THT:D_DO-201AD_P15.24mm_HorizontalD2, D4
23.3nCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1, C2
2Conn_01x03_SocketConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ9, J15
2Conn_02x05_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ7, J13
2Left_Current_SenseConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ11, J17
2Left_EncoderConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6, J12
2Right_Current_SenseConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ10, J16
2Right_EncoderConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ8, J14
1100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR1
1BC547Package_TO_SOT_THT:TO-92_InlineQ1
1Conn_01x04_SocketConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ18
1Flight_Controller_ConnConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ3
1Front_Wheel_ConnConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ1
1Rear_Wheel_ConnConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ2
1Receiver_ConnConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ5

Similar boards

  • 2 layers148.8 × 132.2 mmUsbflashprog, the printed circuit board in 3D

    Usbflashprog

    robsonsmartins/usbflashprog

    A memory device programmer (Flash/EPROM/E2PROM) board and software, connected to PC by USB port.

    125 parts36
  • 2 layers96.8 × 97 mmPsoc5power, the printed circuit board in 3D

    Psoc5power

    profdc9/DRSSTC-PCB-Pack

    A pack of PCBs for a dual resonant solid state tesla coil setup. Pretty much everything you need.

    133 parts59
  • 2 layers100 × 100 mmController, the printed circuit board in 3D

    Controller

    profdc9/ModularTuner

    A Modular Antenna Tuner for a Phased Array Antenna System

    180 parts59
  • 2 layers91 × 186.5 mmDendy, the printed circuit board in 3D

    Dendy

    UzixLS/dendy

    Yet another Dendy (Famicom) clone - 8-bit home video game console

    141 parts19
  • 2 layers33.9 × 90 mmBiasPro InputProtection v3, the printed circuit board in 3D

    BiasPro InputProtection v3

    ToneAlchemy/BiasPro

    A professional-grade, dual-probe Arduino Bias Meter for guitar tube amplifiers. Open source hardware & firmware

    18 parts16MIT
  • 2 layers100 × 100 mmLinearPS, the printed circuit board in 3D

    LinearPS

    profdc9/LinearPS

    Linear constant constant/current constant voltage power supply PCB

    102 parts14
  • 2 layers141.9 × 100 mmTeensy MainPCB, the printed circuit board in 3D

    Teensy MainPCB

    Starsurfer78/TeensyMower-PCBs

    PCB's Folder for Teensy 4.1 based Robot Lawn Mower

    160 parts9GPL-3.0
  • 2 layers59.7 × 45.1 mmEGA2RGBC, the printed circuit board in 3D

    EGA2RGBC

    hkzlab/EGA-2-RGBS

    EPROM based EGA/CGA to analog RGBS converter

    27 parts7CC-BY-SA-4.0

Questions

What parts does the Rover use?

32 parts, built around the 1N4733A and BC547. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Rover KiCad files?

From the Alp-1/NANA-Forest-Rover repository on GitHub, at the commit this page was made from: the board is schematic/rover/rover.kicad_pcb and its schematic schematic/rover/central_hub.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Rover design in my own project?

Its repository states no licence, so its author keeps all rights: ask Alp-1 before reusing the design.