From 2a2cc5f1beb6219ac7a14a60e1d2c5e728557f4a Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Mon, 7 Oct 2024 15:27:01 +0200 Subject: [PATCH] added unreal coord system, fixed v2x (#8251) --- Docs/img/unreal_lhcs.png | Bin 0 -> 38633 bytes Docs/python_api.md | 2 +- Docs/ref_sensors.md | 30 ++++++++++++++---------------- PythonAPI/docs/geom.yml | 2 +- 4 files changed, 16 insertions(+), 18 deletions(-) create mode 100644 Docs/img/unreal_lhcs.png diff --git a/Docs/img/unreal_lhcs.png b/Docs/img/unreal_lhcs.png new file mode 100644 index 0000000000000000000000000000000000000000..0a85ae82bcbe143d30c132b9e2fd75cdb03d85f2 GIT binary patch literal 38633 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 literal 0 HcmV?d00001 diff --git a/Docs/python_api.md b/Docs/python_api.md index a7ab163a2..5e33db757 100644 --- a/Docs/python_api.md +++ b/Docs/python_api.md @@ -1999,7 +1999,7 @@ Iterate over the [carla.RadarDetection](#carla.RadarDetection) retrieved as data ## carla.Rotation Class that represents a 3D rotation and therefore, an orientation in space. CARLA uses the Unreal Engine coordinates system. This is a Z-up left-handed system.
-
The constructor method follows a specific order of declaration: `(pitch, yaw, roll)`, which corresponds to `(Y-rotation,Z-rotation,X-rotation)`.

![UE4_Rotation](https://d26ilriwvtzlb.cloudfront.net/8/83/BRMC_9.jpg) *Unreal Engine's coordinates system*. +
The constructor method follows a specific order of declaration: `(pitch, yaw, roll)`, which corresponds to `(Y-rotation,Z-rotation,X-rotation)`.

![UE4_Rotation](/img/unreal_lhcs.png) *Unreal Engine's coordinates system*. ### Instance Variables - **pitch** (_float - degrees_) diff --git a/Docs/ref_sensors.md b/Docs/ref_sensors.md index d346f338b..d18cbbd73 100644 --- a/Docs/ref_sensors.md +++ b/Docs/ref_sensors.md @@ -940,21 +940,19 @@ While the visibility is simulated within CARLA, the scenario can be configured b * __Output:__ [carla.CAMData](python_api.md#carla.CAMData), triggered according to the ETSI CAM standard, unless configured otherwise Triggering conditions according to ETSI standard: -- Heading angle change > $4$° -- Position difference > $4$ m -- Speed change > $5$ m/s +- Heading angle change > 4° +- Position difference > 4 m +- Speed change > 5 m/s - Time elapsed > CAM Generation time (configurable) -- Low Frequency Container Time Elapsed $> 500$ ms +- Low Frequency Container Time Elapsed > 500 ms For the CAM V2X sensor, additional blueprint attributes apply: | Blueprint attribute | Type | Default | Description | |-------------------------|--------|-------------------------|------------------------------------| -| Message generation | -| gen\_cam\_min | float | $0.1$ | Minimum elapsed time between two successive CAMs in seconds (s) | -| gen\_cam\_max | float | $1.0$ | Maximum elapsed time between two successive CAMs in seconds (s) | +| gen\_cam\_min | float | 0.1 | Minimum elapsed time between two successive CAMs in seconds (s) | +| gen\_cam\_max | float | 1.0 | Maximum elapsed time between two successive CAMs in seconds (s) | | fixed\_rate | bool | false [true] | Generate a CAM in every CARLA tick (only for debug purposes, will result in slowdown) | -| Data generation | | `noise_vel_stddev_x` | float | 0\.0 | Standard deviation parameter in the noise model for velocity (X axis). | | `noise_accel_stddev_x` | float | 0\.0 | Standard deviation parameter in the noise model for acceleration (X axis). | | `noise_accel_stddev_y` | float | 0\.0 | Standard deviation parameter in the noise model for acceleration (Y axis). | @@ -993,14 +991,14 @@ Example: | Blueprint attribute | Type | Default | Description | |-------------------------|--------|-------------------------|------------------------------------| -| transmit\_power | float | $21.5$ | Sender transmission power in dBm | -| receiver\_sensitivity | float | $-99$ | Receiver sensitivity in dBm | -| frequency\_ghz | float | $5.9$ | Transmission frequency in GHz. 5.9 GHz is standard for several physical channels. | -| noise\_seed | int | $0$ | Random parameter for initialization of noise | -| filter\_distance | float | $500$ | Maximum transmission distance in meter, path loss calculations above are skipped for simulation speed | -| __Path loss model parameters__ | -| combined\_antenna\_gain | float | $10.0$ | Combined gain of sender and receiver antennas in dBi, parameter for radiation efficiency and directivity | -| d\_ref | float | $ 1.0 $ | reference distance for Log-distance path loss model in meter | +| transmit\_power | float | 21.5 | Sender transmission power in dBm | +| receiver\_sensitivity | float | -99 | Receiver sensitivity in dBm | +| frequency\_ghz | float | 5.9 | Transmission frequency in GHz. 5.9 GHz is standard for several physical channels. | +| noise\_seed | int | 0 | Random parameter for initialization of noise | +| filter\_distance | float | 500 | Maximum transmission distance in meter, path loss calculations above are skipped for simulation speed | +| __Path loss model parameters__ | | | | +| combined\_antenna\_gain | float | 10.0 | Combined gain of sender and receiver antennas in dBi, parameter for radiation efficiency and directivity | +| d\_ref | float | 1.0 | reference distance for Log-distance path loss model in meter | | path\_loss\_exponent | float | 2.7 | Loss parameter for non-line of sight due to building obstruction | | scenario | string | urban | Options: [urban, rural, highway], defines the fading noise parameters | | path\_loss\_model | string | geometric | general path loss model to be used. Options: [geometric, winner] | diff --git a/PythonAPI/docs/geom.yml b/PythonAPI/docs/geom.yml index eb71836e4..0d2e6e003 100644 --- a/PythonAPI/docs/geom.yml +++ b/PythonAPI/docs/geom.yml @@ -328,7 +328,7 @@ Class that represents a 3D rotation and therefore, an orientation in space. CARLA uses the Unreal Engine coordinates system. This is a Z-up left-handed system.

The constructor method follows a specific order of declaration: `(pitch, yaw, roll)`, which corresponds to `(Y-rotation,Z-rotation,X-rotation)`.
-
![UE4_Rotation](https://d26ilriwvtzlb.cloudfront.net/8/83/BRMC_9.jpg) +
![UE4_Rotation](/img/unreal_lhcs.png) *Unreal Engine's coordinates system* # - PROPERTIES ------------------------- instance_variables: