Skip to content
Merged
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
23 changes: 23 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: docs

on:
pull_request:
push:
branches: [main, foxy, humble]

jobs:
build-docs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: pip install -r requirements.txt
- name: Build HTML (warnings as errors)
run: sphinx-build -W --keep-going -b html . _build/html
- name: Link check
# Non-blocking: external links break over time and shouldn't fail the build.
continue-on-error: true
run: sphinx-build -b linkcheck . _build/linkcheck
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
_build/
.venv/
__pycache__
.DS_Store
*.pyc
40 changes: 20 additions & 20 deletions autoware/intro.rst
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
.. _doc_autoware_intro:

Autoware Installation on the RoboRacer
==================
======================================

Jetson Xavier NX and RoboRacer Recordreplay Demo
------------------
------------------------------------------------
This tutorial provides step-by-step instructions for installing and setting up the Autoware development environment on the RoboRacer race car. The Autoware installation process in this branch is modified from the main one to adapt to the Jetson Xavier NX hardware and software systems. One major difference of this Autoware environment is that it runs on `ROS2 galactic` instead of `ROS2 humble` due to the fact that the NVIDIA Jetson currently only supports Ubuntu 20.04 or below. To natively build and run autoware without using docker, galactic is used to increase system compatibility. The original `Autoware installation documentation <https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/>`_ from main branch, and the `RoboRacer build documentation <https://f1tenth.readthedocs.io/en/foxy_test/index.html>`_ (running ROS2 foxy) are here for your reference.

This repo also includes a RoboRacer Recordreplay demo. This demo allows the user to first build a map, record a trajectory by manually driving the RoboRacer race car, and then perform trajectory following in both the `RoboRacer gym simulator` and in `real-world`(testing in progress) running the Autoware framework. Instructions for installing the RoboRacer gym simulator are provided. The approximate time investment is based on running Jetson Xavier NX on 20W 6core power mode.
This repo also includes a RoboRacer Recordreplay demo. This demo allows the user to first build a map, record a trajectory by manually driving the RoboRacer race car, and then perform trajectory following in both the `RoboRacer gym simulator` and in `real-world` (testing in progress) running the Autoware framework. Instructions for installing the RoboRacer gym simulator are provided. The approximate time investment is based on running Jetson Xavier NX on 20W 6core power mode.

Flash JetPack 5.1.1 (rev. 1) to Jetson Xavier NX
------------------
------------------------------------------------
(Approximate Time Investment: 1-1.5 hours)

There are multiple ways to install JetPack on a Jetson as described in `Jetpack 5.1.1 Documentation <https://developer.nvidia.com/embedded/jetpack-sdk-511>`_. The recommended ways to install are via the `NVIDIA SDK Manager Method` or the `SD Card Image Method`. This repo was tested on JetPack 5.1.1. Other JetPack versions may also work but have not yet been tested.

NVIDIA SDK Manager Method:
------------------
--------------------------
This method requires a Linux host computer running Ubuntu Linux x64 version `18.04` or `20.04` with `~40GB` of disk space

This method you will first install `NVIDIA SDK Manager` on your host machine, connect the host machine to the Jetson Xavier NX via a micro-USB cable, download all of the necessary JetPack components using the SDK Manager, and then flash the JetPack to the target Jetson Xavier NX. This method allows you to directly flash the JetPack to the `SD Card` or to the `NVME SSD drive` on the race car Jetson. You may need to create an NVIDIA account to download the NVIDIA SDK manager.
Expand All @@ -29,7 +29,7 @@ This method you will first install `NVIDIA SDK Manager` on your host machine, co


SD Card Image Method:
------------------
---------------------
This method requires a computer with Internet connection and the ability to read and write SD cards

1. Download `JetPack 5.1.1 <https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip/>`_
Expand All @@ -44,14 +44,14 @@ Once the JetPack is successfully flashed to the Jetson NX, boot the system and t


Install ROS2 galactic
------------------
---------------------
(Approximate Time Investment: 0.5 hour)

1. Follow the `ROS2 instructions <https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html>`_ to install ROS2 galactic


Set up Autoware development environment
------------------
---------------------------------------
(Approximate Time Investment: 0.5 hour)

1. Clone the `galactic` branch of `autowarefoundation/autoware` and move to the directory.
Expand All @@ -73,7 +73,7 @@ Set up Autoware development environment


Set up Autoware workspace
------------------
-------------------------
(Approximate Time Investment: 6-7 hours)

1. Create the `src` directory and clone repositories into it.
Expand Down Expand Up @@ -135,7 +135,7 @@ Ignore the `stderr` warnings during the build.


