Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(how-to guides): add runninng Autoware without CUDA #128

Merged
Merged
Show file tree
Hide file tree
Changes from 2 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
1 change: 1 addition & 0 deletions docs/how-to-guides/.pages
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
nav:
- index.md
- running-autoware-without-cuda.md
- advanced-usage-of-colcon.md
- how-to-integrate-autoware-with-your-vehicle.md
1 change: 1 addition & 0 deletions docs/how-to-guides/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# How-to guides

- [Running Autoware without CUDA](running-autoware-without-cuda.md)
- [Advanced usage of colcon](advanced-usage-of-colcon.md)
- [Integrate Autoware with your vehicle](how-to-integrate-autoware-with-your-vehicle.md)

Expand Down
34 changes: 34 additions & 0 deletions docs/how-to-guides/running-autoware-without-cuda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Running Autoware without CUDA

Two following algorithms in Autoware Universe depend on a CUDA environment.

- 2D/3D object detection
- traffic light detection

However, it is still possible to run Autoware in the environment without CUDA.
The following subsections briefly explain how to run these algorithms in such an environment.

!!! warning

It is highly recommended to prepare a CUDA environment to achieve better performance.
This conversation was marked as resolved.
Show resolved Hide resolved

## Running 2D/3D object detection without CUDA

As for the object detection system in Autoware, the following three packages require the CUDA environment:
This conversation was marked as resolved.
Show resolved Hide resolved

- `lidar_centerpoint`
- `lidar_apollo_instance_segmentation`
- `tensorrt_yolo`

Instead of these modules, you can use the `euclidean_cluster` module, which is a 3D object detection algorithm that does not require a CUDA environment (refer to [the readme](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/euclidean_cluster) for detail).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reworded/rephrased. Is it correct to say that the two lidar* modules related to LiDAR-based detection whilst tensorrt_yolo is used for camera-based detection? If so, then is it also correct to say that euclidean_cluster can onyl be used instead of the lidar-related modules?

Suggested change
Instead of these modules, you can use the `euclidean_cluster` module, which is a 3D object detection algorithm that does not require a CUDA environment (refer to [the readme](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/euclidean_cluster) for detail).
Instead of these modules, you can use the `euclidean_cluster` module which contains a 3D object detection algorithm that does not require CUDA. For more details, refer to the [`euclidean_cluster` module's README file](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/euclidean_cluster).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the suggestion!
I have reflected the comments at here 2f9ea05

Is it correct to say that the two lidar* modules related to LiDAR-based detection whilst tensorrt_yolo is used for camera-based detection?

Yes, you are correct.

If so, then is it also correct to say that euclidean_cluster can onyl be used instead of the lidar-related modules?

The current possible ways to perform 3D object detection are the following five configurations:

  • lidar-apollo(-only)
  • lidar-centerpoint(-only)
  • lidar-apollo + tensorrt_yolo
  • lidar-centerpoint + tensorrt_yolo
  • euclidean_cluster(-only)

So, IMO the statement euclidean_cluster can only be used instead of the lidar-related modules is "partially" true?


## Running traffic light detection without CUDA

As for the traffic light recognition system in Autoware, there are two package that require the CUDA environment:
This conversation was marked as resolved.
Show resolved Hide resolved

- `traffic_light_ssd_fine_detector`
- `traffic_light_classifier`

To run traffic light detection without CUDA, set [`enable_fine_detection` in this file](https://github.com/autowarefoundation/autoware.universe/blob/9445f3a7acd645d12a64507c3d3bfa57e74a3634/launch/tier4_perception_launch/launch/traffic_light_recognition/traffic_light.launch.xml#L3) to `false` so that `traffic_light_ssd_fine_detector` be disabled and the traffic light detection solely be executed by `map_based_traffic_light_detector`.
This conversation was marked as resolved.
Show resolved Hide resolved

To run traffic light classification without CUDA, set [`use_gpu` in this file](https://github.com/autowarefoundation/autoware.universe/blob/9445f3a7acd645d12a64507c3d3bfa57e74a3634/perception/traffic_light_classifier/launch/traffic_light_classifier.launch.xml#L7) to `false` so that `traffic_light_classifier` use classification algorithm that does not use CUDA environment or GPU.
This conversation was marked as resolved.
Show resolved Hide resolved