Skip to content

Commit

Permalink
Merge branch 'autowarefoundation:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
horverno authored Nov 21, 2024
2 parents 42dc9d1 + bed42ca commit fb392a9
Show file tree
Hide file tree
Showing 33 changed files with 586 additions and 1,175 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ Autoware has the following two types of parameter files for ROS packages:

The schema file path is `INSERT_PATH_TO_PACKAGE/schema/` and the schema file name is `INSERT_NODE_NAME.schema.json`. To adapt the template to the ROS node, replace each `INSERT_...` and add all parameters `1..N`.

See example: _Lidar Apollo Segmentation TVM Nodes_ [schema](https://github.com/autowarefoundation/autoware.universe/blob/main/perception/lidar_apollo_segmentation_tvm_nodes/schema/lidar_apollo_segmentation_tvm_nodes.schema.json)
See example: _Image Projection Based Fusion - Pointpainting_ [schema](https://github.com/autowarefoundation/autoware.universe/blob/main/universe/perception/autoware_image_projection_based_fusion/schema/pointpainting.schema.json)

### Attributes

Expand Down
24 changes: 12 additions & 12 deletions docs/contributing/testing-guidelines/integration-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,16 +70,16 @@ The simplest scenario is a single node.
In this case, the integration test is commonly referred to as a component test.

To add a component test to an existing node,
you can follow the example of the `lanelet2_map_loader` in the [`map_loader` package](https://github.com/autowarefoundation/autoware.universe/tree/main/map/map_loader)
you can follow the example of the `lanelet2_map_loader` in the [`autoware_map_loader` package](https://github.com/autowarefoundation/autoware.universe/tree/main/map/autoware_map_loader)
(added in [this PR](https://github.com/autowarefoundation/autoware.universe/pull/1056)).

In [`package.xml`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/map_loader/package.xml), add:
In [`package.xml`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/autoware_map_loader/package.xml), add:

```xml
<test_depend>ros_testing</test_depend>
```

In [`CMakeLists.txt`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/map_loader/CMakeLists.txt),
In [`CMakeLists.txt`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/autoware_map_loader/CMakeLists.txt),
add or modify the `BUILD_TESTING` section:

```cmake
Expand All @@ -106,7 +106,7 @@ To create a test,
either read the [launch_testing quick-start example](https://github.com/ros2/launch/tree/master/launch_testing#quick-start-example),
or follow the steps below.

Taking [`test/lanelet2_map_loader_launch.test.py`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/map_loader/test/lanelet2_map_loader_launch.test.py) as an example,
Taking [`test/lanelet2_map_loader_launch.test.py`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/autoware_map_loader/test/lanelet2_map_loader_launch.test.py) as an example,
first dependencies are imported:

```python
Expand All @@ -122,20 +122,20 @@ import pytest
```

Then a launch description is created to launch the node under test.
Note that the [`test_map.osm`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/map_loader/test/data/test_map.osm) file path is found and passed to the node,
Note that the [`test_map.osm`](https://github.com/autowarefoundation/autoware.universe/blob/main/map/autoware_map_loader/test/data/test_map.osm) file path is found and passed to the node,
something that cannot be done with the [smoke testing API](#smoke-tests):

```python
@pytest.mark.launch_test
def generate_test_description():

lanelet2_map_path = os.path.join(
get_package_share_directory("map_loader"), "test/data/test_map.osm"
get_package_share_directory("autoware_map_loader"), "test/data/test_map.osm"
)

lanelet2_map_loader = Node(
package="map_loader",
executable="lanelet2_map_loader",
package="autoware_map_loader",
executable="autoware_lanelet2_map_loader",
parameters=[{"lanelet2_map_path": lanelet2_map_path}],
)

Expand Down Expand Up @@ -177,28 +177,28 @@ class TestProcessOutput(unittest.TestCase):
Continuing the example from above, first build your package:

```console
colcon build --packages-up-to map_loader
colcon build --packages-up-to autoware_map_loader
source install/setup.bash
```

Then either execute the component test manually:

```console
ros2 test src/universe/autoware.universe/map/map_loader/test/lanelet2_map_loader_launch.test.py
ros2 test src/universe/autoware.universe/map/autoware_map_loader/test/lanelet2_map_loader_launch.test.py
```

Or as part of testing the entire package:

```console
colcon test --packages-select map_loader
colcon test --packages-select autoware_map_loader
```

Verify that the test is executed; e.g.

```console
$ colcon test-result --all --verbose
...
build/map_loader/test_results/map_loader/test_lanelet2_map_loader_launch.test.py.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/autoware_map_loader/test_results/autoware_map_loader/test_lanelet2_map_loader_launch.test.py.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
```

### Next steps
Expand Down
2 changes: 1 addition & 1 deletion docs/design/autoware-architecture/map/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The point cloud map must be supplied as a file with the following requirements:
- Its resolution should be at least 0.2 m to yield reliable localization results.
- It can be in either local or global coordinates, but must be in global coordinates (georeferenced) to use GNSS data for localization.

For more details on divided map format, please refer to [the readme of `map_loader` in Autoware Universe](https://github.com/autowarefoundation/autoware.universe/blob/main/map/map_loader/README.md).
For more details on divided map format, please refer to [the readme of `map_loader` in Autoware Universe](https://github.com/autowarefoundation/autoware.universe/blob/main/map/autoware_map_loader/README.md).

!!! note

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,28 @@ This diagram describes the pipeline for radar faraway dynamic object detection.

### Crossing filter

- [radar_crossing_objects_noise_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_crossing_objects_noise_filter)
- [radar_crossing_objects_noise_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_radar_crossing_objects_noise_filter)

This package can filter the noise objects crossing to the ego vehicle, which are most likely ghost objects.

### Velocity filter

- [object_velocity_splitter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/object_velocity_splitter)
- [object_velocity_splitter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_object_velocity_splitter)

Static objects include many noise like the objects reflected from ground.
In many cases for radars, dynamic objects can be detected stably.
To filter out static objects, `object_velocity_splitter` can be used.

### Range filter

- [object_range_splitter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/object_range_splitter)
- [object_range_splitter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_object_range_splitter)

For some radars, ghost objects sometimes occur for near objects.
To filter these objects, `object_range_splitter` can be used.

### Vector map filter

- [object-lanelet-filter](https://github.com/autowarefoundation/autoware.universe/blob/main/perception/detected_object_validation/object-lanelet-filter.md)
- [object-lanelet-filter](https://github.com/autowarefoundation/autoware.universe/blob/main/perception/autoware_detected_object_validation/object-lanelet-filter.md)

In most cases, vehicles drive in drivable are.
To filter objects that are out of drivable area, `object-lanelet-filter` can be used.
Expand All @@ -41,12 +41,12 @@ Note that if you use `object-lanelet-filter` for radar faraway detection, you ne

### Radar object clustering

- [radar_object_clustering](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_object_clustering)
- [radar_object_clustering](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_radar_object_clustering)

This package can combine multiple radar detections from one object into one and adjust class and size.
It can suppress splitting objects in tracking module.

![radar_object_clustering](https://raw.githubusercontent.com/autowarefoundation/autoware.universe/main/perception/radar_object_clustering/docs/radar_clustering.drawio.svg)
![radar_object_clustering](https://raw.githubusercontent.com/autowarefoundation/autoware.universe/main/perception/autoware_radar_object_clustering/docs/radar_clustering.drawio.svg)

## Note

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ In detail, please see [this document](faraway-object-detection.md)

### Radar fusion to LiDAR-based 3D object detection

- [radar_fusion_to_detected_object](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_fusion_to_detected_object)
- [radar_fusion_to_detected_object](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_radar_fusion_to_detected_object)

This package contains a sensor fusion module for radar-detected objects and 3D detected objects. The fusion node can:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,20 @@ Radar can detect x-axis velocity as doppler velocity, but cannot detect y-axis v

### Message converter

- [radar_tracks_msgs_converter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_tracks_msgs_converter)
- [radar_tracks_msgs_converter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_radar_tracks_msgs_converter)

This package converts from `radar_msgs/msg/RadarTracks` into `autoware_auto_perception_msgs/msg/DetectedObject` with ego vehicle motion compensation and coordinate transform.

### Object merger

- [object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/object_merger)
- [object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_object_merger)

This package can merge 2 topics of `autoware_auto_perception_msgs/msg/DetectedObject`.

- [simple_object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/simple_object_merger)
- [simple_object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_simple_object_merger)

This package can merge simply multiple topics of `autoware_auto_perception_msgs/msg/DetectedObject`.
Different from [object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/object_merger), this package doesn't use association algorithm and can merge with low calculation cost.
Different from [object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_object_merger), this package doesn't use association algorithm and can merge with low calculation cost.

- [topic_tools](https://github.com/ros-tooling/topic_tools)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ For convenient use of radar pointcloud within existing LiDAR packages, we sugges
For considered use cases,

- Use [pointcloud_preprocessor](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/pointcloud_preprocessor) for radar scan.
- Apply obstacle segmentation like [ground segmentation](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/ground_segmentation) to radar points for LiDAR-less (camera + radar) systems.
- Apply obstacle segmentation like [ground segmentation](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_ground_segmentation) to radar points for LiDAR-less (camera + radar) systems.

## Appendix

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ uint16 BICYCLE = 32006;
uint16 PEDESTRIAN = 32007;
```

For detail implementation, please see [radar_tracks_msgs_converter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_tracks_msgs_converter).
For detail implementation, please see [radar_tracks_msgs_converter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_radar_tracks_msgs_converter).

## Note

Expand Down
6 changes: 3 additions & 3 deletions docs/design/autoware-interfaces/components/control.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ TODO This represents the reported physical efforts exerted by the vehicle actuat

A motion signal to drive the vehicle, achieved by the low-level controller in the vehicle layer. Used by the Vehicle Interface.

- [autoware_auto_control_msgs/AckermannControlCommand](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/AckermannControlCommand.idl)
- [autoware_control_msgs/Control](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_control_msgs/msg/Control.msg)
- builtin_interfaces::msg::Time stamp
- [autoware_auto_control_msgs/AckermannLateralCommand](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/AckermannLateralCommand.idl) lateral
- [autoware_control_msgs/Lateral](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_control_msgs/msg/Lateral.msg) lateral
- builtin_interfaces::msg::Time stamp
- float steering_tire_angle
- float steering_tire_rotation_rate
- [autoware_auto_control_msgs/LongitudinalCommand](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/LongitudinalCommand.idl) longitudinal
- [autoware_control_msgs/Longitudinal](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_control_msgs/msg/Lateral.msg) longitudinal
- builtin_interfaces::msg::Time stamp
- builtin_interfaces::msg::Duration duration
- builtin_interfaces::msg::Duration time_step
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,482 changes: 426 additions & 1,056 deletions ...design/autoware-interfaces/components/images/Perception-Architecture.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/design/autoware-interfaces/components/localization.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,13 @@ Current orientation, angular velocity and linear acceleration of ego, calculated

Current velocity of the ego vehicle, published by the vehicle interface.

- autoware_auto_vehicle_msgs/msg/VelocityReport
- autoware_vehicle_msgs/msg/VelocityReport
- std_msgs/msg/Header header;
- float longitudinal_velocity;
- float lateral_velocity;
- float heading_rate;

Before the velocity input localization interface, module `vehicle_velocity_converter` converts message type `autoware_auto_vehicle_msgs/msg/VelocityReport` to `geometry_msgs/msg/TwistWithCovarianceStamped`.
Before the velocity input localization interface, module `vehicle_velocity_converter` converts message type `autoware_vehicle_msgs/msg/VelocityReport` to `geometry_msgs/msg/TwistWithCovarianceStamped`.

## Outputs

Expand Down
6 changes: 3 additions & 3 deletions docs/design/autoware-interfaces/components/map.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ It loads point cloud files and publishes the maps to the other Autoware nodes in

### Lanelet2 map

It loads a Lanelet2 file and publishes the map data as `autoware_auto_mapping_msgs/msg/HADMapBin` message. The lan/lon coordinates are projected onto the MGRS coordinates.
It loads a Lanelet2 file and publishes the map data as `autoware_map_msgs/msg/LaneletMapBin` message. The lan/lon coordinates are projected onto the MGRS coordinates.

- autoware_auto_mapping_msgs/msg/HADMapBin
- autoware_map_msgs/msg/LaneletMapBin
- std_msgs/Header header
- string version_map_format
- string version_map
Expand All @@ -37,6 +37,6 @@ It loads a Lanelet2 file and publishes the map data as `autoware_auto_mapping_ms

### Lanelet2 map visualization

Visualize `autoware_auto_mapping_msgs/HADMapBin` messages in `Rviz`.
Visualize `autoware_map_msgs/msg/LaneletMapBin` messages in `Rviz`.

- visualization_msgs/msg/MarkerArray
22 changes: 11 additions & 11 deletions docs/design/autoware-interfaces/components/perception-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ graph TD
<font size=1>sensor_msgs/PointCloud2</font size>"):::cls_sen
msg_lanenet("<font size=2><b>Lanelet2 Map</b></font size>
<font size=1>autoware_auto_mapping_msgs/HADMapBin</font size>"):::cls_loc
<font size=1>autoware_map_msgs/LaneletMapBin</font size>"):::cls_loc
msg_vks("<font size=2><b>Vehicle Kinematic State</b></font size>
<font size=1>nav_msgs/Odometry</font size>"):::cls_loc
msg_obj("<font size=2><b>3D Object Predictions </b></font size>
<font size=1>autoware_auto_perception_msgs/PredictedObjects</font size>"):::cls_per
<font size=1>autoware_perception_msgs/PredictedObjects</font size>"):::cls_per
msg_tl("<font size=2><b>Traffic Light Response </b></font size>
<font size=1>autoware_perception_msgs/TrafficSignalArray</font size>"):::cls_per
Expand Down Expand Up @@ -72,23 +72,23 @@ map of the environment. See [outputs of Map](https://autowarefoundation.github.i

3D Objects detected, tracked and predicted by sensor fusing.

- [autoware_auto_perception_msgs/msg/PredictedObjects](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/PredictedObjects.idl)
- [autoware_perception_msgs/msg/PredictedObjects](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/PredictedObjects.msg)
- [std_msgs/Header](https://docs.ros.org/en/noetic/api/std_msgs/html/msg/Header.html) header
- sequence<[autoware_auto_perception_msgs::msg::PredictedObject](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/PredictedObject.idl)> objects
- sequence<[autoware_perception_msgs::msg::PredictedObject](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/PredictedObject.msg)> objects
- unique_identifier_msgs::msg::UUID uuid
- float existence_probability
- sequence<[autoware_auto_perception_msgs::msg::ObjectClassification](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/ObjectClassification.idl)> classification
- sequence<[autoware_perception_msgs::msg::ObjectClassification](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/ObjectClassification.msg)> classification
- uint8 classification
- float probability
- [autoware_auto_perception_msgs::msg::PredictedObjectKinematics](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/PredictedObjectKinematics.idl) kinematics
- [autoware_perception_msgs::msg::PredictedObjectKinematics](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/PredictedObjectKinematics.msg) kinematics
- [geometry_msgs::msg::PoseWithCovariance](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/PoseWithCovariance.html) initial_pose
- [geometry_msgs::msg::TwistWithCovariance](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/TwistWithCovariance.html)
- [geometry_msgs::msg::AccelWithCovariance](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/AccelWithCovariance.html) initial_acceleration
- sequence<[autoware_auto_perception_msgs::msg::PredictedPath](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/PredictedPath.idl), 10> predicted_paths
- sequence<[geometry_msgs::msg::Pose](https://docs.ros.org/en/lunar/api/geometry_msgs/html/msg/Pose.html), 100> path
- builtin_interfaces::msg::Duration time_step
- float confidence
- sequence<[autoware_auto_perception_msgs::msg::Shape](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/Shape.idl), 5> shape
- sequence<[autoware_perception_msgs::msg::PredictedPath](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/PredictedPath.msg), 10> predicted_paths
- sequence<[geometry_msgs::msg::Pose](https://docs.ros.org/en/lunar/api/geometry_msgs/html/msg/Pose.html), 100> path
- builtin_interfaces::msg::Duration time_step
- float confidence
- sequence<[autoware_perception_msgs::msg::Shape](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/Shape.msg), 5> shape
- [geometry_msgs::msg::Polygon](https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/Polygon.html) polygon
- float height

Expand Down
Loading

0 comments on commit fb392a9

Please sign in to comment.