diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..be0df5dd --- /dev/null +++ b/docs/README.md @@ -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. :) diff --git a/docs/hardware/jetson.md b/docs/hardware/jetson.md index fe847f6c..f4c96321 100644 --- a/docs/hardware/jetson.md +++ b/docs/hardware/jetson.md @@ -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 @@ -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). diff --git a/docs/nav.md b/docs/nav.md index ae3db653..1a68324c 100644 --- a/docs/nav.md +++ b/docs/nav.md @@ -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