Install f1tenth_gym simulator dependencies
------------------
------------------------------------------
(Approximate Time Investment: 10 minutes)

Install `onnx` and roll back `setuptools` to version 65.5.0
Expand All @@ -152,11 +152,11 @@ The f1tenth_gym_ros simulator is used in this case, click `here <https://github.
pip3 install -e .

RoboRacer Recordreplay Demo
------------------
This demo allows the user to first build a map, record a trajectory by manually driving the RoboRacer race car, and then perform trajectory following in both the `RoboRacer gym simulator` and in `real-world`(testing in progress) running the Autoware framework.
---------------------------
This demo allows the user to first build a map, record a trajectory by manually driving the RoboRacer race car, and then perform trajectory following in both the `RoboRacer gym simulator` and in `real-world` (testing in progress) running the Autoware framework.

How to create a map
------------------
-------------------

This part assumes that you have a fully built and properly tuned RoboRacer car. For instructions on how to configure an RoboRacer car, see `f1tenth_system <https://github.com/autowarefoundation/autoware.universe/tree/f1tenth_galactic/f1tenth/f1tenth_system>`_.

Expand Down Expand Up @@ -194,17 +194,17 @@ Terminal 2
<iframe width="560" height="315" src="https://www.youtube.com/embed/bgrxjXlJbhI?si=SlJxkM58pcCGAmRl" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

Create a map without an RoboRacer race car
------------------
------------------------------------------

If you do not have an RoboRacer car, You can draw your own map and save as .png files. Make sure you set the corresponding .yaml file correctly. You can also use the map provided in the RoboRacer simulation folder under /map directory.

Change map in the RoboRacer simulator
------------------
-------------------------------------

Navigate to /home/autoware-f1/autoware/install/f1tenth_gym_ros/share/f1tenth_gym_ros/config. In `sim.yaml`, update the map file path.

How to record a trajectory (simulation)
------------------
---------------------------------------

1. Use the `demo_launch` launch file to launch `gym_bridge`, `recordreplay_planner`, and `trajectory_follower_f1tenth` nodes.

Expand Down Expand Up @@ -248,7 +248,7 @@ Terminal 3
<iframe width="560" height="315" src="https://www.youtube.com/embed/gJ8JWyzbRf8?si=rwwJ1aJ2frcrkCQF" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

How to replay a trajectory (simulation)
------------------
---------------------------------------

1. Use the `demo_launch` launch file to launch `gym_bridge`, `recordreplay_planner`, and `trajectory_follower_f1tenth` nodes if they are not currently running.

Expand All @@ -275,7 +275,7 @@ Terminal 2
<iframe width="560" height="315" src="https://www.youtube.com/embed/fxg8eQYiIrw?si=EKagh_k7uJ0uR3MM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

How to record a trajectory (real car)
------------------
-------------------------------------

1. Use the `realcar_launch` launch file to launch the `f1tenth_stack`, `recordreplay_planner`, and `trajectory_follower_f1tenth` nodes.

Expand Down Expand Up @@ -307,7 +307,7 @@ The default path for the recording is is set to `"/tmp/path"`. This recording wi
ros2 action send_goal /planning/recordtrajectory autoware_auto_planning_msgs/action/RecordTrajectory "{record_path: "/tmp/path"}" --feedback

How to replay a trajectory (real car)
------------------
-------------------------------------

1. Use the `realcar_launch` launch file to launch `f1tenth_stack`, `recordreplay_planner`, and `trajectory_follower_f1tenth` nodes.

Expand Down Expand Up @@ -345,7 +345,7 @@ Terminal 3


Troubleshooting/Tips
------------------
--------------------

1. If editing files doesn't seem to change anything, delete the respective package files in the install and build folders under autoware and rebuild the respective package using --packages-select again.

Expand Down
8 changes: 4 additions & 4 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
language = os.getenv('READTHEDOCS_LANGUAGE', 'en')
is_i18n = tags.has('i18n')

exclude_patterns = ['_build']
exclude_patterns = ['_build', '.venv']

# GDScript syntax highlighting
from gdscript import GDScriptLexer
Expand All @@ -61,9 +61,7 @@
# on_rtd is whether we are on readthedocs.org, this line of code grabbed from docs.readthedocs.org
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'

import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
if on_rtd:
using_rtd_theme = True

