From 51ea8008720e8bff517299e66458ca2c7d99e659 Mon Sep 17 00:00:00 2001 From: Steven Gong Date: Thu, 7 Dec 2023 13:17:29 -0800 Subject: [PATCH] Update README --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a518b3a..9446491 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,21 @@ # f1tenth_ws -This a repository that contains ready-to-run autonomous racing packages for the [F1TENTH](https://f1tenth.org/) on ROS2 Foxy. It can be directly be deployed on the physical car. We've also included launch and config files for the [simulation environment](https://github.com/f1tenth/f1tenth_gym_ros), which uses slightly different topics for odometry. +This a repository that contains ready-to-run autonomous racing packages for the [F1TENTH](https://f1tenth.org/) on ROS2 (>= Foxy). It can be directly be deployed on the physical car. We've also included launch and config files for the [simulation environment](https://github.com/f1tenth/f1tenth_gym_ros), which uses slightly different topics for odometry. Below is a demo of the car running the code from this repository in the E7 building at the University of Waterloo at a top speed of ~25km/h, record on March 30th 2023. https://user-images.githubusercontent.com/43485866/231013515-00d6f492-87c0-4cf6-8257-f16cb2daadb6.mp4 - - ## Software Stack Overview **Our current software stack consists of** - [slam_toolbox](https://github.com/SteveMacenski/slam_toolbox) for **mapping** (reference the following [slides](https://docs.google.com/presentation/d/1DP2F9l-yHe9gQobk2CzYduk6KR5QtDCp7sLsxqR2fag/edit#slide=id.g115c48c178d_0_1) for running it on the physical car) -- [Particle Filter](./src/particle_filter/) for **localization** $\rightarrow$ `src/particle_filter` +- [Particle Filter](https://github.com/CL2-UWaterloo/particle_filter/) for **localization** $\rightarrow$ `src/particle_filter` - [Pure Pursuit](./src/pure_pursuit/) for **waypoint following** (planning + control) $\rightarrow$ `src/pure_pursuit` -- [RRT](./src/rrt) for a pure pursuit algorithm that includes **dynamic obstacle avoidance** (slightly slower) $\rightarrow$ `src/rrt` +- [Stanley Avoidance](./src/stanley_avoidance) for a waypoint following algorithm that includes **dynamic obstacle avoidance** (slightly slower), includes an improved controller (using Stanley method) $\rightarrow$ `src/stanley_avoidance`. Racing lines are generated through the [Cl2-UWaterloo/Raceline-Optimization](https://github.com/CL2-UWaterloo/Raceline-Optimization) repository. **Other algorithms that are not used, but are in this repository include** -- [Waypoint Generator](./src/waypoint_generator/) for manually generating waypoints in simulation $\rightarrow$ `src/waypoint_generator` (this has been replaced with a script that automatically generates optimal racelines given a map) +- [Waypoint Generator](./src/waypoint_generator/) for manually generating waypoints in simulation $\rightarrow$ `src/waypoint_generator` (this has been replaced with a script that automatically generates optimal racelines given a map generated by `slam_toolbox`) - A [PID controller](./src/wall_follow/) for staying at a constant distance to the wall $\rightarrow$ `src/wall_follow` - [Scan matching](./src/scan_matching) $\rightarrow$ `src/scan_matching` (To be completed) - [gap_follow](./src/gap_follow) $\rightarrow$ `src/gap_follow` (To be completed) @@ -32,7 +30,9 @@ These are the high level steps followed to get the F1TENTH driving in a new loca ## Getting Started -If you are a complete beginner and want to build an autonomous RC car, you might want to first follow the [F1TENTH Course](https://docs.google.com/spreadsheets/d/1kAd0bf6nc1OVi_4IP1P3-H6PPU97hLjqW8d0mTLCsxg/edit#gid=29915317), where they teach you ROS2 and the intuition behind the algorithms in this repository. The [official documentation](https://f1tenth.readthedocs.io/en/foxy_test/) contains information on setting up the hardware and software for the F1TENTH car. +If you are a complete beginner and want to build an autonomous RC car, you might want to first follow the [F1TENTH Course](https://docs.google.com/spreadsheets/d/1FV-rlEDtDSVjZdNAR5vM9HfcuraY6xOOSImGc2S5yww/edit#gid=0), where they teach you ROS2 and the intuition behind the algorithms in this repository. The [official documentation](https://f1tenth.readthedocs.io/en/foxy_test/) contains information on setting up the hardware and software for the F1TENTH car. + +You can also consult https://stevengong.co/notes/F1TENTH for quick links to different resources. Once you have access to an F1TENTH vehicle, you can consult our accompanying notes for the commands used to deploy the code in this repository: https://stevengong.co/notes/F1TENTH-Field-Usage. Note that they are mainly written for our own personal reference, so the paths will be different in your setup. **You'll notice that we clone the repository on our local computer, and upload the code over SSH to the car**. @@ -62,7 +62,7 @@ You will then be entered the docker container. The `f1tenth_ws` code is mounted Now, we need to load/change the default map in the simulation. In the container, modify the `map_path` parameter inside the `sim.yaml` file (located at `/sim_ws/install/f1tenth_gym_ros/share/f1tenth_gym_ros/config/sim.yaml`) to the path of the map you desire. -For example, +For example, ```yaml map_path: '/sim_ws/src/particle_filter/maps/e7_floor5' ```