Skip to content

Commit 444a28f

Browse files
authored
Merge pull request #151 from ucla-mobility/develop
Develop
2 parents 188c5c5 + c01ddb2 commit 444a28f

10 files changed

+83
-54
lines changed

README.md

+12-9
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ The key features of OpenCDA are:
2020

2121
Users could refer to [OpenCDA documentation](https://opencda-documentation.readthedocs.io/en/latest/) for more details.
2222

23+
## What's New
24+
### March 2022
25+
* HD Map manager is online! It currently supports generating rasterization map that includes road topology, traffic light info, and dynamic objects around each cav in real-time. This can be
26+
used for RL planning, HD Map learning, scene understanding, etc.
27+
28+
### Feb 2022
29+
* Our paper [*OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with Vehicle-to-Vehicle Communication*](https://arxiv.org/abs/2109.07644)
30+
has been accepted by ICRA 2022! It utilizes the offline Cooperative Perception(data dumping) function in OpenCDA. Check the benchmark codebase [OpenCOOD](https://github.com/DerrickXuNu/OpenCOOD) of OPV2V if interested.
31+
### Oct 2021
32+
* CARLA 0.9.12 now supported; Different weather conditions are supported.
33+
* Better traffic management supported: users now can set a customized range to background cars.
34+
2335

2436
## Major Components
2537
![teaser](docs/md_files/images/OpenCDA_new_diagrams.png)
@@ -60,15 +72,6 @@ We welcome your contributions.
6072
Please use [this template](.github/PR_TEMPLATE.md) for your pull requests.
6173

6274

63-
## What's New
64-
### Feb 2022
65-
* Our paper [*OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with Vehicle-to-Vehicle Communication*](https://arxiv.org/abs/2109.07644)
66-
has been accepted by ICRA 2022! It utilizes the offline Cooperative Perception(data dumping) function in OpenCDA. Check the [github page](https://github.com/DerrickXuNu/OpenCOOD) of OPV2V if interested.
67-
### Oct 2021
68-
* CARLA 0.9.12 now supported; Different weather conditions are supported.
69-
* Better traffic management supported: users now can set a customized range to background cars.
70-
71-
7275

7376
## Citation
7477
If you are using our OpenCDA framework or codes for your development, please cite the following paper:

docs/md_files/codebase_structure.md

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ OpenCDA
1212
│ │ └── actutation # implementation of control algorithms
1313
│ │ ├── application # implementation of cooperative driving applications
1414
│ │ ├── common # base class and communication class for cavs
15+
│ │ ├── map # HDMap manager
1516
│ │ ├── plan # planning algorithms
1617
│ │ └── sensing # perception adn localization algorithms.
1718
│ ├── customize # where the users put their customized algorithm to replace the default modules

docs/md_files/release_history.md

+15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
## Release History of OpenCDA
22
This page demonstrates all the changes since the origin release v0.1.0 with more detailed imags.
33

4+
---
5+
### v0.1.2
6+
##### Map manager
7+
OpenCDA now adds a new component `map_manager` for each cav. It will dynamically load road topology, traffic light information, and dynamic
8+
objects information around the ego vehicle and save them into rasterized map, which can be useful for RL planning, HDMap learning, scene understanding, etc.
9+
Key elements in the rasterization map:
10+
- Drivable space colored by black
11+
- Lanes
12+
- Red lane: the lanes that are controlled by red traffic light
13+
- Green lane: the lanes that are controlled by green traffic light
14+
- Yellow lane: the lanes that are not effected by any traffic light
15+
- Objects that are colored by white and represented as rectangle
16+
17+
![](images/map_manager.gif )
18+
419
---
520
### v0.1.1
621
#### Cooperative Perception

docs/md_files/yaml_define.md

+46-39
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ vehicle_base: &vehicle_base # define cav default parameters
2626
sensing: &base_sensing # define sensing parameters
2727
perception: &base_perception # define perception related settings
2828
localization: &base_localize # define localization related settings
29+
map_manager: &base_map_manager # define HDMap manager
2930
behavior: &base_behavior # define planning related parameters
3031
controller: &base_controller # define controller
3132
type: pid_controller # define the type of controller
@@ -104,45 +105,51 @@ the [CARLA Sync documentation](https://carla.readthedocs.io/en/latest/adv_synchr
104105
the CAV will load the ego position from server directly.
105106
* `gnss` : related to the parameters of the gnss sensor.
106107
* `debug_helper` : parameters related to localization debugging and real-time trajectory plotting.
107-
* `behavior` : Define behavior planning parameters
108-
* `max_speed` : int type, the maximum speed (km/h) that the CAV is allowed to reach.
109-
* `tailgate_speed` : int type, the target speed (km/h) for CAV when it tries to catch up with a platoon, it is usually larger
110-
than `max_speed`
111-
* `speed_lim_dist` : int type, during normal driving mode, `target_speed` = `max_speed` - `speed_lim_dist`
112-
* `speed_decrease` : int type, when the CAV is in car following mode and it gets too close to the
113-
front vehicle, `target_speed` = `front_vehicle_speed` - `speed_decrease`
114-
* `safety_time` : float type, ttc thresholding to identify whether the ego vehicle is too close to
115-
the front vehicle.
116-
* `emergency_param` : float type, `emergency_stop_distance` = `current_speed` * `emergency_param`
117-
* `ignore_traffic_light` : bool type, if set to true, the CAV will ignore the traffic light.
118-
* `overtake_allowed` : bool type, if set to false, overtaking is not allowed during driving.
119-
* `collision_time_ahead` : float type, collision detection range
120-
* `sample_resolution` : float type, the unit distance (m) between two adjacent waypoints
121-
* `local_planner` : Define trajectory planning parameters.
122-
* `buffer_size` : dequeue type, waypoint buffer size.
123-
* `trajectory_update_freq` : int type, the update frequency for trajectory, when the length of trajectory buffer
124-
is below the frequency number, the ego vehicle will re-generate the trajectory.
125-
* `waypoint_update_freq` : int type, the update frequency for waypoint buffer, when the length of the
126-
waypoint buffer is below the frequency, the waypoint buffer will load waypoints from `waypoint_queue`.
127-
* `min_dist` : float type, used to pop out the waypoints that are too close to the current location
128-
* `trajectory_dt` : float type, trajectory points sampling resolution.
129-
* `debug` : bool type, if true, waypoint will be visualized.
130-
* `debug_trajectory` : bool type, if true, trajectory will be visualized.
131-
* `controller` : Define controller parameters.
132-
* `type` : string type, the type of controller the ego vehicle uses.
133-
* `args` : the arguments related to the selected controller.
134-
135-
* `v2x` : Defome vehicle communication parameters.
136-
* `enabled` : bool type, indicate whether v2x is enabled.
137-
* `communication_range` : float type, the searching range of the CAV
138-
* `loc_noise` : float type, the deviation of the noise added to the received ego position
139-
during communication.
140-
* `yaw_noise` : float type, the deviation of the noise added to the received yaw angle
141-
during communication.
142-
* `speed_noise` : float type, the deviation of the noise added to the received ego speed
143-
during communication.
144-
* `lag` : int type, the lagging during the communication. E.g., 2 means the CAV
145-
receives the packages of other CAVs at most 2 time steps ago.
108+
* `map_manager` : Define HDMap manager parameters
109+
* `pixels_per_meter` : The rasterization map precision.
110+
* `raster_size` : The rasterization map's H and W in pixels.
111+
* `lane_sample_resolution` : Waypoint sampling resolution for lane drawing.
112+
* `visualize` : Whether to show the rasterization map during running in real-time.
113+
* `activate` : Whether activate the map_manager module.
114+
* `behavior` : Define behavior planning parameters
115+
* `max_speed` : int type, the maximum speed (km/h) that the CAV is allowed to reach.
116+
* `tailgate_speed` : int type, the target speed (km/h) for CAV when it tries to catch up with a platoon, it is usually larger
117+
than `max_speed`
118+
* `speed_lim_dist` : int type, during normal driving mode, `target_speed` = `max_speed` - `speed_lim_dist`
119+
* `speed_decrease` : int type, when the CAV is in car following mode and it gets too close to the
120+
front vehicle, `target_speed` = `front_vehicle_speed` - `speed_decrease`
121+
* `safety_time` : float type, ttc thresholding to identify whether the ego vehicle is too close to
122+
the front vehicle.
123+
* `emergency_param` : float type, `emergency_stop_distance` = `current_speed` * `emergency_param`
124+
* `ignore_traffic_light` : bool type, if set to true, the CAV will ignore the traffic light.
125+
* `overtake_allowed` : bool type, if set to false, overtaking is not allowed during driving.
126+
* `collision_time_ahead` : float type, collision detection range
127+
* `sample_resolution` : float type, the unit distance (m) between two adjacent waypoints
128+
* `local_planner` : Define trajectory planning parameters.
129+
* `buffer_size` : dequeue type, waypoint buffer size.
130+
* `trajectory_update_freq` : int type, the update frequency for trajectory, when the length of trajectory buffer
131+
is below the frequency number, the ego vehicle will re-generate the trajectory.
132+
* `waypoint_update_freq` : int type, the update frequency for waypoint buffer, when the length of the
133+
waypoint buffer is below the frequency, the waypoint buffer will load waypoints from `waypoint_queue`.
134+
* `min_dist` : float type, used to pop out the waypoints that are too close to the current location
135+
* `trajectory_dt` : float type, trajectory points sampling resolution.
136+
* `debug` : bool type, if true, waypoint will be visualized.
137+
* `debug_trajectory` : bool type, if true, trajectory will be visualized.
138+
* `controller` : Define controller parameters.
139+
* `type` : string type, the type of controller the ego vehicle uses.
140+
* `args` : the arguments related to the selected controller.
141+
142+
* `v2x` : Defome vehicle communication parameters.
143+
* `enabled` : bool type, indicate whether v2x is enabled.
144+
* `communication_range` : float type, the searching range of the CAV
145+
* `loc_noise` : float type, the deviation of the noise added to the received ego position
146+
during communication.
147+
* `yaw_noise` : float type, the deviation of the noise added to the received yaw angle
148+
during communication.
149+
* `speed_noise` : float type, the deviation of the noise added to the received ego speed
150+
during communication.
151+
* `lag` : int type, the lagging during the communication. E.g., 2 means the CAV
152+
receives the packages of other CAVs at most 2 time steps ago.
146153

147154
#### platoon_base
148155
`platoon_base` define the default platooning parameters.

docs/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ carla
33
matplotlib==3.4.2
44
networkx==2.5.1
55
numpy
6-
pillow==8.2.0
6+
pillow
77
pyparsing==2.4.7
88
six==1.16.0
99
open3d

environment.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies:
88
- matplotlib==3.4.2
99
- networkx==2.5.1
1010
- numpy
11-
- pillow==8.2.0
11+
- pillow
1212
- pyparsing==2.4.7
1313
- six==1.16.0
1414
- open3d
@@ -19,3 +19,4 @@ dependencies:
1919
- scipy==1.6.3
2020
- seaborn
2121
- lxml
22+
- shapely

opencda/scenario_testing/config_yaml/single_2lanefree_carla.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ vehicle_base: &vehicle_base
6060
raster_size: [224, 224]
6161
lane_sample_resolution: 0.1
6262
visualize: true
63+
activate: true
6364

6465
behavior: &base_behavior
6566
max_speed: 111 # maximum speed, km/h

opencda/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""Specifies the current version number of OpenCDA."""
22

3-
__version__ = "0.1.1"
3+
__version__ = "0.1.2"

requirements.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
matplotlib==3.4.2
22
networkx==2.5.1
33
numpy
4-
pillow==8.2.0
4+
pillow
55
pyparsing==2.4.7
66
six==1.16.0
77
open3d
@@ -11,4 +11,5 @@ pygame
1111
scikit-learn==0.24.2
1212
scipy==1.6.3
1313
seaborn
14-
lxml
14+
lxml
15+
shapely

requirements_ci.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
matplotlib==3.4.2
22
networkx==2.5.1
33
numpy
4-
pillow==8.2.0
4+
pillow
55
pyparsing==2.4.7
66
six==1.16.0
77
open3d

0 commit comments

Comments
 (0)