Expand All @@ -85,7 +83,9 @@
"display_github": not is_i18n, # Integrate GitHub
"github_user": "f1tenth", # Username
"github_repo": "f1tenth_doc", # Repo name
"github_version": "master", # Version
# Branch used for "Edit on GitHub" links. Prefer the branch RTD is building
# (so version branches like `foxy` link correctly), falling back to `main`.
"github_version": os.getenv("READTHEDOCS_GIT_IDENTIFIER", "main"), # Version
"conf_py_path": "/", # Path in the checkout to the docs root
}

Expand Down
2 changes: 2 additions & 0 deletions getting_started/appendix/index.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
:orphan:

Appendices
============

Expand Down
4 changes: 3 additions & 1 deletion getting_started/build_car/additional_components.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
:orphan:

.. _doc_additional_components:

5. Additional Hardware Components
============================
=================================

We have used and tested additional hardware for the RoboRacer vehicle. In this section we will provide a detailed overview of the components we tested and how to add them to the car.

Expand Down
8 changes: 4 additions & 4 deletions getting_started/build_car/all_together.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Now, we are going to connect these to the VESC. This part is a tad tricky.


3. Connecting the Battery with the VESC
----------------------------
---------------------------------------

Plug the `charge adapter <https://www.amazon.com/gp/product/B078P9V99B/ref=crt_ewc_title_huc_1?ie=UTF8&psc=1&smid=A87AJ0MK8WLZZ>`_ into the battery plug,

Expand Down Expand Up @@ -106,7 +106,7 @@ After connecting the batter the car should look like this.


4. Connecting the NVIDIA Jetson NX with the VESC
----------------------------
------------------------------------------------

The NVIDIA Jetson NX needs to be connected to the powerboard. Use the barrel jack to pig tail connector. The board uses a 2.5x5.5mm power jack (MFN: PJ-036BH-SMT-TR). It is an unfortunate fact of life that the connections for barrel jacks are not standarized. For the specific barrel jack on this board, the center pin is POWER. Do not plug in a power supply whose center pin is ground. Connect one of the ends of the cable with GND on the powerboard, the other one with the 12V connector. Afterwards you can plug in the barrel jack in the NVIDIA Jetson NX.

Expand Down Expand Up @@ -208,7 +208,7 @@ Your final vehicle should look like the following:
.. figure:: img/together/final.JPG
:align: center

Final product! It looks a bit messy but cable management is an art!
Final product! It looks a bit messy but cable management is an art!


Now we're ready to start driving!
Expand All @@ -218,7 +218,7 @@ Now we're ready to start driving!
:width: 300px

DEPRECATED: NVIDIA TX2 Setup
----------
----------------------------

Attach the two wires for the Jetson Wi-Fi antenna to the two gold-colored connectors near the fan connector on the heat sink (the order of the wires doesn’t matter). This can be a little tricky, so you might want to use a flathead screwdriver to ensure the connections are tight. ​ Don’t press too hard​ , however as you can easily damage the connectors if you use excessive force!

Expand Down
2 changes: 1 addition & 1 deletion getting_started/build_car/autonomy_elements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ We can now move on to mounting all of the autonomy elements onto the Upper Level


DEPRECATED: Preparing the NVIDIA Jetson TX2
---------------------------------
-------------------------------------------
In this section we are describing how to use the NVIDIA Jetson TX2 as a main ECU for the RoboRacer vehicle. This setup is deprecated and no longer recommended.

**1. Removing the NVIDIA Jetson TX2 Developer Board**
Expand Down
4 changes: 2 additions & 2 deletions getting_started/build_car/index.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _doc_build_car:

Building the RoboRacer Car
=====================
==========================
In this build guidelines we are focusing on the hardware setup of our RoboRacer vehicle based on the `Traxxas Slash 4x4 Premium <https://traxxas.com/products/models/electric/6804Rslash4x4platinum>`_ Chassis and the `NVIDIA Jetson Xavier NX <https://developer.nvidia.com/embedded/jetson-xavier-nx-devkit>`_. At the end of this build guidelines, you will have a fully functioning RoboRacer Autonomous Vehicle.

There are three main sections to the car.
Expand Down Expand Up @@ -35,7 +35,7 @@ There are three main sections to the car.


.. note::
If you have any build and/or setup questions, post to the `forum <https://robo-racer.slack.com/ssb/redirect>`_.
If you have any build and/or setup questions, post to the `RoboRacer Slack <https://join.slack.com/t/robo-racer/shared_invite/zt-42lsbf50y-_3YPNLl_d3s~wPylAOMg0g>`_.

.. toctree::
:maxdepth: 1
Expand Down
2 changes: 1 addition & 1 deletion getting_started/build_car/lower_level_chassis.rst
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ Place the battery into the compartment opposite of the motor.


