Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Documentation

Thanks for taking a look at the SoRo repo! This folder contains the project's documentation, including tutorials, an FAQ, and design documents. If you're confused about something, it's probably documented here.

Here's a short list describing the info that each file provides:

- [`base_station.md`](base_station.md): about setting up the "base station", our giant antenna for remote operations.
- `design/`: the design + structure of the project
- [`design/tf2.md`](design/tf2.md): definitions for the coordinate space frames (transformations); how the ROS 2 `tf2` library is set up; a list of all frames + links
- [`faq.md`](faq.md): a giant list of bugs + footguns we've encountered. (very helpful for new members and the ROS 2 community as a whole)
- `hardware/`: about the Rover hardware
- [`hardware/jetson.md`](hardware/jetson.md): introduction to the NVIDIA Jetson Orin Nano computer we use on the Rover
- also includes setup advice, just in case the storage device breaks
- [`hardware/sensors.md`](hardware/sensors.md): the sensors/inputs used on the Rover (like cameras, GPS, and IMU)
- [`nav.md`](nav.md): description of our design for navigation, pre-Nav2.
- WARNING: These docs are no longer immediately relevent; our design needs changed with the switch to Nav2. Nonetheless, we keep these ideas present in case we refactor to have additional control.
- [`network.md`](network.md): static IP + MAC address assignments (i.e., how to connect to X or Y devices)
- [`offline.md`](offline.md): tutorial on how to update/modify the Rover code and its dependencies (even if we have NO way to get an internet connection on the Rover)

## Adding Documentation

Did you figure something out the hard way? Please write it down somewhere in this folder, then add any new file(s) to the above list!

This project is intended to help people learn about robotics and computer science, so lots of documentation will go a long way. :)
10 changes: 8 additions & 2 deletions docs/hardware/jetson.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# NVIDIA Jetson Orin Nano Setup

INTRO: TODO. (...the Jetson is a small portable computer for robotics, etc. etc.)
The [NVIDIA Jetson Orin Nano](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/), which we call "the Jetson", is a small portable computer for robotics. In essence, it's the brain of the Rover, running all of our Autonomous code, the Rover map, video streamer, and more!

The Jetson is just a computer running Linux, a free operating system. Specifically, it ships with an flavor called "Ubuntu".

It comes with a modified (and very slow) version of Ubuntu by default. That's called Jetpack, and we don't use it due to the high overhead incurred with their default setup.

We use a special image of Ubuntu Server 22.04 LTS ([download link](https://ubuntu.com/download/nvidia-jetson), [installation + setup documentation](https://pages.ubuntu.com/rs/066-EOV-335/images/Ubuntu_22.04_for_NVIDIA_Jetson_Installation_instructions.pdf)) to address this problem and have better control over the computer, though the setup process is more involved.
Instead, we use a special image of Ubuntu Server 22.04 LTS ([download link](https://ubuntu.com/download/nvidia-jetson), [installation + setup documentation](https://pages.ubuntu.com/rs/066-EOV-335/images/Ubuntu_22.04_for_NVIDIA_Jetson_Installation_instructions.pdf)) to address performance problems and have better control over the computer, though the setup process is more involved.

## First-Time Setup

Expand Down Expand Up @@ -43,3 +45,7 @@ When it's done restarting, SSH back in and check if `nvidia-smi` shows info on C
TODO: instructions on using SSH

TODO: instructions on setting up ZeroTier to communicate over the school network, and usage of the router for local networking

## Specifications

We have the `T234` model of Jetson. You can [find its specifications online](https://nvdam.widen.net/s/zkfqjmtds2/jetson-orin-datasheet-nano-developer-kit-3575392-r2).
6 changes: 4 additions & 2 deletions docs/nav.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Resources on Navigation
# ARCHIVED: Our previous design for the `navigator` package

How to implement the navigator according to our current design (2025-04-01 ymd).
This file contains our previous design for the `navigator::navigator_node`. It was created before we switched over to Nav2, a library that handles navigating for us.

However, we keep it in the repo for future reference. (i.e., we could switch the design again later)

## Wheel speeds between Rover and Target

Expand Down