DEPRECATED: Installing the Brushless Motor - Traxxas Ford Fiesta Chassis Only
-----------------------------------
-----------------------------------------------------------------------------
If you are not using the Traxxas Slash 4x4 chassis you will have to replace the premounted electrical engine with a new brushless motor listed in the Bill of Material. To install this brushless motor, first remove the blue Motor Plate and the spur gear from the Brushed Motor. Loosen the set screw with one of the hex keys provided in the Traxxas kit then pull the Spur Gear off. If it feels a bit stuck, carefully use a flathead screwdriver to push it off.

.. figure:: img/llchassis/llchassis06.JPG
Expand Down
2 changes: 1 addition & 1 deletion getting_started/build_car/upper_level_chassis.rst
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ The upper level chassis is complete and we're ready to assemble everything!
:width: 300px

DEPRECATED: Mounting the NVIDIA Jetson TX2
-----------------------------------------
------------------------------------------
In this section we are describing how to mount the NVIDIA Jetson TX2 as a main ECU for the RoboRacer vehicle. This setup is deprecated and no longer recommended.

1. Mounting the TX2 and Antenna
Expand Down
2 changes: 1 addition & 1 deletion getting_started/driving/drive_calib_odom.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@ Changing the software speed limit
If you wish to change the top speed of the car and has already followed the instructions to change the hardware limit in :ref:`the vesc firmware section <doc_firmware_vesc>`. All you'll need to do is also change the ``speed_min`` and ``speed_max`` values in ``vesc.yaml``. Note that the corresponding max speed in meters/second will be the max erpm value divided by the erpm gain. (e.g. ``speed_max/speed_to_erpm_gain``)

.. tip::
If you have any build and/or setup questions, post to the `forum <https://robo-racer.slack.com/ssb/redirect>`_.
If you have any build and/or setup questions, post to the `RoboRacer Slack <https://join.slack.com/t/robo-racer/shared_invite/zt-42lsbf50y-_3YPNLl_d3s~wPylAOMg0g>`_.
11 changes: 10 additions & 1 deletion getting_started/driving/drive_manual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,18 @@ We want to minimize the number of accidents so before we begin, let's first insp
#. Plug the USB dongle receiver of the **Logitech Joypad** into the **USB hub**.
#. Make sure you have the VESC connected.
#. Ensure that both your car and laptop are connected to a wireless access point if you need the car connected to the Internet while you drive it. Otherwise, go back and go through :ref:`Configure Jetson and Peripherals <doc_software_setup>`.
#. Make sure you’ve cloned the ``f110_system`` repository and set up your docker container as explained in the :ref:`previous section <doc_drive_workspace>`.
#. Make sure you’ve cloned the ``f1tenth_system`` repository and set up your docker container as explained in the :ref:`previous section <doc_drive_workspace>`.
#. This section uses the program ``tmux`` (available via apt-get) to let you run multiple terminals over one SSH connection, and multiple terminals inside the container. You can also use the remote desktop if you prefer a GUI.

Finding the Jetson IP Address
-------------------------------
Before you can SSH into the car, you need the Jetson's IP address. Your laptop and the Jetson must be on the **same network**.

* **From the Jetson** (via a monitor or Remote Desktop), run ``hostname -I`` — the first address it prints is the Jetson's IP.
* **From your laptop**, run ``arp -a`` and look for an unfamiliar IP address that appears after powering on the car.

Then connect with ``ssh <username>@<jetson_ip>`` (for example, ``ssh tristan@172.16.61.134``).

2. Driving the Car
----------------------
#. Open a terminal on the **Pit** laptop and SSH into the car from your computer.
Expand Down
4 changes: 2 additions & 2 deletions getting_started/driving/index.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _doc_drive:

Driving the RoboRacer Car
====================
=========================

.. note:: This section assumes that you have already completed :ref:`Building the Car <doc_build_car>`, :ref:`System Configuration <doc_software_setup>`, and :ref:`Installing Driver Stack <doc_build_car_firmware>`.

Expand Down Expand Up @@ -35,4 +35,4 @@ First, we need to set up the :ref:`driver stack <doc_drive_workspace>` on the ca
#. :ref:`Autonomous Control <doc_drive_autonomous>` goes over how to drive autonomously with the car.

.. tip::
If you have any build and/or setup questions, post to the `forum <https://robo-racer.slack.com/ssb/redirect>`_.
If you have any build and/or setup questions, post to the `RoboRacer Slack <https://join.slack.com/t/robo-racer/shared_invite/zt-42lsbf50y-_3YPNLl_d3s~wPylAOMg0g>`_.
Loading