diff --git a/docs/Components/Environment/AWSIMEnvironment/directional_light.png b/docs/Components/Environment/AWSIMEnvironment/directional_light.png deleted file mode 100644 index 34e4eb3cb..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/directional_light.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/directional_light_prefab.png b/docs/Components/Environment/AWSIMEnvironment/directional_light_prefab.png deleted file mode 100644 index 0ebac301a..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/directional_light_prefab.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/environment.png b/docs/Components/Environment/AWSIMEnvironment/environment.png deleted file mode 100644 index 422a2e218..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/environment.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/environment_link.png b/docs/Components/Environment/AWSIMEnvironment/environment_link.png deleted file mode 100644 index 3f78f306c..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/environment_link.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/environment_link_2.png b/docs/Components/Environment/AWSIMEnvironment/environment_link_2.png deleted file mode 100644 index 934f4ffce..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/environment_link_2.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/environment_prefab.png b/docs/Components/Environment/AWSIMEnvironment/environment_prefab.png deleted file mode 100644 index b0aadfd66..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/environment_prefab.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/environment_script.png b/docs/Components/Environment/AWSIMEnvironment/environment_script.png deleted file mode 100644 index 21fe7de38..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/environment_script.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/index.md b/docs/Components/Environment/AWSIMEnvironment/index.md deleted file mode 100644 index b3914995d..000000000 --- a/docs/Components/Environment/AWSIMEnvironment/index.md +++ /dev/null @@ -1,272 +0,0 @@ -#AWSIM Environment - -## Introduction -`Environment` is an object that contains all the elements visible on the scene along with components that affect how they are rendered. -It contains several objects aggregating static environment objects in terms of their type. -Moreover, it contains elements responsible for controlling random traffic. - -![environment](environment.png) - -!!! tip "Own Environment prefab" - If you would like to develop your own prefab `Environment` for *AWSIM*, we encourage you to read this [tutorial](../../Environment/AddNewEnvironment/AddEnvironment/). - -!!! note "AutowareSimulation scene" - If you would like to see how `Environment` with random traffic works or run some tests, we encourage you to familiarize yourself with the `AutowareSimulation` scene described in this [section](../../../ProjectGuide/Scenes/#autowaresimulation). - -Prefab `Environment` is also used to create a point cloud (`*.pcd` file) needed to locate the `EgoVehicle` in the simulated *AWSIM* scene. -The point cloud is created using the [`RGL`](https://github.com/RobotecAI/RobotecGPULidar) plugin and then used in *Autoware*. -We encourage you to familiarize yourself with an example scene of creating a point cloud - described [here](../../../ProjectGuide/Scenes/#pointcloudmapping). - -!!! tip "Create PointCloud (*.pcd file)" - If you would like to learn how to create a point cloud in *AWSIM* using `Environment` prefab, we encourage you to read this [tutorial](../../Environment/CreatePCD/). - -### Architecture -The architecture of an `Environment` - with dependencies between components - is presented on the following diagram. - -![environment diagram](../../../Introduction/AWSIM/environment.png) - -### Prefabs - -Prefabs can be found under the following path: - -| Name | Description | Path | -| :---------------------------- | :------------------------------------------------------- | :--------------------------------------------------------------------- | -| *Nishishinjuku* | Only stationary visual elements, no traffic | `Assets/AWSIM/Prefabs/Environments/Nishishinjuku.prefab` | -| *Nishishinjuku RandomTraffic* | Stationary visual elements along with random traffic | `Assets/AWSIM/Prefabs/Environments/Nishishinjuku RandomTraffic.prefab` | -| *Nishishinjuku Traffic* | Stationary visual elements along with non-random traffic | `Assets/AWSIM/Prefabs/Environments/Nishishinjuku Traffic.prefab` | - -!!! note "Environment prefab" - Due to the similarity of the above prefabs, this section focuses on prefab `Nishishinjuku RandomTraffic`. - The exact differences between `Nishishinjuku RandomTraffic` and `Nishishinjuku Traffic` will be described in the future. - -!!! note "Environment name" - In order to standardize the documentation, the name `Environment` will be used in this section as the equivalent of the prefab named `Nishishinjuku RandomTraffic`. - -`Nishishinjuku RandomTraffic` prefab has the following content: - -![environment_link](environment_link.png) - -As you can see it contains: - -- `SJK*` objects - which are aggregators for visual models. -- `RandomTrafficSimulator`, `TrafficIntersections`, `TrafficLanes`, `StopLines` - which are responsible for random traffic of [`NPCVehicles`](../../Traffic/NPCs/Vehicle/). -- `NPCPedestrians` - which is an aggregator of [`NPCPedestrian`](../../Traffic/NPCs/Pedestrian/) prefabs added to the scene. -- `Volume`, `Directional Light` - which are components that affect the appearance of objects on the scene. - -All of these objects are described below in this section. - -### Visual elements -`Nishishinjuku RandomTraffic` prefab contains many visual elements which are described [here](#visual-elements-sjk). - -### Link in the default Scene -`Nishishinjuku RandomTraffic` prefab is added to the `Environment` object - between which there is rotation about the `Oy` axis by 90 degrees. -This rotation is added because of the differences in coordinate alignments between the `Nishishinjuku RandomTraffic` prefab objects (which have been modeled as `*.fbx` files) and the specifics of the *GridZone* definition (more on this is described [here](#components)). - -Object `Environment` is added to `AutowareSimulation` which is added directly to the main parent of the scene - there are no transformations between these objects. - -![environment_link_2](environment_link_2.png) - -### Components -![environment_prefab](environment_prefab.png) - -`Nishishinjuku RandomTraffic` (`Environment`) prefab contains only one component: - - - [*Environment* (script)](#environment-script) - which is important for communicating with *Autoware* and loading elements from *Lanelet2*. -Because it allows to define the location of the environment in relation to the world. - - -### Layers -In order to enable the movement of vehicles around the environment, additional layers have been added to the project: `Ground` and `Vehicle`. - -![layers](layers.png) - -All objects that are acting as a ground for `NPCVehicles` and `EgoVehicle` to move on have been added to `Ground` layer - they cannot pass through each other and should collide for the physics engine to calculate their interactions. - -![model_layer](model_layer.png) - -For this purpose, `NPCVehicles` and `EgoVehicle` have been added to the `Vehicle` layer. - -![vehicle_layer](vehicle_layer.png) - -In the project physics settings, it is ensured that collisions between objects in the `Vehicle` layer are disabled (this applies to `EgoVehicle` and `NPCVehicles` - they do not collide with each other): - -![layers_physis](layers_physis.png) - -## Traffic Components -Due to the specificity of the use of `RandomTrafficSimulator`, `TrafficIntersections`, `TrafficLanes`, `StopLines` objects, they have been described in a separate section [*Traffic Components*](../../Traffic/TrafficComponents/) - where all the elements necessary in simulated random traffic are presented. - -## Visual Elements (SJK) -The visuals elements have been loaded and organized using the `*.fbx` files which can be found under the path: - -``` -Assets/AWSIM/Externals/Nishishinjuku/Nishishinjuku_optimized/Models/* -``` - -`Environment` prefab contains several objects aggregating stationary visual elements of space by their category: - -- `SJK01_P01` - contains all objects constituting the ground of the environment, these are roads and green fields - each of them contains a `MeshColliders` and layer set as `Ground` to ensure collisions with `NPCVehicles` and `EgoVehicle`. - - ![sjk1](sjk1.png) - -- `SJK01_P02` - contains all road surface markings on roads added to the environment. -The objects of this group do not have `MeshColliders` and their layer is `Default`. - - ![sjk2](sjk2.png) - -- `SJK01_P03` - contains all the vertical poles added to the environment, such as lamp posts, road signs and traffic light poles. -Only `TrafficLight` poles and `PedestrianLight` poles have `MeshCollider` added. -The layer for all objects is `Default`. - - ![sjk3](sjk3.png) - -- `SJK01_P04` - contains all barriers added to the environment, such as barriers by sidewalks. -The objects of this group do not have `MeshColliders` and their layer is `Default`. - - ![sjk4](sjk4.png) - -- `SJK01_P05` - contains all greenery added to the environment, such as trees, shrubs, fragments of greenery next to buildings. -The objects of this group do not have `MeshColliders` and their layer is `Default`. - - ![sjk5](sjk5.png) - -- `SJK01_P06` - contains all buildings added to the environment. -Objects of this category also have a `MeshCollider` added, but their layer is `Default`. - - ![sjk6](sjk6.png) - -!!! warning "Scene Manager" - For models (visual elements) added to the prefab to work properly with the [`LidarSensor`](../../Sensors/LiDARSensor/LiDARSensor/) sensor using [`RGL`](../../Sensors/LiDARSensor/RGLUnityPlugin/), make sure that the `SceneManager` component is added to the scene - more about it is described in this [section](../../Sensors/LiDARSensor/RGLUnityPlugin/#scenemanager). - - In the scene containing `Nishishinjuku RandomTraffic`prefab *Scene Manager* (script) is added as a component to the `AutowareSimulation` object containing the `Environment`. - - ![scene_manager](scene_manager.png) - -### TrafficLights -`TrafficLights` are a stationary visual element belonging to the `SJK01_P03` group. -The lights are divided into two types, the classic `TrafficLights` used by vehicles at intersections and the `PedestrianLights` found at crosswalks. - -![sjk_lights_link](lights/sjk_lights_link.png) - -Classic traffic lights are aggregated at object `TrafficLightA01_Root01_ALL_GP01` - -![pedestrian_light_link](lights/lights_link.png) - -while lights used by pedestrians are aggregated at object `TrafficLightB01_Root01_All_GP01`. - -![pedestrian_light_link](lights/pedestian_lights_link.png) - -`TrafficLights` and `PedestrianLights` are developed using models available in the form of `*.fbx` files, which can be found under the following path:
-`Assets/AWSIM/Externals/Nishishinjuku/Nishishinjuku_opimized/Models/TrafficLights/Models/*` - -#### Classic TrafficLights -![light](lights/light.png) - -`TrafficLights` lights, outside their housing, always contain 3 signaling light sources of different colors - from left to right: green, yellow, red. -Optionally, they can have additional sources of signaling the ability to drive in a specific direction in the form of one or three signaling arrows. - -![light_prefab](lights/light_prefab.png) - -In the environment there are many classic lights with different signaling configurations. -However, each contains: - -- *Transform* - defines the position of the lights in the environment relative to the main parent of the group (`SJK01_P03`). -- *Mesh Filter* - contains a reference to the `Mesh` of the object. -- *Mesh Renderer* - enables the rendering of `Mesh`, including its geometry, textures, and materials, giving it a visual appearance in the scene. -- *Mesh Collider* - allows an object to have collision detection based on `Mesh`. -- [*Traffic Light* (script)](../../Traffic/TrafficComponents/#traffic-light-script) - provides an interface to control signaling by changing the emission of materials. -This script is used for simulated traffic, so it is described. - -##### Materials -An important element that is configured in the `TrafficLights` object are the materials in the `Mesh Renderer` component. -Material with index 0 always applies to the housing of the lights. -Subsequent elements 1-6 correspond to successive slots of light sources (round luminous objects) - starting from the upper left corner of the object in the right direction, to the bottom and back to the left corner. -These indexes are used in script *Traffic Light* (script) - described [here](../../Traffic/TrafficComponents/#traffic-light-script). - -![lights_mesh](lights/lights_materials.png) - -Materials for lighting slots that are assigned in `Mesh Renderer` can be found in the following path: -`Assets/AWSIM/Externals/Nishishinjuku/Nishishinjuku_opimized/Models/TrafficLights/Materials/*` - - -#### PedestrianLights -![pedestrian_light](lights/pedestrian_light.png) - -`PedestrianLights` lights, outside their housing, always contain 2 signaling light sources of different colors - red on top and green on the bottom. - -![pedestrian_lights_prefab](lights/pedestrian_lights_prefab.png) - -In the environment there are many pedestrian lights - they have the same components as classic `TrafficLights`, but the main difference is the configuration of their materials. - -##### Materials -An important element that is configured in the `PedestrianLights` object are the materials in the `Mesh Renderer` component. -Material with index 0 always applies to the housing of the lights. -Subsequent elements 1-2 correspond to successive slots of light sources (round luminous objects) - starting from top to bottom. -These indexes are used in script *Traffic Light* (script) - described [here](../../Traffic/TrafficComponents/#traffic-light-script). - -![pedestrian_lights_mesh](lights/pedestrian_lights_materials.png)
-Materials for lighting slots that are assigned in `Mesh Renderer` can be found in the following path: -`Assets/AWSIM/Externals/Nishishinjuku/Nishishinjuku_opimized/Models/TrafficLights/Materials/*` - -## Volume -![volume](volume.png) - -`Volume` is *GameObject* with [*Volume*](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Volumes.html) component which is used in the [*High Definition Render Pipeline*](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.2/manual/index.html) (*HDRP*). -It defines a set of scene settings and properties. -It can be either global, affecting the entire scene, or local, influencing specific areas within the scene. -*Volumes* are used to interpolate between different property values based on the Camera's position, allowing for dynamic changes to environment settings such as fog color, density, and other visual effects. - -In case of prefab `Nishishinjuku RandomTraffic` volume works in global mode and has loaded [*Volume profile*](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Volume-Profile.html). -This volume profile has a structure that overrides the default properties of *Volume* related to the following components: [Fog](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Override-Fog.html), [Shadows](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Override-Shadows.html), [Ambient Occlusion](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Override-Ambient-Occlusion.html), [Visual Environment](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Override-Visual-Environment.html), [HDRI Sky](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Override-HDRI-Sky.html). -It can be found in the following path:
-`Assets/AWSIM/Prefabs/Environments/Nishishinjuku/Volume Profile.asset` - -## Directional Light -![directional_light_prefab](directional_light_prefab.png) - -`Directional Light` is *GameObject* with [`Light`](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@12.0/manual/Light-Component.html) component which is used in the [*High Definition Render Pipeline*](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.2/manual/index.html) (*HDRP*). -It controls the shape, color, and intensity of the light. -It also controls whether or not the light casts shadows in scene, as well as more advanced settings. - - -In case of prefab `Nishishinjuku RandomTraffic` a `Directional` type light is added. -It creates effects that are similar to sunlight in scene. -This light illuminates all *GameObjects* in the scene as if the light rays are parallel and always from the same direction. -`Directional` light disregards the distance between the Light itself and the target, so the light does not diminish with distance. -The strength of the Light (`Intensity`) is set to `73123.09 Lux`. -In addition, a `Shadow Map` with a resolution of `4096` is enabled, which is updated in `Every Frame` of the simulation. -The transform of the `Directional Light` object is set in such a way that it shines on the environment almost vertically from above. - -![directional_light](directional_light.png) - -## NPCPedestrians -`NPCPedestrians` is an aggregating object for `NPCPedestrian` objects placed in the environment. -Prefab `Nishishinjuku RandomTraffic` has 7 `NPCPedestrian` (`humanElegant`) prefabs defined in selected places. -More about this `NPCPedestrian` prefab you can read in this [section](../../../Components/Traffic/NPCs/Pedestrian/). - -## Environment (script) - -[mgrs]: https://www.maptools.com/tutorials/mgrs/quick_guide - -![environment_script](environment_script.png) - -*Environment* (script) contains the information about how a simulated `Environment` is positioned in real world. -That means it describes what is the real world position of a simulated `Environment`. - -*AWSIM* uses part of a [*Military Grid Reference System*][mgrs] (*MGRS*). -To understand this topic, you only need to know, that using *MGRS* you can specify distinct parts of the globe with different accuracy. -For *AWSIM* the chosen accuracy is a 100x100 km square. -Such a square is identified with a unique code like `54SUE` (for more information on *Grid Zone* please see [this page][mgrs]). - -Inside this *Grid Zone* the exact location is specified with the offset calculated from the bottom-left corner of the *Grid Zone*. -You can interpret the *Grid Zone* as a local coordinate system in which you position the `Environment`. - -In the `Nishishinjuku RandomTraffic` prefab, the simulated `Environment` is positioned in the *Grid Zone* `54SUE`. -The offset if equal to `81655.73` meters in the `Ox` axis, `50137.43` meters in the `Oy` axis and `42.49998` meters in the `Oz` axis. -In addition to this shift, it is also necessary to rotate the Environment in the scene by `90` degrees about the `Oy` axis - this is ensured by the transform in the prefab object. - -This means that the *3D* models were created in reference to this exact point and because of that the *3D* models of `Environment` align perfectly with the data from *Lanelet2*. - -!!! warning "The essence of Environment (script)" - The *Environment* (script) configuration is necessary at the moment of loading data from *Lanelet2*. - - Internally it shifts the elements from *Lanelet2* by the given offset so that they align with the `Environment` that is located at the local origin with no offset. diff --git a/docs/Components/Environment/AWSIMEnvironment/layers.png b/docs/Components/Environment/AWSIMEnvironment/layers.png deleted file mode 100644 index bcebe7eed..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/layers.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/layers_physis.png b/docs/Components/Environment/AWSIMEnvironment/layers_physis.png deleted file mode 100644 index f0dccc9ea..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/layers_physis.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/light.png b/docs/Components/Environment/AWSIMEnvironment/lights/light.png deleted file mode 100644 index e041f88f1..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/light.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/light_prefab.png b/docs/Components/Environment/AWSIMEnvironment/lights/light_prefab.png deleted file mode 100644 index 7f16ad753..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/light_prefab.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/lights_arrow.png b/docs/Components/Environment/AWSIMEnvironment/lights/lights_arrow.png deleted file mode 100644 index 767bd6b3c..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/lights_arrow.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/lights_collider.png b/docs/Components/Environment/AWSIMEnvironment/lights/lights_collider.png deleted file mode 100644 index 5e5180182..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/lights_collider.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/lights_link.png b/docs/Components/Environment/AWSIMEnvironment/lights/lights_link.png deleted file mode 100644 index ddf1dbc8a..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/lights_link.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/lights_materials.png b/docs/Components/Environment/AWSIMEnvironment/lights/lights_materials.png deleted file mode 100644 index 52af40582..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/lights_materials.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/pedestian_lights_link.png b/docs/Components/Environment/AWSIMEnvironment/lights/pedestian_lights_link.png deleted file mode 100644 index 70e05ce6f..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/pedestian_lights_link.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_light.png b/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_light.png deleted file mode 100644 index 4b84fd26b..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_light.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_lights_materials.png b/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_lights_materials.png deleted file mode 100644 index d5bf5a3a2..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_lights_materials.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_lights_prefab.png b/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_lights_prefab.png deleted file mode 100644 index 82729e4c8..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/pedestrian_lights_prefab.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/lights/sjk_lights_link.png b/docs/Components/Environment/AWSIMEnvironment/lights/sjk_lights_link.png deleted file mode 100644 index 674508769..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/lights/sjk_lights_link.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/link.png b/docs/Components/Environment/AWSIMEnvironment/link.png deleted file mode 100644 index 04aa35e16..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/link.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/model_layer.png b/docs/Components/Environment/AWSIMEnvironment/model_layer.png deleted file mode 100644 index eb20fd4c1..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/model_layer.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/scene_manager.png b/docs/Components/Environment/AWSIMEnvironment/scene_manager.png deleted file mode 100644 index cb94c3486..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/scene_manager.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/sjk1.png b/docs/Components/Environment/AWSIMEnvironment/sjk1.png deleted file mode 100644 index 0de8344f5..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/sjk1.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/sjk2.png b/docs/Components/Environment/AWSIMEnvironment/sjk2.png deleted file mode 100644 index 0fb33cef5..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/sjk2.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/sjk3.png b/docs/Components/Environment/AWSIMEnvironment/sjk3.png deleted file mode 100644 index 7ec5e9b83..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/sjk3.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/sjk4.png b/docs/Components/Environment/AWSIMEnvironment/sjk4.png deleted file mode 100644 index 432eed37e..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/sjk4.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/sjk5.png b/docs/Components/Environment/AWSIMEnvironment/sjk5.png deleted file mode 100644 index 346f9c039..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/sjk5.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/sjk6.png b/docs/Components/Environment/AWSIMEnvironment/sjk6.png deleted file mode 100644 index 2158853f8..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/sjk6.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/vehicle_layer.png b/docs/Components/Environment/AWSIMEnvironment/vehicle_layer.png deleted file mode 100644 index d7849e024..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/vehicle_layer.png and /dev/null differ diff --git a/docs/Components/Environment/AWSIMEnvironment/volume.png b/docs/Components/Environment/AWSIMEnvironment/volume.png deleted file mode 100644 index 1eda92ff0..000000000 Binary files a/docs/Components/Environment/AWSIMEnvironment/volume.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/add_environment_script.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/add_environment_script.gif deleted file mode 100644 index dd5352352..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/add_environment_script.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_add_object.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_add_object.gif deleted file mode 100644 index b04c58528..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_add_object.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_config.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_config.gif deleted file mode 100644 index 9930cdfba..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_config.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_search.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_search.png deleted file mode 100644 index f0206c4bf..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/directional_light_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_3d_models.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_3d_models.png deleted file mode 100644 index 009248e1a..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_3d_models.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_directional_light.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_directional_light.png deleted file mode 100644 index b2134b38d..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_directional_light.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_npc_pedestrianl.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_npc_pedestrianl.png deleted file mode 100644 index 5f261db02..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_npc_pedestrianl.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_volume.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_volume.png deleted file mode 100644 index 43e8aff36..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_add_volume.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_environment.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_environment.png deleted file mode 100644 index e1c099ad7..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_environment.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_mgrs.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_mgrs.png deleted file mode 100644 index 3062ca283..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_mgrs.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_save_prefab.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_save_prefab.gif deleted file mode 100644 index aa4907691..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_save_prefab.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_transformation.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_transformation.png deleted file mode 100644 index 3feea25d1..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/environment_transformation.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/fbx_change.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/fbx_change.gif deleted file mode 100644 index 4e9b348eb..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/fbx_change.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/fbx_drag.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/fbx_drag.gif deleted file mode 100644 index c25e7ce6d..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/fbx_drag.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/index.md b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/index.md deleted file mode 100644 index 01b77ac2d..000000000 --- a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/index.md +++ /dev/null @@ -1,275 +0,0 @@ -# Add an Environment - -*Environment* is an important part of a *Scene* in *AWSIM*. -Every aspect of the simulated surrounding world needs to be included in the `Environment` prefab - in this section you will learn how to develop it. -However, first [Lanelet2](https://github.com/fzi-forschungszentrum-informatik/Lanelet2) needs to be developed along with *3D* models of the world, which will be the main elements of this prefab. - -!!! tip - If you want to learn more about the *Environment* at *AWSIM*, please visit [this page](../../../../Components/Environment/AWSIMEnvironment/). - -## Create a *Lanelet2* -Before you start creating *Lanelet2*, we encourage you to read the [documentation](https://github.com/fzi-forschungszentrum-informatik/Lanelet2/tree/master) to find out what *Lanelet2* is all about. *Lanelet2* can be created using [*VectorMapBuilder*](https://tools.tier4.jp/feature/vector_map_builder/) (`VMP`) based on the *PCD* obtained from real-life *LiDAR* sensor. - -When working with the `VMP`, it is necessary to ensure the most accurate mapping of the road situation using the available elements. -Especially important are `TrafficLanes` created in `VMB` as connected `Road Nodes` and `StopLines` created in VMB as `Road Surface Stoplines`. - -!!! warning "*Lanelet2* positioning" - *Lanelet2* should be created in [*MGRS* coordinates](https://www.maptools.com/tutorials/mgrs/quick_guide) of the real place you are recreating. - Please position your *Lanelet2* relative to the origin (bottom left corner) of the *MGRS Grid Zone* with the 100 km *Square ID* in which the location lays. More details can be read [here](https://www.maptools.com/tutorials/100km_square_id). - - You can think of the *Grid Zone* as a local coordinate system. - Instead of making global *(0,0)* point (crossing of *Equator* and *Prime Median*) our coordinate system origin we take a closer one. - The *MGRS Grid Zone* with 100 km *Square ID* code designates a 100x100 [kmxkm] square on the map and we take its bottom left corner as our local origin. - - !!! example - Lets examine one node from an example *Lanelet2* map: - - ```xml - - - - - - - ``` - - The node with `id="4"` position is described as absolute coordinates given in the ``. - In this example the coordinates are as follows `lat="35.68855194431519" lon="139.69142711058254`. - - It is also described as local transformation defined as a translation relative to the origin of the *MGRS Grid Zone* with 100 km *Square ID* (bottom left corner). - The *MGRS Grid Zone* designation with 100 km *Square ID* in this case is equal to `54SUE`. - In this example the offset in the *X axis* is as follows `k="local_x" v="81596.1357"` - and the offset in the *Y axis* is as follows `k="local_y" v="50194.0803"`. - - Note that elevation information is also included. - -## Create 3D models -You can create `3D` models of an `Environment` as you wish. -It is advised however, to prepare the models in form of `.fbx` files. -Additionally you should include materials and textures in separate directories. -Many models are delivered in this format. -This file format allows you to import models into Unity with materials and replace materials while importing. You can learn more about it [here](https://unity.com/how-to/work-assets-between-unity-and-autodesk). - -You can see a `.fbx` model added and modified on the fly in the example of [this section](#1-add-3d-models). - -### Guidelines -To improve the simulation performance of a scene containing your `Environment` prefab, please keep in mind some of these tips when creating *3D* models: - -1. Prefer more smaller models over a few big ones. - - In general it is beneficial for performance when you make one small mesh of a object like tree and reuse it on the scene placing many prefabs instead of making one giant mesh containing all trees on the given scene. - It is beneficial even in situations when you are not reusing the meshes. - Lets say you have a city with many buildings - and every one of those buildings is different - it is still advised to model those building individually and make them separate *GameObjects*. - -1. Choose texture resolution appropriately. - - Always have in mind what is the target usage of your texture. - Avoid making a high resolution texture for a small object or the one that will always be far away from the camera. - This way you can save some computing power by not calculating the details that will not be seen because of the screen resolution. - - !!! tip "Practical advice" - You can follow these simple rules when deciding on texture quality (texel density): - - - For general objects choose 512px/m (so the minimum size of texture is 512/512) - - For important objects that are close to the camera choose 1024px/m (so the minimum size of texture is 1024/1024) - -1. (optional) Add animation. - - Add animations to correct objects. - If some element in the 3D model are interactive they should be divided into separate parts. - -What's more, consider these tips related directly to the use of 3D models in *AWSIM*: - -1. Creating a *3D* model based on actual point cloud data makes it more realistic. -1. *AWSIM* is created using *HDRP* ([*High Definition Rendering Pipeline*](https://unity.com/srp/High-Definition-Render-Pipeline)) which performs better when object meshes are merged. -1. [Occlusion culling](https://docs.unity3d.com/Manual/OcclusionCulling.html) and flutter culling cannot be used because the sensors detection target will disappear. -1. Each traffic light should have a separate `GameObject`. Also, each light in the traffic light should be split into separate materials. - -## Create an Environment prefab -In this part, you will learn how to create a `Environment` prefab - that is, develop a *GameObject* containing all the necessary elements and save it as a prefab. - -### 1. Add 3D models -In this section we will add roads, buildings, greenery, signs, road markings etc. to our scene. - -Most often your models will be saved in the `.fbx` format. -If so, you can customize the materials in the imported model just before importing it. -Sometimes it is necessary as models come with placeholder materials. -You can either - -- replace materials for every added *GameObject* into the *Scene*, -- or replace materials for one *GameObject* and save this object as a prefab to easily load it later. - -In order to add *3D* models from the `.fbx` file to the *Scene* please do the following steps: - -1. In the *Project* view navigate to the directory where the model is located and click on the model file. -2. Now you can customize the materials used in the model in the *Inspector* view. -3. Drag the model into the *Scene* where you want to position it. -4. Move the *Object* in the *Hierarchy* tree appropriately. -5. (optional) Now you can save this model configuration as a *prefab* to easily reuse it. - Do this by dragging the *Object* from the *Scene* into the *Project* view. - When you get a warning make sure to select you want to create an original new prefab. - -!!! example - An example video of the full process of importing a model, changing the materials, saving new model as a prefab and importing the new prefab. - - -When creating a complex *Environment* with many elements you should group them appropriately in the Hierarchy view. -This depends on the individual style you like more, but it is a good practice to add all repeating elements into one common *Object*. -E.g. all identical traffic lights grouped in *TrafficLights* Object. -The same can be done with trees, buildings, signs etc. -You can group Objects as you like. - -!!! tip "Object hierarchy" - When adding elements to the *Environment* that are part of the static world (like 3D models of buildings, traffic lights etc.) it is good practice to collect them in one parent *GameObject* called `Map` or something similar. - - By doing this you can set a transformation of the parent *GameObject* `Map` to adjust the world pose in reference to e.g. loaded objects from *Lanelet2*.
- ![map_example](map_example.png) - -!!! warning "Remember to unpack" - Please remember to unpack all *Object* added into the scene. - If you don't they will change materials together with the `.fbx` model file as demonstrated in the example below. - - This is unwanted behavior. - When you import a model and change some materials, but leave the rest default and don't unpack the model, then your instances of this model on the scene may change when you change the original fbx model settings. - - See the example below to visualize what is the problem. - - ??? example - In this example we will - - - Place the model on the Scene. - - Then intentionally **not** unpack the model - - Only then change the materials of the original fbx model, **not** the instance on the scene - - ![drag model](fbx_drag.gif) - - Watch what happens, the instance on the Scene changes the materials together with the model. - This only happens if you don't unpack the model. - - ![change material in model](fbx_change.gif) - -!!! example "Example Environment after adding 3D models" - After completing this step you should have an `Environment` *Object* that looks similar to the one presented below. - - ![environment hierarchy view](environment_environment.png) - - The `Environment` with 3D models can look similar to the one presented below. - - ![environment add 3d models](environment_add_3d_models.png) - -### 2. Add an Environment Script -Add an `Environment Script` as component in the `Environment` object (see the last example in [section before](#1-add-3d-models)). -It does not change the appearance of the Environment, but is necessary for the simulation to work correctly. - -1. Click on the *Add Component* button in the `Environment` object. - - ![Add environment script gif](add_environment_script.gif) - -1. Search for `Environment` and select it. - - ![Search for environment script](search_environment_script.png) - -1. Set the [`MGRS`](https://en.wikipedia.org/wiki/Military_Grid_Reference_System) to the offset of your Environment as explained [in this section](../../../../Components/Environment/AWSIMEnvironment/#environment-script). - - ![environment mgrs](environment_mgrs.png) - -!!! info - Due to the differences between *VectorMapBuilder* and *Unity*, it may be necessary to set the transform of the `Environment` object. - The transform in `Environment` should be set in such a way that the `TrafficLanes` match the modeled roads. Most often it is necessary to set the positive `90` degree rotation over `Y` axis. - - This step should be done after [importing items from *lanelet2*](../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/). - Only then will you know if you have Environment misaligned with items from *lanelet2*. - - ![environment transformation](environment_transformation.png) - -### 3. Add a Directional Light - -1. Create a new child Object of the Environment and name it `Directional Light`. - - ![add directional light](directional_light_add_object.gif) - -2. Click `Add Component` button, search for `Light` and select it. - - ![directional light search](directional_light_search.png) - -3. Change light Type to `Directional`. -4. Now you can configure the directional light as you wish. E.g. change the intensity or orientation. - - ![directional light configure](directional_light_config.gif) - -!!!tip - For more details on lighting check out [official Unity documentation](https://docs.unity3d.com/Manual/Lighting.html). - -!!! example "Example Environment after adding Directional Light" - ![environment add directional light](environment_add_directional_light.png) - -### 4. Add a Volume - -1. Create a new child object of the Environment and name it `Volume`. - - ![volume add object](volume_add_object.gif) - -2. Click `Add Component` search for `Volume` and select it. - - ![select volume](volume_search.png) - -3. Change the Profile to `Volume Profile` and wait for changes to take effect. - - ![volume configure](volume_config.gif) - -4. Now you can configure the *Volume* individually as you wish. - -!!!tip - For more details on volumes checkout [official Unity documentation](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Volumes.html). - -!!! example "Example Environment after adding Volume" - ![environment add volume](environment_add_volume.png) - -### 5. Add NPCPedestrians -1. Make `NPCPedestrians` parent object. - - ![npcpedestrians make parent](npcpedestrian_add_parent.gif) - -2. Open `Assets/AWSIM/Prefabs/NPCs/Pedestrians` in Project view and drag a `humanElegant` into the `NPCPedestrians` parent object. - - ![npcpedestrian find prefab](npcpedestrian_find_prefab2.gif) - - ![npcpedestrian add prefab](npcpedestrian_add_prefab.gif) - -1. Click `Add Component` in the humanElegant object and search for `Simple Pedestrian Walker Controller` Script and select it. - - ![npcpedestrian configure](npcpedestrian_config.gif) - - ![npcpedestrian simple script search](npcpedestrian_search.png) - - This is a simple *Script* that makes the pedestrian walk straight and turn around indefinitely. - You can configure pedestrian behavior with 2 parameters. - - - *Duration* - how long will the pedestrian walk straight - - *Speed* - how fast will the pedestrian walk straight - - !!!tip - The `Simple Pedestrian Walker Controller` Script is best suited to be used on pavements. - -2. Finally position the `NPCPedestrian` on the scene where you want it to start walking. - - !!! warning - Remember to set correct orientation, as the `NPCPedestrian` will walk straight from the starting position with the starting orientation. - -!!! example "Example Environment after adding NPC Pedestrians" - ![environment add npc pedestrians](environment_add_npc_pedestrianl.png) - -### 6. Save an Environment prefab -After doing all the previous steps and having your Environment finished you can save it to prefab format. - -1. Find an *Environments* directory in the *Project* view (`Assets/AWSIM/Prefabs/Environments`). -2. Drag the `Environment` *Object* into the *Project* view. -3. (optional) Change the prefab name to recognize it easily later. - -![environment save prefab](environment_save_prefab.gif) - -!!! success - Once you've added the `Environment`, you need to add and configure `TrafficLights`. - For details please visit [this tutorial](../AddTrafficLights/). diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/map_example.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/map_example.png deleted file mode 100644 index f3a62dbd4..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/map_example.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/model_configure_save.mp4 b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/model_configure_save.mp4 deleted file mode 100644 index 7604190a5..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/model_configure_save.mp4 and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_add_parent.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_add_parent.gif deleted file mode 100644 index a906eab00..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_add_parent.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_add_prefab.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_add_prefab.gif deleted file mode 100644 index 7046024d9..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_add_prefab.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_config.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_config.gif deleted file mode 100644 index fc24b9de0..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_config.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_find_prefab.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_find_prefab.gif deleted file mode 100644 index bb8608403..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_find_prefab.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_find_prefab2.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_find_prefab2.gif deleted file mode 100644 index 8b1fdcf6e..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_find_prefab2.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_search.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_search.png deleted file mode 100644 index 284b6893f..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/npcpedestrian_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/search_environment_script.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/search_environment_script.png deleted file mode 100644 index 15856d0c5..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/search_environment_script.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_add_object.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_add_object.gif deleted file mode 100644 index 6d83da2ef..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_add_object.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_config.gif b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_config.gif deleted file mode 100644 index f5e7d5923..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_config.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_search.png b/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_search.png deleted file mode 100644 index 3d2a8c914..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddEnvironment/volume_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_component_random_traffic_simulator.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_component_random_traffic_simulator.gif deleted file mode 100644 index 9e9b8c327..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_component_random_traffic_simulator.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_component_random_traffic_simulator.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_component_random_traffic_simulator.png deleted file mode 100644 index da0aad287..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_component_random_traffic_simulator.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab.gif deleted file mode 100644 index d09de8f46..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab1.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab1.gif deleted file mode 100644 index 2dd091612..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab1.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab2.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab2.gif deleted file mode 100644 index a3490268f..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab2.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab3.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab3.gif deleted file mode 100644 index ecc9b6307..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_npc_prefab3.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_random_traffic_simulator.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_random_traffic_simulator.gif deleted file mode 100644 index f9f2b4e8c..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_random_traffic_simulator.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane1.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane1.gif deleted file mode 100644 index 56cc23157..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane1.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane2.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane2.gif deleted file mode 100644 index 31ee21a82..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane2.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane3.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane3.gif deleted file mode 100644 index f94b4da6f..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane3.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane4.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane4.gif deleted file mode 100644 index df22e9e8d..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/add_traffic_lane4.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/index.md b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/index.md deleted file mode 100644 index 43bbab18e..000000000 --- a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/index.md +++ /dev/null @@ -1,121 +0,0 @@ -To add a Random Traffic to your scene you need the Random Traffic Simulator Script. - -1. Create a new *Game Object* as a child of `Environment` and call it `RandomTrafficSimulator`. - - ![create_random_traffic_simulator](add_random_traffic_simulator.gif) - -1. Click a button `Add Component` in the `Inspector` to add a script. - - ![add_component_random_traffic_simulator](add_component_random_traffic_simulator.gif) - -1. A small window should pop-up. -Search for `RandomTrafficSimulator` script and add it by double clicking it or by pressing enter. - - ![add_component_random_traffic_simulator](add_component_random_traffic_simulator.png) - -## Basic Configuration -After clicking on the newly created `RandomTrafficSimulator` object in the Scene tree you should see something like this in the `Inspector` view. - -![random_traffic_simulator_inspector](random_traffic_simulator_inspector.png) - -Random Traffic Simulator, as the name suggests, generates traffic based on random numbers. -To replicate situations you can set a specific [seed](https://en.wikipedia.org/wiki/Random_seed). - -You can also set `Vehicle Layer Mask` and `Ground Layer Mask`. -It is important to set these layers correctly, as they are a base for vehicle physics. -If set incorrectly the vehicles may fall through the ground into the infinity. - -![random_traffic_simulator_layers](random_traffic_simulator_layers.png) - -## Add NPCVehicles -Random Traffic Simulator Script moves, spawns and despawns vehicles based on the configuration. -These settings can to be adjusted to your preference. - -1. Setting Max Vehicle Count. - - This parameter sets a limit on how many vehicles can be added to the scene at one time. - -2. NPC Prefabs - - These are models of vehicles that should be spawned on the scene, to add NPC Prefabs please follow these steps: - - 1. To do this click on the "+" sign and in the new list element at the bottom and click on the small icon on the right to select a prefab. - - - - 2. Change to the `Assets` tab in the small windows that popped-up. - - - - 3. Search for the Vehicle prefab you want to add, e.g. `Hatchback`. - - - - ![add npc prefab gif](add_npc_prefab.gif) - - Available NPC prefabs are shown in the [NPC Vehicle section](../../../../../Components/Traffic/NPCs/Vehicle/). - - !!! tip "Control NPC Vehicle spawning" - Random Traffic Simulator Script will **on random** select one prefab from `Npc Prefabs` list every time when there are not enough vehicles on the scene (the number of vehicles on the scene is smaller than the number specified in the `Max Vehicle Count` field). - - You can control the odds of selecting one vehicle prefab over another by adding more than one instance of the same prefab to this list. - -## Add spawnable lanes -Spawnable lanes are the lanes on which new vehicles can be spawned by the Random Traffic Simulator Script. -Best practice is to use beginnings of the lanes on the edges of the map as spawnable lanes. - -!!! warning - Make sure you have a lanelet added into your scene. - The full tutorial on this topic can be found [here](../LoadItemsFromLanelet/). - -Adding spawnable lanes is similar to [Adding NPC Prefabs](#add-npcvehicles). - -1. Add an element to the `Spawnable Lanes` list by clicking on the "+" symbol or by selecting number of lanes directly. - - Add npc list element gif - -2. Now you can click on the small icon on the right of the list element and select a *Traffic Lane* you are interested in. - - Select traffic lane gif - - Unfortunately all Traffic Lanes have the same names so it can be difficult to know which one to use. - Alternatively you can do the following to add a traffic lane by visually selecting it in the editor: - - - Lock `RandomTrafficSimulator` in the Inspector view. - - Lock inspector view gif - - - Select the *Traffic Lane* you are interested in on the Scene and as it gets highlighted in the Hierarchy view you can now drag and drop this Traffic Lane into the appropriate list element. - - ![Select traffic lane and drag it to the list gif](add_traffic_lane4.gif) - -## Vehicles configuration - -The last thing to configure is the behavior of NPCVehicles. -You can specify acceleration rate of vehicles and three values of deceleration. - -![Vehicle configuration picture](vehicle_configuration.png) - -- Acceleration - - This value is used for every acceleration the vehicle performs (after stop line or traffic lights). - -- Deceleration - - This deceleration value is used for most casual traffic situations like slowing down before stop line. - -- Sudden Deceleration - - This deceleration rate is used for emergency situations - when using standard deceleration rate is not enough to prevent some accident from happening (e.g. vehicle on the intersection didn't give way when it was supposed to). - -- Absolute Deceleration - - This deceleration rate is a last resort for preventing a crash from happening. - When no other deceleration is enough to prevent an accident this value is used. - This should be set to the highest value achievable by a vehicle. - -!!! question - This configuration is common for all vehicles managed by the `Random Traffic Simulator Script`. - -!!! success - The last thing that needs to be done for `RandomTraffic` to work properly is to add intersections with traffic lights and configure their sequences. Details [here](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/). diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/random_traffic_simulator_inspector.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/random_traffic_simulator_inspector.png deleted file mode 100644 index 501348462..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/random_traffic_simulator_inspector.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/random_traffic_simulator_layers.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/random_traffic_simulator_layers.png deleted file mode 100644 index 2f8243cec..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/random_traffic_simulator_layers.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/vehicle_configuration.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/vehicle_configuration.png deleted file mode 100644 index e28b35b08..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/vehicle_configuration.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/box_collider_search.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/box_collider_search.png deleted file mode 100644 index 0a0f8f195..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/box_collider_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/index.md b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/index.md deleted file mode 100644 index f6d22e349..000000000 --- a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/index.md +++ /dev/null @@ -1,133 +0,0 @@ -Every `TrafficIntersection` on the scene needs to be added as a *GameObject*. -Best practice is to create a parent object `TrafficIntersections` and add all instances of `TrafficIntersection` as its children. -You can do this the same as with [Random Traffic Simulator](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/). - -!!! warning "Traffic Lights configuration" - Before performing this step, check all `TrafficLights` for correct configuration and make sure that `TrafficLights` have added scripts. If you want to learn how to add and configure it check out [this tutorial](../../AddTrafficLights/). - -## Add a Box Collider -1. `TrafficIntersection` needs to be marked with a box collider. -First click on the `Add Component` button. - - ![Add box collider gif](traffic_intersection_add_box.gif) - -1. In the window that popped up search for `Box Collider` and select it. - - ![Search for box collider](box_collider_search.png) - -1. Then set the position and orientation and size of the Box Collider. -You can do this by manipulating Box Collider properties `Center` and `Size` in the *Inspector* view. - - ![Set traffic intersection size](traffic_intersection_size.png) - - !!! info "Traffic Intersection Box Collider guidelines" - When adding a Box Collider marking your Traffic Intersection please make sure that - - - It is **not** floating over the ground - there is no gap between the Box Collider and The Traffic Intersection - - It is high enough to cover all Vehicles that will be passing through the Intersection - - It accurately represents the shape, position and orientation of the Traffic Intersection - -## Add a Traffic Intersection Script -1. Click on the `Add Component` button. - - ![Add traffic intersection script gif](traffic_intersection_add_script.gif) - -1. In the window that popped up search for `Traffic Intersection` and select it. - - ![Search for traffic intersection script](traffic_intersection_search.png) - -1. You need to set a proper Collider Mask in order for the script to work. - - ![Set collider mask](traffic_intersection_collider_mask.png) - -### Create traffic light groups -Traffic Light Groups are groups of traffic lights that are synchronized, meaning they light up with the same color and pattern at all times. - -Traffic lights are divided into groups to simplify the process of creating a lighting sequence. -By default you will see 4 Traffic Light Groups, you can add and remove them to suit your needs. - -1. First choose from the drop-down menu called `Group` the Traffic Light Group name you want to assign to your Traffic Light Group. - - - Traffic intersection add traffic light gif - -1. Then add as many Traffic Lights as you want your group to have. -From the drop-down menu select the Traffic Lights you want to add. - - - Traffic intersection add traffic light 2 gif - - !!! tip "Select Traffic Lights visually" - If you have a lot of Traffic Lights it can be challenging to add them from the list. - You can select them visually from the Scene the same as you had selected Traffic Lanes in the [Random Traffic Simulator](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/#add-spawnable-lanes). - -### Create lighting sequences -Lighting Sequences is a list of commands based on which the Traffic Lights will operate on an intersection. -The elements in the Lighting Sequences list are changes (commands) that will be executed on the Traffic Light Groups. - -Group Lighting Order should be interpreted as a command (or order) given to all Traffic Lights in selected Traffic Light Group. -In Group Lighting Orders you can set different traffic light status for every Traffic Light Group (in separate elements). -Lighting sequences list is processed in an infinite loop. - -It should be noted that changes applied to one Traffic Light Group will remain the same until the next Group Lighting Order is given to this Traffic Light Group. -This means that if in one Group Lighting Order no command is sent to a Traffic Light Group then this Group will remain its current lighting pattern (color, bulb and status). - -For every Lighting Sequences Element you have to specify the following - -1. Interval Sec - - This is the time for which the sequence should wait until executing next order, so how long this state will be active. - -1. For every element in Group Lighting Orders there needs to be specified - - 1. Group to which this order will be applied - 2. List of orders (Bulb Data) - - In other words - what bulbs should be turned on, their color and pattern. - - - Type - What type of bulb should be turned on - - Color - What color this bulb should have (in most cases this will be the same as color of the bulb if specified) - - Status - How the bulb should light up (selecting `SOLID_OFF` is necessary only when you want to turn the Traffic Light completely off, meaning **no** bulb will light up) - - !!!note - When applying the change to a Traffic Light - - - First all bulbs are turned off - - Only after that changes made in the order are applied - - This means it is only necessary to supply the data about what bulbs should be turned on. - E.g. you don't have to turn off a red bulb when turning on the green one. - -!!!warning - The first Element in the Lighting Sequences (in most cases) should contain bulb data for every Traffic Light Group. - Traffic Light Groups not specified in the first Element will not light up at the beginning of the scene. - -#### Example -Lets consider the following lighting sequence element. - -![Example Group Lighting Orders](traffic_intersecton_example_sequence_element.png) - -In the Lighting Sequence Element 5 we tell all Traffic Lights in the *Vehicle Traffic Light Group 2* to light up their Green Bulb with the color Green and status Solid On which means that they will be turned on all the time. -We also implicitly tell them to turn all other Bulbs off. - -In the same time we tell all Traffic Lights in the *Pedestrian Traffic Light Group 2* to do the very same thing. - -This state will be active for the next 15 seconds, and after that Traffic Intersection will move to the next Element in the Sequence. - -Now lets consider the following Lighting Sequences Element 6. - -![Example Group Lighting Order 2](traffic_intersecton_example_sequence_element2.png) - -Here we order the Traffic Lights in the *Pedestrian Traffic Light Group 2* to light up their Green Bulb with the color Green and status Flashing. -We also implicitly tell them to turn all other bulbs off, which were already off from the implicit change in Element 5, so this effectively does nothing. - -Note that Lighting Sequences Element 6 has no orders for *Vehicle Traffic Light Group 2*. -This means that Traffic Lights in the *Vehicle Traffic Light Group 2* will hold on to their earlier orders. - -This state will be active for 5 seconds, which means that Traffic Lights in the *Vehicle Traffic Light Group 2* will be lighting solid green for the total of 20 seconds. - -## How to test -To test how your Traffic Intersection behaves simply run the Scene as shown [here](../../../../../GettingStarted/SetupUnityProject/#run-the-demo-in-editor) (but don't launch *Autoware*). -To take a better look at the Traffic Lights you can change to the *Scene* view by pressing `ctrl + 1` - now you can move the camera freely (to go back to the *Game* view simply press `ctrl + 2`). - -As the time passes you can examine whether your Traffic Intersection is configured correctly. diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_box.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_box.gif deleted file mode 100644 index e5c75f13e..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_box.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_script.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_script.gif deleted file mode 100644 index 5c4ec86f7..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_script.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_traffic_light.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_traffic_light.gif deleted file mode 100644 index 543cc6dfc..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_traffic_light.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_traffic_light2.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_traffic_light2.gif deleted file mode 100644 index d59c4de8c..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_add_traffic_light2.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_collider_mask.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_collider_mask.png deleted file mode 100644 index 9dae4f30f..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_collider_mask.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_search.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_search.png deleted file mode 100644 index c4c6995b2..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_size.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_size.png deleted file mode 100644 index d8f9cdc06..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersection_size.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersecton_example_sequence_element.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersecton_example_sequence_element.png deleted file mode 100644 index 2c1205e93..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersecton_example_sequence_element.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersecton_example_sequence_element2.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersecton_example_sequence_element2.png deleted file mode 100644 index a1d12ef34..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/traffic_intersecton_example_sequence_element2.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/add_stop_line.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/add_stop_line.gif deleted file mode 100644 index 67373321e..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/add_stop_line.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/add_stop_line_add_script.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/add_stop_line_add_script.gif deleted file mode 100644 index 07be07de3..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/add_stop_line_add_script.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/index.md b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/index.md deleted file mode 100644 index 8972c4578..000000000 --- a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/index.md +++ /dev/null @@ -1,239 +0,0 @@ -#Load items from lanelet2 - -To add `RandomTraffic` to the `Environment`, it is necessary to load elements from the *lanelet2*. -As a result of loading, `TrafficLanes` and `StopLines` will be added to the scene. Details of these components can be found [here](../../../../../Components/Traffic/TrafficComponents/). - -!!! warning - Before following this tutorial make sure you have added an [Environment Script](../../../../../Components/Environment/AddNewEnvironment/AddEnvironment/#2-add-an-environment-script) and set a proper `MGRS` offset position. This position is used when loading elements from the *lanelet2*! - -1. Click on the `AWSIM` button in the top menu of the Unity editor and navigate to `AWSIM -> Random Traffic -> Load Lanelet`. - - ![load lanelet gif](load_lanelet.gif) - -2. In the window that pops-up select your osm file, change some Waypoint Settings to suit your needs and click `Load`. - - ![load lanelet gif](load_lanelet2.gif) - - !!! info "Waypoint Settings explanation" - - *Resolution* - resolution of resampling. Lower values provide better accuracy at the cost of processing time - - *Min Delta Length* - minimum length(m) between adjacent points - - *Min Delta Angle* - minimum angle(deg) between adjacent edges. Lowering this value produces a smoother curve - -3. Traffic Lanes and Stop Lanes should occur in the Hierarchy view. -If they appear somewhere else in your Hierarchy tree, then move them into the `Environment` object. - -## Complete loaded TrafficLanes -The Traffic Lanes that were loaded should be configures accordingly to the road situation. -The aspects you can configure - -- Right of way - - The right of way has to be configured so that Vehicles know how ot behave in the traffic. - To configure this please visit a [dedicated section in Add a Traffic Lane](#7-configure-right-of-way). - After you have set right of way to all traffic lanes please follow [this final step](#10-set-the-right-of-ways). - -- Stop Line - - Assuming you have all Stop Lines loaded from the lanelet you have to add them to the Traffic Lanes. - For detailed instruction please visit a [dedicated section in Add a Traffic Lane](#8-add-stop-line). - - If - for any reason - you don't have all the Stop Lines added, please follow [this dedicated section](#add-a-stopline-manually). - -## How to test -If you want to test your Traffic Lanes you have to try running a [Random Traffic](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/). -To verify one particular Traffic Lane or Traffic Lane connection you can [make a new spawnable lane](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/#add-spawnable-lanes) next to the Traffic Lane you want to test. -This way you can be sure NPCVehicles will start driving on the Traffic Lane you are interested in at the beginning. - -## Add a StopLine manually -When something goes wrong when loading data from *lanelet2* or you just want to add another StopLine manually please do the following - -### 1. Add a GameObject -Add a new GameObject *StopLine* in the *StopLines* parent object. - -![add stop line object](add_stop_line.gif) - -### 2. Add a StopLine Script -Add a StopLine Script by clicking 'Add Component' and searching for `Stop Line`. - -![add component](add_stop_line_add_script.gif) - -![search stop line](stop_line_search.png) - -!!! example - So far your Stop Line should look like the following - - ![stop line inspector view](stop_line_inspector.png) - -### 3. Set points -Set the position of points `Element 0` and `Element 1`. -These Elements are the two end points of a Stop Line. -The Stop Line will span between these points. - -You don't need to set any data in the 'Transform' section as it is not used anyway. - -!!! warning "StopLine coordinate system" - Please note that the Stop Line Script operates in the global coordinate system. - The transformations of StopLine *Object* and its parent *Objects* won't affect the Stop Line. - - ??? example - In this example you can see that the Position of the *Game Object* does not affect the position and orientation of the Stop Line. - - For a Game Object in the center of the coordinate system. - - ![stop line in default position](stop_line_position11.png) - - The stop Line is in the specified position. - - ![stop line in default position](stop_line_position12.png) - - However with the *Game Object* shifted in X axis. - - ![stop line in new position](stop_line_position21.png) - - The Stop Line stays in the same position as before, not affected by any transformations happening to the *Game Object*. - - ![stop line in new position](stop_line_position22.png) - -### 4. Has Stop Sign -Select whether there is a Stop Sign. - -Select the `Has Stop Sign` tick-box confirming that this Stop Line has a Stop Sign. -The Stop Sign can be either vertical or horizontal. - -![stop line has stop sigh](stop_line_has_stop_sign.gif) - -### 5. Select a Traffic Light -Select from the drop-down menu the Traffic Light that is on the [Traffic Intersection](../../../../../Components/Traffic/TrafficComponents/) and is facing the vehicle that would be driving on the Traffic Lane connected with the Stop Line you are configuring. - -In other words select the right Traffic Light for the Lane on which your Stop Line is placed. - -![stop line add traffic light](stop_line_add_traffic_light.gif) - -!!! tip "Select Traffic Lights visually" - If you have a lot of Traffic Lights it can be challenging to add them from the list. - You can select them visually from the Scene the same as you had selected Traffic Lanes in the [Random Traffic Simulator](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/#add-spawnable-lanes). - -### 6. Configure the Traffic Lane -Every Stop Line has to be connected to a Traffic Lane. -This is done in the Traffic Lane configuration. -For this reason please check the [Traffic Lane section](#8-add-stop-line) for more details. - -## Add a TrafficLane manually -It is possible that something may go wring when reading a *lanelet2* and you need to add an additional Traffic Lane or you just want to add it. -To add a Traffic Lane manually please follow the steps below. - -### 1. Add a GameObject -Add a new *Game Object* called `TrafficLane` into the `TrafficLanes` parent *Object*. - -![traffic lane add object](traffic_lane_add_object.gif) - -### 2. Add a Traffic Lane Script -Click the 'Add Component' button and search for the `Traffic lane` script and select it. - -![traffic lane add component](traffic_lane_add_component.gif) - -![traffic lane search](traffic_lane_search.png) - -!!! example - So far your Traffic Lane should look like the following. - - ![traffic lane configuration](traffic_lane_configuration.png) - -### 3. Configure Waypoints -Now we will configure the 'Waypoints' list. -This list is an ordered list of nest points defining the Traffic Lane. -When you want to add a waypoint to a Traffic Lane just click on the `+` button or specify the number of waypoints on the list in the field with number to the right from 'Waypoints' identifier. - -The order of elements on this list determines how waypoints are connected. - -![traffic lane add waypoints](traffic_lane_add_waypoints.gif) - -!!! warning "Traffic Lane coordinate system" - Please note that the Traffic Lane waypoints are located in the global coordinate system, any transformations set to a *Game Object* or paren *Objects* will be ignored. - - This behavior is the same as with the Stop Line. - You can see the example provided in the [Stop Line tutorial](#add-a-stopline-manually). - -!!! info "General advice" - - Two waypoints should not be too far away from each other. - - When creating a turn that is a curvature please keep in mind the angle that is created between two next waypoints connected. - The angles should be fairly small - this will translate to a smooth motion of vehicles. - -### 4. Select the Turn Direction -You also need to select the Turn Direction. -This field describes what are the vehicles traveling on ths Traffic Lane doing in reference to other Traffic Lanes. -You need to select whether the vehicles are - -- Driving straight (`STRAIGHT`) -- Turning right (`RIGHT`) -- Turning left (`LEFT`) - -![traffic lane select the turn direction](traffic_lane_select_turn_direction.gif) - -### 5. Configure Next Lanes -You need to add all Traffic Lanes that have their beginning in the end of this Traffic Lane into the Next Lanes list. -In other words if the vehicle can choose where he wants to drive (e.g. drive straight or drive left with choice of two different Traffic Lines). - -To do this click the `+` sign in the *Next Lanes* list and in the element that appeared select the correct Traffic Lane. - -![traffic lane add next lane](traffic_lane_add_next_lane.gif) - -??? example "Next Lane example" - Lets consider the following Traffic Intersection. - - ![traffic lane situation](traffic_lane_situation.png) - - In this example we will consider the Traffic Lane driving from the bottom of the screen and turning right. - After finishing driving in this Traffic Lane the vehicle has a choice of 4 different Traffic Lanes each turning into different lane on the parallel road. - - All 4 Traffic Lanes are connected to the considered Traffic Lane. - This situation is reflected in the Traffic Lane configuration shown below. - - ![traffic lane description](traffic_lane_description.png) - -!!! tip "Select Traffic Lanes visually" - If you have a lot of Traffic Lanes it can be challenging to add them from the list. - You can select them visually from the Scene the same as you had selected Traffic Lanes in the [Random Traffic Simulator](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/#add-spawnable-lanes). - -### 6. Configure Previous Lanes -Traffic Lane has to have previous Traffic Lanes configured. -This is done in the exact same way as [configuring next lanes which was shown in the previous step](#5-configure-next-lanes). -Please do the same, but add Traffic Lanes that are before the configured one instead of the ones after into the *Prev Lanes* list. - -### 7. Configure Right Of Way -Now we will configure the Right Of Way Lanes. -The Right Of Way Lanes is a list of Traffic Lanes that have a priority over the configured one. -The process of adding the Right Of Way Lanes is the same as with adding Next Lanes. -For this reason we ask you to [see the aforementioned step](#5-configure-next-lanes) for detailed description on how to do this (the only difference is that you add Traffic Lanes to the *Right Of Way Lanes* list). - -??? example "Right of way example" - In this example lets consider the Traffic Lane highlighted in blue from the Traffic Intersection below. - - ![right of way situation](traffic_lane_right_of_way_situation.png) - - This Traffic Lane has to give way to all Traffic Lanes highlighted on yellow. - This means all of the yellow Traffic Lanes have to be added to the 'Right Of Way Lanes' list which is reflected on the configuration shown below. - - ![right of way configuration](traffic_lane_right_of_way_configuration.png) - -### 8. Add Stop Line -Adding a Stop Line is necessary only when at the end of the configured Traffic Lane the Stop Line is present. -If so, please select the correct Stop Line from the drop-down list. - -![traffic lane add stop line](traffic_lane_add_stop_line.gif) - -!!! tip "Select Stop Line visually" - If you have a lot of Stop Lines it can be challenging to add them from the list. - You can select them visually from the Scene the same as you had selected Traffic Lanes in the [Random Traffic Simulator](../../../../../Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/#add-spawnable-lanes). - -### 9. Add Speed Limit. - -In the field called `Speed Limit` simply write the speed limit that is in effect on the configured Traffic Lane. - -![traffic lane set speed limit](traffic_lane_set_speed_limit.gif) - -### 10. Set the Right of Ways - -To make the Right Of Ways list you configured earlier take effect simply click the 'Set RightOfWays' button. - -![traffic lane set right of ways](traffic_lane_set_right_of_ways.gif) diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/load_lanelet.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/load_lanelet.gif deleted file mode 100644 index 8e4ce0dba..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/load_lanelet.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/load_lanelet2.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/load_lanelet2.gif deleted file mode 100644 index f7a2f1f00..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/load_lanelet2.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_add_traffic_light.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_add_traffic_light.gif deleted file mode 100644 index 93d3990e8..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_add_traffic_light.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_has_stop_sign.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_has_stop_sign.gif deleted file mode 100644 index 79ae0652f..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_has_stop_sign.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_inspector.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_inspector.png deleted file mode 100644 index f95247d50..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_inspector.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position11.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position11.png deleted file mode 100644 index d86fe74dc..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position11.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position12.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position12.png deleted file mode 100644 index 91c137da0..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position12.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position21.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position21.png deleted file mode 100644 index d00f1959f..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position21.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position22.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position22.png deleted file mode 100644 index 5f7cdf46e..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_position22.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_search.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_search.png deleted file mode 100644 index b450d1e29..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/stop_line_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_component.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_component.gif deleted file mode 100644 index 93a5730c1..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_component.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_next_lane.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_next_lane.gif deleted file mode 100644 index c0157d54d..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_next_lane.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_object.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_object.gif deleted file mode 100644 index 9e359faf8..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_object.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_stop_line.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_stop_line.gif deleted file mode 100644 index 0664b1b57..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_stop_line.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_waypoints.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_waypoints.gif deleted file mode 100644 index 0c8f417a8..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_add_waypoints.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_configuration.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_configuration.png deleted file mode 100644 index b9da759da..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_configuration.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_description.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_description.png deleted file mode 100644 index 69c3918bc..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_description.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_right_of_way_configuration.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_right_of_way_configuration.png deleted file mode 100644 index 9921a0aee..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_right_of_way_configuration.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_right_of_way_situation.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_right_of_way_situation.png deleted file mode 100644 index 2b7f6f6ef..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_right_of_way_situation.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_search.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_search.png deleted file mode 100644 index 5be32b0ad..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_select_turn_direction.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_select_turn_direction.gif deleted file mode 100644 index 93f28d37e..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_select_turn_direction.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_set_right_of_ways.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_set_right_of_ways.gif deleted file mode 100644 index ac9f8b06d..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_set_right_of_ways.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_set_speed_limit.gif b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_set_speed_limit.gif deleted file mode 100644 index c8248f73a..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_set_speed_limit.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_situation.png b/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_situation.png deleted file mode 100644 index 930005942..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/traffic_lane_situation.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/index.md b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/index.md deleted file mode 100644 index d38d35e40..000000000 --- a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/index.md +++ /dev/null @@ -1,102 +0,0 @@ -# Add TrafficLights -To add `TrafficLights` into your `Environment` follow steps below. -!!!tip - In the `Environment` you are creating there will most likely be many `TrafficLights` that should look and work the same way. - To simplify the process of creating an environment it is advised to create one `TrafficLight` of each type with this tutorial and then save them as prefabs that you will be able to reuse. - -## 1. Add TrafficLight Object -Into your `Map` object in the *Hierarchy* view add a new *Child Object* and name it appropriately. - -![add traffic light object](traffic_light_add_object.gif) - -## 2. Add a Mesh Filter and select meshes - -1. Click on the `Add Component` button. - - ![add traffic light component](traffic_light_add_component.gif) - -1. Search for `Mesh filter` and select it by clicking on it. - - ![search mesh filter](mesh_filter_search.png) - -1. For each `TrafficLight` specify the mesh you want to use. - - ![traffic light mesh](traffic_light_select_mesh.gif) - -## 3.Add a Mesh Renderer and specify materials - -1. The same way as above search for `Mesh Renderer` and select it. - - ![search mesh renderer](mesh_renderer_search.png) - -1. Now you need to specify individual component materials. - - For example in the `Traffic.Lights.001` mesh there are four sub-meshes that need their individual materials. - - To specify a material click on the selection button on `Materials` element and search for the material you want to use and select it. - - ![specify material](traffic_light_select_material.gif) - - Repeat this process until you specify all materials. - When you add one material more than there are sub-meshes you will see this warning. - Then just remove the last material and the `TrafficLight` is prepared. - - ![too many traffic materials](traffic_light_too_many_materials.png) - - !!! info - Different material for every bulb is necessary for the color changing behavior that we expect from traffic lights. - Even though in most cases you will use the same material for every `Bulb`, having them as different elements is necessary. - Please only use models of `TrafficLights` that have different `Materials Elements` for every `Bulb`. - - !!! warning "Materials order" - When specifying materials remember the order in which they are used in the mesh. - Especially remember what `Materials Elements` are associated with every `Bulb` in the `TrafficLight`. - This information will be needed later. - - !!! example - In the case of `Traffic.Lights.001` the bulb materials are ordered starting from the left side with index 1 and increasing to the right. - - ![bulb 1](traffic_light_1_bulb.png) - - ![bulb 2](traffic_light_2_bulb.png) - - ![bulb 3](traffic_light_3_bulb.png) - -## 4. Add a Mesh Collider -The same way as above search for `Mesh Collider` and select it. -Collider may not seem useful, as the `TrafficLight` in many cases will be out of reach of vehicles. -It is however used for LiDAR simulation, so it is advised to always add colliders to Objects that should be detected by LiDARs. - -![search mesh collider](mesh_collider_search.png) - -## 5. Position TrafficLight in the Environment -Finally after configuring all visual aspects of the `TrafficLight` you can position it in the environment. -Do this by dragging a `TrafficLight` with a square representing a plane or with an arrow representing one axis. - -![position](traffic_light_position.gif) - -## 6. Add TrafficLight Script -The `Traffic Light` Script will enable you to control how the `TrafficLight` lights up and create sequences. - -1. Click on `Add Component`, search for the `Traffic Light` script and select it. - - ![traffic light script](traffic_light_script_search.png) - -2. You should see the `Bulb Emission config` already configured. These are the colors that will be used to light up the Bulbs in `TrafficLight`. You may adjust them to suit your needs. - - ![bulb emission config](traffic_light_bulb_emissions_config.png) - -3. You will have to specify `Bulb material config`, in which you should add elements with fields: - - `Bulb Type` - One of the predefined Bulb types that describes the Bulb (its color and pattern). - - - `Material Index` - Index of the material that you want to be associated with the Bulb Type. This is where you need to use the knowledge from earlier where we said you have to remember what Materials Element corresponds to which bulb sub-mesh. - - !!! example "Bulb configuration example" - Here we specify an element Type as `RED_BULB` and associate it with Material that has an index 3. - This will result in associating the right most bulb with the name `RED_BULB`. - This information will be of use to us when specifying `TrafficLights` sequences. - - ![traffic light bulb config](traffic_light_bulb_config.gif) - -!!! success - Once you have added `TrafficLights` to your `Environment`, you can start configuring `RandomTraffic` which will add moving vehicles to it! Details [here](../AddRandomTraffic/AddRandomTraffic/). diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_collider_search.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_collider_search.png deleted file mode 100644 index cada37533..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_collider_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_filter_search.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_filter_search.png deleted file mode 100644 index e48797a8d..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_filter_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_renderer_search.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_renderer_search.png deleted file mode 100644 index cbc3562bd..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/mesh_renderer_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_001.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_001.png deleted file mode 100644 index 801d8968d..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_001.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_1_bulb.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_1_bulb.png deleted file mode 100644 index 6311ab9fd..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_1_bulb.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_2_bulb.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_2_bulb.png deleted file mode 100644 index 602b3ba05..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_2_bulb.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_3_bulb.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_3_bulb.png deleted file mode 100644 index 84d9eb717..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_3_bulb.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_add_component.gif b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_add_component.gif deleted file mode 100644 index 16bdbe93a..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_add_component.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_add_object.gif b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_add_object.gif deleted file mode 100644 index aae34ccda..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_add_object.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_bulb_config.gif b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_bulb_config.gif deleted file mode 100644 index eaaad9f71..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_bulb_config.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_bulb_emissions_config.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_bulb_emissions_config.png deleted file mode 100644 index 88acab8a6..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_bulb_emissions_config.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_position.gif b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_position.gif deleted file mode 100644 index 7c75e9bd2..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_position.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_script_search.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_script_search.png deleted file mode 100644 index 98320f18a..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_script_search.png and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_select_material.gif b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_select_material.gif deleted file mode 100644 index 9b687bbcd..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_select_material.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_select_mesh.gif b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_select_mesh.gif deleted file mode 100644 index e2d44bebd..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_select_mesh.gif and /dev/null differ diff --git a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_too_many_materials.png b/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_too_many_materials.png deleted file mode 100644 index da26c55d8..000000000 Binary files a/docs/Components/Environment/AddNewEnvironment/AddTrafficLights/traffic_light_too_many_materials.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/add_vehicle_object.gif b/docs/Components/Environment/CreatePCD/add_vehicle_object.gif deleted file mode 100644 index 8d3fef110..000000000 Binary files a/docs/Components/Environment/CreatePCD/add_vehicle_object.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/image_0.png b/docs/Components/Environment/CreatePCD/image_0.png deleted file mode 100644 index efa77941b..000000000 Binary files a/docs/Components/Environment/CreatePCD/image_0.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/image_1.png b/docs/Components/Environment/CreatePCD/image_1.png deleted file mode 100644 index b21ca149c..000000000 Binary files a/docs/Components/Environment/CreatePCD/image_1.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/image_2.png b/docs/Components/Environment/CreatePCD/image_2.png deleted file mode 100644 index 900594ab9..000000000 Binary files a/docs/Components/Environment/CreatePCD/image_2.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/image_3.png b/docs/Components/Environment/CreatePCD/image_3.png deleted file mode 100644 index bbfffba40..000000000 Binary files a/docs/Components/Environment/CreatePCD/image_3.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/image_4.png b/docs/Components/Environment/CreatePCD/image_4.png deleted file mode 100644 index b4ec49103..000000000 Binary files a/docs/Components/Environment/CreatePCD/image_4.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/image_5.png b/docs/Components/Environment/CreatePCD/image_5.png deleted file mode 100644 index 615c5c9b1..000000000 Binary files a/docs/Components/Environment/CreatePCD/image_5.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/image_6.png b/docs/Components/Environment/CreatePCD/image_6.png deleted file mode 100644 index 958c6cb2f..000000000 Binary files a/docs/Components/Environment/CreatePCD/image_6.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/index.md b/docs/Components/Environment/CreatePCD/index.md deleted file mode 100644 index 3af7b54b5..000000000 --- a/docs/Components/Environment/CreatePCD/index.md +++ /dev/null @@ -1,268 +0,0 @@ -# Create PCD - -!!! warning "This section" - This section is still under development! - - -## PointCloudMapper - - -### Description -`PointCloudMapper` is a tool for a vehicle based point cloud mapping in a simulation environment. -It is very useful when you need a point cloud based on some location, but don't have the possibility to physically map the real place. -Instead you can map the simulated environment. - -### Required Data -To properly perform the mapping, make sure you have the following files downloaded and configured: - -- *Lanelet2* format *OSM* data (`*.osm` file) -- 3D model map of the area - - !!! question "How to obtain a map" - You can obtain the 3D model of the area by using a `Environment` *prefab* prepared for *AWSIM* or by creating your own. - You can learn how to create you own `Environment` *prefab* in [this tutorial](../../Environment/AddNewEnvironment/AddEnvironment/). - -- Configured in-simulation vehicle object with sensors attached (only the [*LiDAR*](../../../Components/Sensors/LiDARSensor/AddNewLiDAR/) is necessary) - - - - !!! tip "Vehicle model" - For the sake of creating a *PCD* the *vehicle* model doesn't have to be accurate. - It will be just a carrier for *LiDAR*. - The model can even be a simple box as shown [earlier in this tutorial](#pointcloudmapper). - Make sure it is not visible to the *LiDAR*, so it does not break the sensor readings. - -## Import OSM -1. Drag and drop an *OSM* file into *Unity* project. - - ![move osm file](move_osm2.gif) - -1. OSM file will be imported as `OsmDataContainer`. - -## Setup an Environment -For mapping an `Environment` prefab is needed. -The easiest way is to create a new *Scene* and import the `Environment` *prefab* into it. -Details on how to do this can be found on [this tutorial page](../../Environment/AddNewEnvironment/AddEnvironment/). - -## Setup a Vehicle -Create a `Vehicle` *GameObject* in the *Hierarchy* view. - -![add vehicle object](add_vehicle_object.gif) - -### Add visual elements (optional) -Add vehicle model by adding a `Geometry` *Object* as a child of `Vehicle` and adding all visual elements as children. - -![vehicle add geometry](vehicle_geometry_add_object.gif) - -!!! info "Visual elements" - You can learn how to add visual elements and required components like *Mesh Filter* or *Mesh Renderer* in [this tutorial](../../Vehicle/AddNewVehicle/AddVisualElements/). - -### Add a Camera (optional) -Add a Camera component for enhanced visuals by adding a `Main Camera` *Object* as a child of `Vehicle` Object and attaching a `Camera` Component to it. - -1. Add a `Main Camera` *Object*. - - ![vehicle camera add object](vehicle_camera_add_object.gif) - -2. Add a `Camera` Component by clicking 'Add Component' button, searching for it and selecting it. - - ![vehicle camera add component](vehicle_camera_add_component.gif) - -3. Change the `Transform` for an even better visual experience. - - !!! note "Camera preview" - Observe how the *Camera* preview changes when adjusting the transformation. - - ![vehicle camera transform](vehicle_camera_transform.gif) - -### Setup Vehicle Sensors (RGL) -This part of the tutorial shows how to add a *LiDAR* sensor using [RGL](https://github.com/RobotecAI/RobotecGPULidar). - -!!! warning "RGL Scene Manager" - Please make sure that `RGLSceneManager` is added to the scene. - For more details and instruction how to do it please visit [this tutorial page](../../Sensors/LiDARSensor/RGLUnityPlugin/#scenemanager). - -1. Create an empty `Sensors` *GameObject* as a child of the `Vehicle` *Object*. - - ![add sensors object](point_cloud_mapping_add_sensors.gif) - -1. Create a `Lidar` *GameObject* as a child of the `Sensors` *Object*. - - ![add lidar object](point_cloud_mapping_add_lidar.gif) - -2. Attach *Lidar Sensor* (script) to previously created `Lidar` *Object* by clicking on the 'Add Component' button, searching for the script and selecting it. - - !!! note "Point Cloud Visualization" - Please note that *Point Cloud Visualization* (script) will be added automatically with the *Lidar Sensor* (script). - - ![add lidar sensor script](point_cloud_mapping_add_lidar_sensor_script.gif) - - ![lidar sensor search](lidar_sensor_search.png) - -3. Configure *LiDAR* pattern, e.g. by selecting one of the available presets. - - !!! example "Example Lidar Sensor configuration" - ![lidar sensor configuration example](lidar_sensor_configuration.png) - -4. Attach *RGL Mapping Adapter* (script) to previously created `Lidar` *Object* by clicking on the 'Add Component' button, searching for the script and selecting it. - - ![add rgl mapping adapter script](point_cloud_mapping_add_lidar_adapter_script.gif) - - ![rgl mapping adapter search](rgl_mapping_adapter_search.png) - -5. Configure `RGL Mapping Adapter` - e.g. set `Leaf Size` for filtering. - - !!! example "Example RGL Mapping Adapter configuration" - ![rgl mapping adapter configuration example](rgl_mapping_adapter_configuration.png) - -#### Effect of `Leaf Size` to Point Cloud Data (PCD) generation -A small `Leaf Size` could result in a noisy PCD, while a large `Leaf Size` could result in excessive filtering such that objects like buildings are not recorded in the PCD. - -In the following examples, it can be observed that when a `Leaf Size` is 1.0, point clouds exist on roads in which they shouldn't appear. -When a `Leaf Size` is 100.0, buildings are filtered out and results in an empty PCD. -A `Leaf Size` of 10.0 results in a reasonable PCD in the given example. - -| Leaf Size = 1.0 | Leaf Size = 10.0 | Leaf Size = 100.0 | -| --------------------------------- | --------------------------------- | --------------------------------- | -| | | | - -## Setup PointCloudMapper -1. Create a `PointCloudMapper` *GameObject* in the *Hierarchy* view. - - ![add point cloud mapper object](point_cloud_mapper_add_object2.gif) - -2. Attach `Point Cloud Mapper` script to previously created `Point Cloud Mapper` *Object* by clicking on the 'Add Component' button, searching for the script and selecting it. - - ![add point cloud mapper script](point_cloud_mapper_add_script.gif) - - ![point cloud mapper search](point_cloud_mapper_search.png) - -3. Configure the `Point Cloud Mapper` fields: - - - `Osm Container` - the OSM file you [imported earlier](#import-osm) - - `World Origin` - MGRS position of the origin of the scene - - !!! note "World Origin coordinate system" - Use [*ROS* coordinate system](../../Vehicle/AddNewVehicle/AddSensors/#coordinate-system-conversion) for *World Origin*, not Unity. - - - `Capture Location Interval` - Distance between consecutive capture points along lanelet centerline - - `Output Pcd File Path` - Output relative path from `Assets` folder - - `Target Vehicle` - The vehicle you want to use for point cloud capturing that you [created earlier](#setup-vehicle-sensors-rgl) - - !!! example "Example Point Cloud Mapper configuration" - ![point cloud mapper configuration example](point_cloud_mapper_configuration2.png) - -### Effect of `Capture Location Interval` to PCD generation - -If the `Capture Location Interval` is too small, it could result in a sparse PCD where some region of the map is captured well but the other regions aren't captured at all. - -In the below example, `Leaf Size` of 0.2 was used. Please note that using a different combination of `leaf size` and `Capture Location Interval` may result in a different PCD. - - -| Capture Location Interval = 6 | Capture Location Interval = 20 | Capture Location Interval = 100 | -| --------------------------------- | --------------------------------- | --------------------------------- | -| | | | - -## Capture and Generate PCD -If you play simulation with a scene prepared with the steps above, `PointCloudMapper` will automatically start mapping. -The vehicle will warp along centerlines by intervals of `CaptureLocationInterval` and capture point cloud data. -PCD file will be written when you stop your scene or all locations in the route are captured. - -If the Vehicle stops moving for longer and you see the following message in the bottom left corner - you can safely stop the scene. - -![pcd save success](pcd_save_success.png) - -The Point cloud `*.pcd` file is saved to the location you specified in the [Point Cloud Mapper](#setup-pointcloudmapper). - -### Convert the PCD -!!! info "Install required tools" - The tools required for PCD conversion can be installed on Ubuntu with the following command - - ```bash - sudo apt install pcl-tools - ``` - -The generated PCD file is typically too large. -Therefore you need to down-sample it. - -1. Change directory to the one you specified [earlier](#setup-pointcloudmapper). - - ``` - cd - ``` - -1. Down-sample the PCD `output.pcd` generated in simulation. - - ``` - pcl_voxel_grid downsampled.pcd -leaf 0.2 0.2 0.2 - ``` - -1. Convert the down-sampled file into an ASCII format. - - ``` - pcl_convert_pcd_ascii_binary downsampled.pcd final.pcd 0 - ``` - -1. The `final.pcd` is a ready to use point cloud file. - -## Verify the PCD -To verify your PCD you can launch the [*Autoware*](https://github.com/autowarefoundation/autoware) with the PCD file specified. - -1. Copy your PCD from the *AWSIM* project directory to the *Autoware* map directory. - - ``` - cp / - ``` - -1. Source the ROS and Autoware - - ``` - source /opt/ros/humble/setup.bash - source /install/setup.bash - ``` - -1. Launch the planning simulation with the map directory path (`map_path`) and PCD file (`pointcloud_map_file`) specified. - - !!! note "PCD file location" - The PCD file needs to be located in the Autoware map directory and as a `pointcloud_map_file` parameter you only supply the file name, not the path. - - !!! warning "Absolute path" - When launching *Autoware* never use `~/` to specify the home directory. - Either write the full absolute path ot use `$HOME` environmental variable. - - ``` - ros2 launch autoware_launch planning_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit map_path:= pointcloud_map_file:= - ``` - -2. Wait for the Autoware to finish loading and inspect the PCD visually given the [Effect of Leaf Size](#effect-of-leaf-size-to-point-cloud-data-pcd-generation) and [Effect of Capture Location Interval](#effect-of-capture-location-interval-to-pcd-generation). - - - -## Sample Scene -`PointCloudMapping.unity` is a sample scene for `PointCloudMapper` showcase. It requires setup of OSM data and 3D model map of the area according to the steps above. - -!!! example "Sample Mapping Scene" - In this example you can see a correctly configured Point Cloud Mapping Scene. - - diff --git a/docs/Components/Environment/CreatePCD/lidar_sensor_configuration.png b/docs/Components/Environment/CreatePCD/lidar_sensor_configuration.png deleted file mode 100644 index 19cd63931..000000000 Binary files a/docs/Components/Environment/CreatePCD/lidar_sensor_configuration.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/lidar_sensor_search.png b/docs/Components/Environment/CreatePCD/lidar_sensor_search.png deleted file mode 100644 index 22b63dd32..000000000 Binary files a/docs/Components/Environment/CreatePCD/lidar_sensor_search.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/move_osm.gif b/docs/Components/Environment/CreatePCD/move_osm.gif deleted file mode 100644 index 7b3ae7b9a..000000000 Binary files a/docs/Components/Environment/CreatePCD/move_osm.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/move_osm2.gif b/docs/Components/Environment/CreatePCD/move_osm2.gif deleted file mode 100644 index a358fa83c..000000000 Binary files a/docs/Components/Environment/CreatePCD/move_osm2.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/pcd_save_success.png b/docs/Components/Environment/CreatePCD/pcd_save_success.png deleted file mode 100644 index 715a9e221..000000000 Binary files a/docs/Components/Environment/CreatePCD/pcd_save_success.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapper_add_object2.gif b/docs/Components/Environment/CreatePCD/point_cloud_mapper_add_object2.gif deleted file mode 100644 index d4e3d0f08..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapper_add_object2.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapper_add_script.gif b/docs/Components/Environment/CreatePCD/point_cloud_mapper_add_script.gif deleted file mode 100644 index 0d5b696b6..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapper_add_script.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapper_configuration2.png b/docs/Components/Environment/CreatePCD/point_cloud_mapper_configuration2.png deleted file mode 100644 index 93f6b6d6b..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapper_configuration2.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapper_search.png b/docs/Components/Environment/CreatePCD/point_cloud_mapper_search.png deleted file mode 100644 index c46919c65..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapper_search.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar.gif b/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar.gif deleted file mode 100644 index 4ea21ad1e..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar_adapter_script.gif b/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar_adapter_script.gif deleted file mode 100644 index a76b625e8..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar_adapter_script.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar_sensor_script.gif b/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar_sensor_script.gif deleted file mode 100644 index fdd76dd9e..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_lidar_sensor_script.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_sensors.gif b/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_sensors.gif deleted file mode 100644 index 111da39a8..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapping_add_sensors.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_mapping_scene.mp4 b/docs/Components/Environment/CreatePCD/point_cloud_mapping_scene.mp4 deleted file mode 100644 index 8c8e8a303..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_mapping_scene.mp4 and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/point_cloud_matter_add_container.gif b/docs/Components/Environment/CreatePCD/point_cloud_matter_add_container.gif deleted file mode 100644 index 7f2c1b3b6..000000000 Binary files a/docs/Components/Environment/CreatePCD/point_cloud_matter_add_container.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/rgl_mapping_adapter_configuration.png b/docs/Components/Environment/CreatePCD/rgl_mapping_adapter_configuration.png deleted file mode 100644 index 1b605dba2..000000000 Binary files a/docs/Components/Environment/CreatePCD/rgl_mapping_adapter_configuration.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/rgl_mapping_adapter_search.png b/docs/Components/Environment/CreatePCD/rgl_mapping_adapter_search.png deleted file mode 100644 index dad4d9bfe..000000000 Binary files a/docs/Components/Environment/CreatePCD/rgl_mapping_adapter_search.png and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/vehicle_camera_add_component.gif b/docs/Components/Environment/CreatePCD/vehicle_camera_add_component.gif deleted file mode 100644 index df589ad7e..000000000 Binary files a/docs/Components/Environment/CreatePCD/vehicle_camera_add_component.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/vehicle_camera_add_object.gif b/docs/Components/Environment/CreatePCD/vehicle_camera_add_object.gif deleted file mode 100644 index 4980816f8..000000000 Binary files a/docs/Components/Environment/CreatePCD/vehicle_camera_add_object.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/vehicle_camera_transform.gif b/docs/Components/Environment/CreatePCD/vehicle_camera_transform.gif deleted file mode 100644 index 8697f174d..000000000 Binary files a/docs/Components/Environment/CreatePCD/vehicle_camera_transform.gif and /dev/null differ diff --git a/docs/Components/Environment/CreatePCD/vehicle_geometry_add_object.gif b/docs/Components/Environment/CreatePCD/vehicle_geometry_add_object.gif deleted file mode 100644 index 731c9f518..000000000 Binary files a/docs/Components/Environment/CreatePCD/vehicle_geometry_add_object.gif and /dev/null differ diff --git a/docs/Components/Environment/LaneletBoundsVisualizer/image_0.png b/docs/Components/Environment/LaneletBoundsVisualizer/image_0.png deleted file mode 100644 index 1db9ab6ed..000000000 Binary files a/docs/Components/Environment/LaneletBoundsVisualizer/image_0.png and /dev/null differ diff --git a/docs/Components/Environment/LaneletBoundsVisualizer/image_1.png b/docs/Components/Environment/LaneletBoundsVisualizer/image_1.png deleted file mode 100644 index 3c1715e52..000000000 Binary files a/docs/Components/Environment/LaneletBoundsVisualizer/image_1.png and /dev/null differ diff --git a/docs/Components/Environment/LaneletBoundsVisualizer/image_2.png b/docs/Components/Environment/LaneletBoundsVisualizer/image_2.png deleted file mode 100644 index 77f02c3a4..000000000 Binary files a/docs/Components/Environment/LaneletBoundsVisualizer/image_2.png and /dev/null differ diff --git a/docs/Components/Environment/LaneletBoundsVisualizer/image_3.png b/docs/Components/Environment/LaneletBoundsVisualizer/image_3.png deleted file mode 100644 index 2cd0bc95a..000000000 Binary files a/docs/Components/Environment/LaneletBoundsVisualizer/image_3.png and /dev/null differ diff --git a/docs/Components/Environment/LaneletBoundsVisualizer/image_4.png b/docs/Components/Environment/LaneletBoundsVisualizer/image_4.png deleted file mode 100644 index 8ac246abb..000000000 Binary files a/docs/Components/Environment/LaneletBoundsVisualizer/image_4.png and /dev/null differ diff --git a/docs/Components/Environment/LaneletBoundsVisualizer/image_5.png b/docs/Components/Environment/LaneletBoundsVisualizer/image_5.png deleted file mode 100644 index 765478103..000000000 Binary files a/docs/Components/Environment/LaneletBoundsVisualizer/image_5.png and /dev/null differ diff --git a/docs/Components/Environment/LaneletBoundsVisualizer/index.md b/docs/Components/Environment/LaneletBoundsVisualizer/index.md deleted file mode 100644 index cd9495f9b..000000000 --- a/docs/Components/Environment/LaneletBoundsVisualizer/index.md +++ /dev/null @@ -1,43 +0,0 @@ -# Lanelet Bounds Visualizer - -Lanelet Bounds Visualizer is an Unity Editor extension allowing the user to load the left and right bounds of Lanelet to the Unity scene. - -## Usage - -The lanelet bounds load process can be performed by opening `AWSIM -> Visualize -> Load Lanelet Bounds` at the top toolbar of Unity Editor. - - - -A window shown below will pop up. Select your `Osm Data Container` to specify which OSM data to load the Lanelet from. - - - -The user can select whether to load the raw Lanelet or to adjust the resolution of the Lanelet by specifying the waypoint settings. - -To load the raw Lanelet, simply click the `Load Raw Lanelet` button. - -If the user wishes to change the resolution of the Lanelet, adjust the parameters of the `Waypoint Settings` as described below, and click the `Load with Waypoint Settings` button. - -- `Resolution` : resolution of resampling. Lower values provide better accuracy at the cost of processing time. -- `Min Delta Length` : minimum length(m) between adjacent points. -- `Min Delta Angle` : minimum angle(deg) between adjacent edges. Lowering this value produces a smoother curve. - - -Once the Lanelet is successfully loaded, Lanelet bounds will be generated as a new GameObject named `LaneletBounds`. - -To visualize the `LaneletBounds`, make sure Gizmos is turned on and select the `LaneletBounds` GameObject. - - - -## Important Notes - -Generally speaking, visualizing Lanelet Bounds will result in a very laggy simulation. Therefore, it is recommended to hide the `LaneletBounds` GameObject when not used. The lag of the simulation becomes worse as you set the resolution of the Lanelet Bounds higher, so it is also recommended to set the resolution within a reasonable range. - -It is also important to note that no matter how high you set the resolution to be, it will not be any better than the original Lanelet (i.e. the raw data). Rather, the computational load will increase and the simulation will become more laggy. If the user wishes to get the highest quality of Lanelet Bounds, it is recommended to use the `Load Raw Lanelet` button. - -In short, `Waypoint Setting` parameters should be thought of as parameters to decrease the resolution from the original Lanelet to decrease the computational load and thus, reducing the lag of the simulation. - - -| Higher Resolution | Raw Lanelet | Lower Resolution | -| -------------------------------- | -------------------------------- | -------------------------------- | -| | | | diff --git a/docs/Components/Environment/SmokeSimulator/image_0.png b/docs/Components/Environment/SmokeSimulator/image_0.png deleted file mode 100644 index 6500dd9bb..000000000 Binary files a/docs/Components/Environment/SmokeSimulator/image_0.png and /dev/null differ diff --git a/docs/Components/Environment/SmokeSimulator/image_1.png b/docs/Components/Environment/SmokeSimulator/image_1.png deleted file mode 100644 index 0ad5c67f8..000000000 Binary files a/docs/Components/Environment/SmokeSimulator/image_1.png and /dev/null differ diff --git a/docs/Components/Environment/SmokeSimulator/image_2.png b/docs/Components/Environment/SmokeSimulator/image_2.png deleted file mode 100644 index d7a6a6225..000000000 Binary files a/docs/Components/Environment/SmokeSimulator/image_2.png and /dev/null differ diff --git a/docs/Components/Environment/SmokeSimulator/image_3.png b/docs/Components/Environment/SmokeSimulator/image_3.png deleted file mode 100644 index 1102ada04..000000000 Binary files a/docs/Components/Environment/SmokeSimulator/image_3.png and /dev/null differ diff --git a/docs/Components/Environment/SmokeSimulator/image_4.png b/docs/Components/Environment/SmokeSimulator/image_4.png deleted file mode 100644 index 5061e4546..000000000 Binary files a/docs/Components/Environment/SmokeSimulator/image_4.png and /dev/null differ diff --git a/docs/Components/Environment/SmokeSimulator/index.md b/docs/Components/Environment/SmokeSimulator/index.md deleted file mode 100644 index 1177f3155..000000000 --- a/docs/Components/Environment/SmokeSimulator/index.md +++ /dev/null @@ -1,50 +0,0 @@ -# Smoke Simulator - -Simulating smoke in AWSIM may be useful when one wants to simulate exhaust gases from vehicles, smoke from emergency flare, etc. - -In Unity, it is common to use Particle System to simulate smokes. -However, smoke simulated by Particle System cannot be sensed by RGL in AWSIM although in reality, smokes are detected by LiDAR. - -`Smoke Simulator` was developed to simulate smokes that can be detected by RGL in Unity. -`Smoke Simulator` works by instantiating many small cubic GameObjects called `Smoke Particles` and allows each particle to be detected by RGL. - -This document describes how to use the `Smoke Simulator`. - -## Setting Smoke Simulator - -1.Create an empty GameObject - -2.Attach `SmokeGenerator.cs` to the previously created GameObject. - - - -3.Adjust the parameters of the `SmokeGenerator` as described below: - -- `Max Particle`: Specifies the maximum number of particles created by the `Smoke Generator` -- `Particle Range Radius`: Specifies the radius of a circle, centered at the GameObject, which defines the region in which `Smoke Particles` are generated in -- `Particle Size`: Specifies the edge of a `Smoke Particle` -- `Average Lifetime`: Specifies the average lifetime of a `Smoke Particle` -- `Variation Lifetime`: Specifies the variation of lifetime of `Smoke Particles`. - - The lifetime of a `Smoke Particle` is calculated as follows: - - `lifetime` = `Average Lifetime` + Random.Range(-`Variation Lifetime`, `Variation Lifetime`) - -- `Physics`: These parameters can be adjusted to specify the behavior of the smoke particles. - - `Initial Plane Velocity`: Specifies the velocity of a `SmokeParticle` in the x-z plane - - `Initial Vertical Velocity`: Specifies the velocity of a `SmokeParticle` in the vertical direction - - `Plane Acceleration`: Specifies the acceleration of a `SmokeParticle` in the x-z plane - - `Vertical Acceleration`: Specifies the acceleration of a `SmokeParticle` in the vertical direction - - -4.(Optional): You may also specify the `Material` of `Smoke Particles`. If this field is unspecified, a default material is used - - - -## Example of Different Smokes -#### Thin Smoke - - -#### Heavy Smoke - - diff --git a/docs/Components/Environment/V2I/add_component.gif b/docs/Components/Environment/V2I/add_component.gif deleted file mode 100644 index 0c98c28ca..000000000 Binary files a/docs/Components/Environment/V2I/add_component.gif and /dev/null differ diff --git a/docs/Components/Environment/V2I/add_component_1.gif b/docs/Components/Environment/V2I/add_component_1.gif deleted file mode 100644 index 31aedfb20..000000000 Binary files a/docs/Components/Environment/V2I/add_component_1.gif and /dev/null differ diff --git a/docs/Components/Environment/V2I/add_component_2.gif b/docs/Components/Environment/V2I/add_component_2.gif deleted file mode 100644 index c242437a7..000000000 Binary files a/docs/Components/Environment/V2I/add_component_2.gif and /dev/null differ diff --git a/docs/Components/Environment/V2I/add_component_3.gif b/docs/Components/Environment/V2I/add_component_3.gif deleted file mode 100644 index e627ca521..000000000 Binary files a/docs/Components/Environment/V2I/add_component_3.gif and /dev/null differ diff --git a/docs/Components/Environment/V2I/add_prefab.gif b/docs/Components/Environment/V2I/add_prefab.gif deleted file mode 100644 index 036461e15..000000000 Binary files a/docs/Components/Environment/V2I/add_prefab.gif and /dev/null differ diff --git a/docs/Components/Environment/V2I/index.md b/docs/Components/Environment/V2I/index.md deleted file mode 100644 index 16db195ae..000000000 --- a/docs/Components/Environment/V2I/index.md +++ /dev/null @@ -1,52 +0,0 @@ -# V2I (Vehicle-to-Infrastructure) -`V2I` is a component that simulates V2I communication protocol which allows to exchange data between vehicles and road infrastructure. In the current version of AWSIM, the `V2I` component publishes information about traffic lights. - -## How to add V2I to the environment -### Assign Lanelet2 WayID and RelationID to TrafficLight object - -1. Load items from lanelet2 following [the instruction](../AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/index.md) - -2. Verify if `Traffic Light Lanelet ID` component has been added to `Traffic Light` game objects. -![verify traffic light lanelet id](verify_traffic_light_lanelet_id.png) - -1. Verify if `WayID` and `RelationID` has been correctly assigned. You can use [Vector Map Builder](https://tools.tier4.jp) as presented below -![verify lanelet ids](verify_lanelet_ids.png) - -### Add manually `Traffic Light Lanelet ID` component (alternatively) - -If for some reason, `Traffic Light Lanelet ID` component is not added to `Traffic Light` object. - -1. Add component manually - - ![add component 1](add_component_1.gif) - -2. Fill Way ID - - ![add component 2](add_component_2.gif) - -3. Fill Relation ID - - ![add component 3](add_component_3.gif) - -### Add V2I prefab - -![add prefab](add_prefab.gif) - -### Select EGO transform - -![select ego transform 1](select_ego_transform_1.png) -![select ego transform 2](select_ego_transform_2.gif) -![select ego transform 3](select_ego_transform_3.png) - -## Parameters - -Name | Type | Description -------------------------------- | --------- | ----------- -Output Hz | int | Topic publication frequency -Ego Vehicle Transform | transform | Ego Vehicle object transform -Ego Distance To Traffic Signals | double | Maximum distance between Traffic Light and Ego -Traffic Signal ID | enum | Possibility to select if as `traffic_signal_id` field in msg is `Relation ID` or `Way ID` -Traffic Signals Topic | string | Topic name - -!!! note - V2I feature can be used as Traffic Light ground truth information, and for that usage `Way ID` is supposed to be selected. \ No newline at end of file diff --git a/docs/Components/Environment/V2I/select_ego_transform_1.png b/docs/Components/Environment/V2I/select_ego_transform_1.png deleted file mode 100644 index 4a31d2c6e..000000000 Binary files a/docs/Components/Environment/V2I/select_ego_transform_1.png and /dev/null differ diff --git a/docs/Components/Environment/V2I/select_ego_transform_2.gif b/docs/Components/Environment/V2I/select_ego_transform_2.gif deleted file mode 100644 index 50ab828b9..000000000 Binary files a/docs/Components/Environment/V2I/select_ego_transform_2.gif and /dev/null differ diff --git a/docs/Components/Environment/V2I/select_ego_transform_3.png b/docs/Components/Environment/V2I/select_ego_transform_3.png deleted file mode 100644 index 45a153a1f..000000000 Binary files a/docs/Components/Environment/V2I/select_ego_transform_3.png and /dev/null differ diff --git a/docs/Components/Environment/V2I/verify_lanelet_ids.png b/docs/Components/Environment/V2I/verify_lanelet_ids.png deleted file mode 100644 index b1d1ce06d..000000000 Binary files a/docs/Components/Environment/V2I/verify_lanelet_ids.png and /dev/null differ diff --git a/docs/Components/Environment/V2I/verify_traffic_light_lanelet_id.png b/docs/Components/Environment/V2I/verify_traffic_light_lanelet_id.png deleted file mode 100644 index 14cea9c2a..000000000 Binary files a/docs/Components/Environment/V2I/verify_traffic_light_lanelet_id.png and /dev/null differ diff --git a/docs/Components/Sensors/GNSSSensor/components.png b/docs/Components/Sensors/GNSSSensor/components.png deleted file mode 100644 index 632481e56..000000000 Binary files a/docs/Components/Sensors/GNSSSensor/components.png and /dev/null differ diff --git a/docs/Components/Sensors/GNSSSensor/index.md b/docs/Components/Sensors/GNSSSensor/index.md deleted file mode 100644 index 4a8cb7b2e..000000000 --- a/docs/Components/Sensors/GNSSSensor/index.md +++ /dev/null @@ -1,84 +0,0 @@ -# GnssSensor - -## Introduction -`GnssSensor` is a component which simulates the position of vehicle computed by the *Global Navigation Satellite System* based on the transformation of the *GameObject* to which this component is attached. -The `GnssSensor` outputs the position in the [*MGRS*](https://www.maptools.com/tutorials/mgrs/quick_guide) coordinate system. - -### Prefab -Prefab can be found under the following path: - -``` -Assets/AWSIM/Prefabs/Sensors/GnssSensor.prefab -``` - - -### Link -`GnssSensor` has its own frame `gnss_link` in which its data is published. -The sensor prefab is added to this frame. -The `gnss_link` frame is added to the `sensor_kit_base_link` in the `base_link` object located in the `URDF`. - -![link](link.png) - -A detailed description of the `URDF` structure and sensors added to prefab `Lexus RX450h 2015` is available in this [section](../../../Components/Vehicle/URDFAndSensors/). - -### Components -![components](components.png) - -The `GnssSensor` functionality is split into two components: - -- *Gnss Sensor* (script) - it calculates the position as its *output* and calls the callback for it. -- *Gnss Ros2 Publisher* (script) - provides the ability to publish `GnssSensor` output as [`PoseStamped`](https://docs.ros2.org/latest/api/geometry_msgs/msg/PoseStamped.html) and [PoseWithCovarianceStamped](https://docs.ros2.org/latest/api/geometry_msgs/msg/PoseWithCovarianceStamped.html) published on a specific *ROS2* topics. - -Scripts can be found under the following path: - -``` -Assets/AWSIM/Prefabs/Sensors/Gnss/* -``` - -## Gnss Sensor (script) -![script](script.png) - -This is the main script in which all calculations are performed: - -1. the position of the *Object* in *Unity* is read, -2. this position is transformed to the *ROS2* coordinate system (*MGRS* offset is added here), -3. the result of the transformation is saved as the output of the component, -4. for the current output a `callback` is called (which can be assigned externally). - - -### Elements configurable from the editor level -- `Output Hz` - frequency of output calculation and callback (default: `100Hz`) - -### Output Data - -| Category | Type | Description | -| :--------: | :-----: | :---------------------------------------- | -| *Position* | Vector3 | Position in the *MGRS* coordinate system. | - - -## Gnss Ros2 Publisher (script) -![script_ros2](script_ros2.png) - -Converts the data output from `GnssSensor` to *ROS2* [`PoseStamped`](https://docs.ros2.org/latest/api/geometry_msgs/msg/PoseStamped.html) and [PoseWithCovarianceStamped](https://docs.ros2.org/latest/api/geometry_msgs/msg/PoseWithCovarianceStamped.html) messages. -These messages are published on two separate topics for each type. -The conversion and publication is performed using the `Publish(GnssSensor.OutputData outputData)` method, which is the `callback` triggered by *Gnss Sensor* (script) for the current output update. - -!!! warning "Covariance matrix" - The row-major representation of the 6x6 covariance matrix is filled with `0` and does not change during the script run. - -#### Elements configurable from the editor level -- `Pose Topic` - the *ROS2* topic on which the message [`PoseStamped`](https://docs.ros2.org/latest/api/geometry_msgs/msg/PoseStamped.html) type is published
(default: `"/sensing/gnss/pose"`) -- `Pose With Covariance Stamped Topic` - the *ROS2* topic on which the message [PoseWithCovarianceStamped](https://docs.ros2.org/latest/api/geometry_msgs/msg/PoseWithCovarianceStamped.html) type is published
(default: `"/sensing/gnss/pose_with_covariance"`) -- `Frame id` - frame in which data are published, used in [`Header`](https://docs.ros2.org/latest/api/std_msgs/msg/Header.html)
(default: `"gnss_link"`) -- `Qos Settings` - Quality of service profile used in the publication
(default is assumed as [`"system_default"`](https://docs.ros.org/en/humble/Concepts/About-Quality-of-Service-Settings.html): `Reliable`, `Volatile`, `Keep last`, `1`) - - -#### Published Topics -- Frequency: `1Hz` -- QoS: `Reliable`, `Volatile`, `Keep last/1` - -| Category | Topic | Message type | `frame_id` | -| :--------------------: | :----------------------------------- | :---------------------------------------------------------------------------------------------------------------------- | :---------: | -| *Pose* | `/sensing/gnss/pose` | [`geometry_msgs/Pose`](https://docs.ros2.org/latest/api/geometry_msgs/msg/Pose.html) | `gnss_link` | -| *Pose with Covariance* | `/sensing/gnss/pose_with_covariance` | [`geometry_msgs/PoseWithCovarianceStamped`](https://docs.ros2.org/latest/api/geometry_msgs/msg/PoseWithCovariance.html) | `gnss_link` | - diff --git a/docs/Components/Sensors/GNSSSensor/link.png b/docs/Components/Sensors/GNSSSensor/link.png deleted file mode 100644 index 464059e94..000000000 Binary files a/docs/Components/Sensors/GNSSSensor/link.png and /dev/null differ diff --git a/docs/Components/Sensors/GNSSSensor/script.png b/docs/Components/Sensors/GNSSSensor/script.png deleted file mode 100644 index 38432efb7..000000000 Binary files a/docs/Components/Sensors/GNSSSensor/script.png and /dev/null differ diff --git a/docs/Components/Sensors/GNSSSensor/script_ros2.png b/docs/Components/Sensors/GNSSSensor/script_ros2.png deleted file mode 100644 index 588b4ab30..000000000 Binary files a/docs/Components/Sensors/GNSSSensor/script_ros2.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/done.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/done.png deleted file mode 100644 index 4b670f799..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/done.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/AddPrefabLidar.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/AddPrefabLidar.png deleted file mode 100644 index ea596fe3b..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/AddPrefabLidar.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarConfiguration.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarConfiguration.png deleted file mode 100644 index b573a65f6..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarConfiguration.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarFocalDistanceParamter.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarFocalDistanceParamter.png deleted file mode 100644 index f447b1b54..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarFocalDistanceParamter.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarLaserArray.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarLaserArray.png deleted file mode 100644 index 8b50ea60b..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarLaserArray.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarOriginParameter.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarOriginParameter.png deleted file mode 100644 index 68e497fc3..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarOriginParameter.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarSceneDevelop.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarSceneDevelop.png deleted file mode 100644 index 2c4107bfe..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/LidarSceneDevelop.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/PrefabLidarObject.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/PrefabLidarObject.png deleted file mode 100644 index f8c050260..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/PrefabLidarObject.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/PublisherProp.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/PublisherProp.png deleted file mode 100644 index 7732ca2be..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/PublisherProp.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/RGLSceneManagerModes.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/RGLSceneManagerModes.png deleted file mode 100644 index 571caae2f..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/RGLSceneManagerModes.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/ReadableMeshSetting.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/ReadableMeshSetting.png deleted file mode 100644 index 56be05f03..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/ReadableMeshSetting.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/VisualizationProp.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/VisualizationProp.png deleted file mode 100644 index 9676aeb2b..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/img/VisualizationProp.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/index.md b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/index.md deleted file mode 100644 index 1ef90862e..000000000 --- a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/index.md +++ /dev/null @@ -1,117 +0,0 @@ -# Add a new LiDAR -`RGLUnityPlugin` (`RGL`) comes with a number of the most popular *LiDARs* model definitions and [ready-to-use prefabs](../../../../Components/Sensors/LiDARSensor/LiDARSensor/#prefabs). However, there is a way to create your custom *LiDAR*. This section describes how to add a new *LiDAR* model that works with `RGL`, then create a prefab for it and add it to the scene. - -!!! warning "Supported LiDARs" - Not all lidar types are supported by `RGL`. Unfortunately, in the case of `MEMs` *LiDARs*, there is a non-repetitive phenomenon - for this reason, the current implementation is not able to reproduce their work. - -## 1. Add a new LiDAR model -The example shows the addition of a *LiDAR* named `NewLidarModel`. - -To add a new *LiDAR* model, perform the following steps: - -1. Navigate to `Assets/RGLUnityPlugin/Scripts/LidarModels`. - -1. Add its name to the `LidarModels.cs` at the end of the enumeration. The order of enums must not be changed to keep existing prefabs working. - - ![lidar_models](lidar_models.png) - -1. Now, it is time to define the laser (also called a channel) distribution of the *LiDAR*. - - !!! info - If your *LiDAR*: - - - has a uniform laser distribution - - has the equal range for all of the lasers - - fire all of the rays (beams) at the same time - - You can skip this step and use our helper method to generate a simple uniform laser array definition (more information in the next step). - - 1. Laser distribution is represented by `LaserArray` consists of: - - `centerOfMeasurementLinearOffsetMm` - 3D translation from the game object's origin to *LiDAR's* origin. Preview in 2D: - - - - - `focalDistanceMm` - Distance from the sensor center to the focal point where all laser beams intersect. - - - - - `lasers` - array of lasers (channels) with a number of parameters: - - - `horizontalAngularOffsetDeg` - horizontal angle offset of the laser (Azimuth) - - `verticalAngularOffsetDeg` - vertical angle offset of the laser (Elevation) - - `verticalLinearOffsetMm` - vertical offset of the laser (translation from origin) - - `ringId` - Id of the ring (in most cases laser Id) - - `timeOffset` - time offset of the laser firing in milliseconds (with reference to the first laser in the array) - - `minRange` - minimum range of the laser (set if lasers have different ranges) - - `maxRange` - maximum range of the laser (set if lasers have different ranges) - - 1. To define a new laser distribution create a new entry to the `LaserArrayLibrary.cs` - - ![lidar_array](img/LidarLaserArray.png) - - 1. Add a new public static instance of `LaserArray` with the definition. - - 1. Add a new item to the `ByModel` dictionary that collects *LiDAR* model enumerations with their laser array definitions. - - In this example, `NewLidarModel` laser distribution consists of 5 lasers with - - - elevations: 15, 10, 0, -10, -15 degrees - - azimuths: 1.4, -1.4, 1.4, -1.4, 1.4 degrees - - ring Ids: 1, 2, 3, 4, 5 - - time offsets: 0, 0.01, 0.02, 0.03, 0.04 milliseconds - - an equal range that will be defined later - - !!! warning "Coordinate system" - Keep in mind that *Unity* has a left-handed coordinate system, while most of the *LiDAR's* manuals use a right-handed coordinate system. In that case, reverse sign of the values of the angles. - -1. The last step is to create a *LiDAR* configuration by adding an entry to `LidarConfigurationLibrary.cs` - - ![lidar_configuration](img/LidarConfiguration.png) - - 1. Add a new public static instance of `LidarConfiguration` with the definition: - - - `laserArray` - laser distribution array created in the previous step (it could be also generated uniformly with `LaserArray.Uniform()`) - - `horizontalResolution` - horizontal resolution of laser array firings in degrees (laser array will be rotated according to this resolution) - - `laserArrayCycleTime` - time between two consecutive firings of the whole laser array in milliseconds. Usually, it consists of firing time for all the lasers and recharge time. Skip this parameter if all of the rays are fired at the same time. - - `minHAngle` - minimum horizontal angle of the *LiDAR* - - `maxHAngle` - maximum horizontal angle of the *LiDAR* - - `noiseParams` - *LiDAR* noise parameters (see `LidarNoiseParams.cs` for more details) - - `rayGenerateMethod` - if *LiDAR* has equal range for all of the lasers choose `RotatingLidarEqualRange` and configure `minRange` and `maxRange` in the `LidarConfiguration`. Otherwise, choose `RotatingLidarDifferentLaserRanges` and define ranges in `LaserArray`. - - `minRange` - minimum range of the sensor (applied when `Ray Generate Method` is `Rotating Lidar Equal Range`) - - `maxRange` - maximum range of the sensor (applied when `Ray Generate Method` is `Rotating Lidar Equal Range`) - - 1. Add a new item to the `ByModel` dictionary that collects *LiDAR* model enumerations with their *LiDAR* configurations. - -1. Done. New *LiDAR* preset should be available via *Unity Inspector*. - - ![done](done.png) - - Frame rate of the *LiDAR* can be set in the `Automatic Capture Hz` parameter. - - *Note: In the real-world LiDARs, frame rate affects horizontal resolution. Current implementation separates these two parameters. Keep in mind to change it manually.* - -## 2. Create new LiDAR prefab - -1. Create an empty object and name it appropriately according to the *LiDAR* model. -1. Attach script `LidarSensor.cs` to created object. -1. Set the new added *LiDAR* model in `Model Preset` field, check if the configuration loads correctly. You can now customize it however you like. -1. (Optional) Attach script `PointCloudVisualization.cs` for visualization purposes. -1. For publishing point cloud via *ROS2* attach script `RglLidarPublisher.cs` script to created object. -1. Set the topics on which you want the data to be published and their frame. -2. Save the prefab in the project. - -## 3. Test your prefab - -1. Create a new scene (remember to add the [`SceneManager`](../../../../Components/Sensors/LiDARSensor/RGLUnityPlugin/#scenemanager)) or use one of [the existing sample scenes](../../../../ProjectGuide/Scenes/#rgl-test-scenes). -1. Add the prepared *LiDAR* prefab by drag the prefab file and drop it into a scene. - - - -1. A *LiDAR* *GameObject* should be instantiated automatically - - - -1. Now you can run the scene and check how your *LiDAR* works. - -!!! success - We encourage you to develop a vehicle using the new *LiDAR* you have added - learn how to do this [here](../../../../Components/Vehicle/AddNewVehicle/AddAVehicle/). diff --git a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/lidar_models.png b/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/lidar_models.png deleted file mode 100644 index f9693de3b..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/AddNewLiDAR/lidar_models.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/InstanceSegDictMapping.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/InstanceSegDictMapping.png deleted file mode 100644 index e32f51044..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/InstanceSegDictMapping.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/InstanceSegOutput.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/InstanceSegOutput.png deleted file mode 100644 index e30387eb8..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/InstanceSegOutput.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/LidarVisualizationOnScene.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/LidarVisualizationOnScene.png deleted file mode 100644 index 80366d4b6..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/LidarVisualizationOnScene.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/bandwidth.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/bandwidth.png deleted file mode 100644 index 1730f74b8..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/bandwidth.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/components.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/components.png deleted file mode 100644 index 468ae5c57..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/components.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/at128e2x.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/at128e2x.png deleted file mode 100644 index 584af9ff9..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/at128e2x.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/os1-64.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/os1-64.png deleted file mode 100644 index 0e23e4324..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/os1-64.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandar40p.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandar40p.png deleted file mode 100644 index e3cf046fd..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandar40p.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandarqt.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandarqt.png deleted file mode 100644 index e87a10fda..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandarqt.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandarxt32.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandarxt32.png deleted file mode 100644 index c911f3f7a..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/pandarxt32.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vlp16.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vlp16.png deleted file mode 100644 index ea6252e2e..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vlp16.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vlp32.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vlp32.png deleted file mode 100644 index a67ed7684..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vlp32.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vls128.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vls128.png deleted file mode 100644 index 3f70eb92a..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/imgs_prefabs/vls128.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/index.md b/docs/Components/Sensors/LiDARSensor/LiDARSensor/index.md deleted file mode 100644 index c8a1812a8..000000000 --- a/docs/Components/Sensors/LiDARSensor/LiDARSensor/index.md +++ /dev/null @@ -1,233 +0,0 @@ -# LidarSensor - -## Introduction -`LidarSensor` is the component that simulates the *LiDAR* (*Light Detection and Ranging*) sensor. -*LiDAR* works by emitting laser beams that bounce off objects in the environment, and then measuring the time it takes for the reflected beams to return, allowing the sensor to create a *3D* map of the surroundings. -This data is used for object detection, localization, and mapping. - -*LiDAR* in an autonomous vehicle can be used for many purposes. -The ones mounted on the top of autonomous vehicles are primarily used - -- to scan the environment for localization in space -- to detect and identify obstacles such as approaching vehicles, pedestrians or other objects in the driving path. - -*LiDARs* placed on the left and right sides of the vehicle are mainly used to monitor the traffic lane and detect vehicles moving in adjacent lanes, enabling safe maneuvers such as lane changing or turning. - -`LidarSensor` component is a part of [`RGLUnityPlugin`](../RGLUnityPlugin/) that integrates the external [*RobotecGPULidar*](https://github.com/RobotecAI/RobotecGPULidar) (`RGL`) library with *Unity*. `RGL` also allows to provide additional information about objects, more about it [here](#read-material-information). - -!!! warning "Use RGL in your scene" - If you want to use `RGL` in your scene, make sure the scene has an [`SceneManager` component](../RGLUnityPlugin/#scenemanager) added and all objects meet the [usage requirements](../RGLUnityPlugin/#usage-requirements). - -!!! note "RGL default scenes" - If you would like to see how `LidarSensor` works using `RGL` or run some tests, we encourage you to familiarize yourself with the [`RGL` test scenes section](../../../../ProjectGuide/Scenes/#rgl-test-scenes). - -!!! note "Supported *LiDARs*" - The current scripts implementation allows you to configure the prefab for any mechanical *LiDAR*. - You can read about how to do it [here](../AddNewLiDAR/). - *MEMS-based LiDARs* due to their different design are not yet fully supported. - -### Prefabs -Prefabs can be found under the following path: - -``` -Assets/AWSIM/Prefabs/RobotecGPULidars/* -``` - -The table of available prefabs can be found below: - -| LiDAR | Path | Appearance | -| :-------------------- | :----------------------- | :------------------------------------------------ | -| *HESAI Pandar40P* | `HesaiPandar40P.prefab` | | -| *HESAI PandarQT64* | `HesaiPandarQT64.prefab` | | -| *HESAI PandarXT32* | `HesaiPandarXT32.prefab` | | -| *HESAI AT128 E2X* | `HesaiAT128E2X.prefab` | | -| *Ouster OS1-64* | `OusterOS1-64.prefab` | | -| *Velodyne VLP-16* | `VelodyneVLP16.prefab` | | -| *Velodyne VLC-32C* | `VelodyneVLP32C.prefab` | | -| *Velodyne VLS-128-AP* | `VelodyneVLS128.prefab` | | - -### Link in the default Scene -![link](link.png) - -`LidarSensor` is configured in default vehicle `EgoVehicle` prefab. -It is added to `URDF` object as a child of `sensor_kit_base_link`. -`LidarSensor` placed in this way does not have its own frame, and the data is published relative to `sensor_kit_base_link`. -More details about the location of the sensors in the vehicle can be found [here](../../../../Components/Vehicle/URDFAndSensors/). - -A detailed description of the `URDF` structure and sensors added to prefab `Lexus RX450h 2015` is available in this [section](../../../../Components/Vehicle/URDFAndSensors/). - -!!! warning "Additional LiDARs" - For a *LiDAR* placed on the left side, right side or rear, an additional link should be defined. - -### Components and Resources -![components](components.png) - -The *LiDAR* sensor simulation functionality is split into three components: - -- *Lidar Sensor* (script) - provides lidar configuration, creates *RGL* pipeline to simulate lidar, and performs native *RGL* raytrace calls, -- *Rgl Lidar Publisher* (script) - extends *RGL* pipeline with nodes to publish *ROS2* messages. -- *Point Cloud Visualization* (script) - visualizes point cloud collected by sensor. - -Moreover, the scripts use `Resources` to provide configuration for prefabs of supported lidar models: - -- *LaserModels* - provides a list of supported models, -- *LaserArrayLibrary* - provides data related to laser array construction for supported models, -- *LaserConfigurationLibrary* - provides full configuration, with ranges and noise for supported models. - -These are elements of the `RGLUnityPlugin`, you can read more [here](../RGLUnityPlugin/). - -## Lidar Sensor (script) -![script](script.png) - -This is the main component that creates the `RGL` node pipeline for the *LiDAR* simulation. -The pipeline consists of: - -- setting ray pattern, -- transforming rays to represent pose of the sensor on the scene, -- applying *Gaussian* noise, -- performing raytracing, -- removing non-hits from the result point cloud, -- transforming point cloud to sensor frame coordinate system. - -`LidarSensor` provides public methods to extend this pipeline with additional `RGL` nodes. -In this way, other components can request point cloud processing operations and receive data in the desired format. - -`LidarSensor` component in the output provides 3 types of data. -Two of them: *rosPCL24* and *rosPCL48* are point clouds that are published by the [*RglLidarPublisher*](#rgl-lidar-publisher-script) component. -Whereas vector *onlyHits* is used for visualization by the [*PointCloudVisualization*](#point-cloud-visualization-script) component. - -#### Elements configurable from the editor level -- `Automatic Capture Hz` - the rate of sensor processing (default: `10Hz`) -- `Model Preset` - allows selecting one of the built-in *LiDAR* models (default: `RangeMeter`) -- `Apply Distance Gaussian Noise` - enable/disable distance *Gaussian* noise (default: `true`) -- `Apply Angular Gaussian Noise` - enable/disable angular *Gaussian* noise (default: `true`) -- `Apply Velocity Distortion` - enable/disable velocity distortion (default: `false`) -- *Configuration*: - - `Ray Generate Method` - method that lidar's rays are generated: - 1. `Rotating Lidar Equal Range` - rays are generated for rotating lidar with equal range for all of the lasers (described with `Min Range` and `Max Range`) - 2. `Rotating Lidar Different Laser Ranges` - rays are generated for rotating lidar with different ranges for the lasers (described in `Laser Array`) - 3. `Hesai AT128` - rays are generated in specific way to Hesai AT128 lidar - - `Laser Array` - geometry description of lidar's array of lasers, should be prepared on the basis of the manual for a given model of *LiDAR* (default: loaded from `LaserArrayLibrary`) - - `Horizontal Resolution` - the horiontal resolution of laser array firings - - `Min H Angle` - minimum horizontal angle, left (default: `0`) - - `Max H Angle` - maximum horizontal angle, right (default: `0`) - - `Min Range` - minimum range of the sensor (applied when `Ray Generate Method` is `Rotating Lidar Equal Range`) - - `Max Range` - maximum range of the sensor (applied when `Ray Generate Method` is `Rotating Lidar Equal Range`) - - *Noise Params*: - - `Angular Noise Type` - angular noise type
(default: `Ray Based`) - - `Angular Noise St Dev` - angular noise standard deviation in degree
(default: `0.05729578`) - - `Angular Noise Mean` - angular noise mean in degrees
(default: `0`) - - `Distance Noise St Dev Base` - distance noise standard deviation base in meters
(default: `0.02`) - - `Distance Noise Rise Per Meter` - distance noise standard deviation rise per meter
(default: `0`) - - `Distance Noise Mean` - distance noise mean in meters
(default: `0`) - -#### Output Data -| Category | Type | Description | -| :--------: | :--------: | :---------------------------------------------------------------------------------------- | -| *onlyHits* | Vector3[ ] | Vertices for visualization in *Unity's* coordinate system | -| *rosPCL24* | byte[ ] | Vertices for publishing *Autoware* format pointcloud in *ROS2* coordinate system | -| *rosPCL48* | byte[ ] | Vertices for publishing extended *Autoware* format pointcloud in *ROS2* coordinate system | - -## Rgl Lidar Publisher (script) -![script_ros2](script_ros2.png) - -`RglLidarPublisher` extends the main `RGL` pipeline created in `LidarSensor` with `RGL` nodes that produce point clouds in specific format and publish them to the *ROS2* topic. -Thanks to the *ROS2* integration with `RGL`, point clouds can be published directly from the native library. -`RGL` creates *ROS2* node named `/RobotecGPULidar` with publishers generated by `RGL` nodes. - -Currently, `RglLidarPublisher` implements two ROS2 publishers: - -- *rosPCL24* - a 24-byte point cloud format used by *Autoware* -- *rosPCL48* - a 48-byte extended version point cloud format used by *Autoware* - -Details on the construction of these formats are available in the `PointCloudFormats` under the following path: - -``` -Assets/AWSIM/Scripts/Sensors/LiDAR/PointCloudFormats.cs -``` - -!!! note "*rosPCL48* format" - For a better understanding of the *rosPCL48* format, we encourage you to familiarize yourself with the point cloud pre-processing process in *Autoware*, which is described [here](https://autowarefoundation.github.io/autoware-documentation/latest/design/autoware-architecture/sensing/data-types/point-cloud/#channel). - -#### Elements configurable from the editor level -- `Pcl 24 Topic` - the *ROS2* topic on which the [`PointCloud2`][pointcloud2] message is published
(default: `"lidar/pointcloud"`) -- `Pcl 48 Topic` - the *ROS2* topic on which the [`PointCloud2`][pointcloud2] message is published
(default: `"lidar/pointcloud_ex"`) -- `Frame ID` - frame in which data are published, used in [`Header`](https://docs.ros2.org/latest/api/std_msgs/msg/Header.html) (default: `"world"`) -- `Publish PCL24` - if publish cloud *PCL24* (default: `true`) -- `Publish PCL48` - if publish cloud *PCL48* (default: `true`) -- `Qos Settings` - Quality of service profile used in the publication
(default: `Best effort`, `Volatile`, `Keep last`, `5`) - -#### Published Topics -- Frequency: `10Hz` -- QoS: `Best effort`, `Volatile`, `Keep last/5` - -| Category | Topic | Message type | `frame_id` | -| :-----------------------: | :--------------------- | :--------------------------------------- | :--------: | -| PointCloud 24-byte format | `/lidar/pointcloud` | [`sensor_msgs/PointCloud2`][pointcloud2] | `world` | -| PointCloud 48-byte format | `/lidar/pointcloud_ex` | [`sensor_msgs/PointCloud2`][pointcloud2] | `world` | - -## Point Cloud Visualization (script) -![script_visualization](script_visualization.png) - -A component visualizing a point cloud obtained from `RGL` in the form of a [`Vector3`](https://docs.unity3d.com/ScriptReference/Vector3.html) list as colored points in the *Unity* scene. -Based on the defined color table, it colors the points depending on the height at which they are located. - -The obtained points are displayed as the vertices of mesh, and their coloring is possible thanks to the use of `PointCloudMaterial` material which can be found in the following path: - -``` -Assets/RGLUnityPlugin/Resources/PointCloudMaterial.mat -``` - -`Point Cloud Visualization` preview: - - - -### Elements configurable from the editor level -- `Point Shape` - the shape of the displayed points (default: `Box`) -- `Point Size` - the size of the displayed points (default: `0.05`) -- `Colors` - color list used depending on height
(default: `6` colors: `red, orange, yellow, green, blue, violet`) -- `Auto Compute Coloring Heights` - automatic calculation of heights limits for a list of colors (default: `false`) -- `Min Coloring Height` - minimum height value from which color matching is performed, below this value all points have the first color from the list (default: `0`) -- `Max Coloring Height` - maximum height value from which color matching is performed, above this value all points have the last color from the list (default: `20`) - -[pointcloud2]: https://docs.ros2.org/latest/api/sensor_msgs/msg/PointCloud2.html - - - -## Read material information - -To ensure the publication of the information described in this section, *GameObjects* must be adjusted accordingly. [This](../ReadMaterialInformation/) tutorial describes how to do it. - -### Intensity Texture - -`RGL Unity Plugin` allows assigning an `Intensity Texture` to the *GameObjects* to produce a point cloud containing information about the lidar ray intensity of hit. It can be used to distinguish different levels of an object's reflectivity. - -#### Output data - -Point cloud containing intensity is published on the *ROS2* topic via `RglLidarPublisher` component. The intensity value is stored in the `intensity` field of the `sensor_msgs/PointCloud2` message. - -### Instance segmentation -`RGL Unity Plugin` allows assigning an ID to *GameObjects* to produce a point cloud containing information about hit objects. It can be used for instance/semantic segmentation tasks. - -!!! note "LidarInstanceSegmentationDemo" - If you would like to see how `LidarInstanceSegmentationDemo` works using `RGL` or run some tests, we encourage you to familiarize yourself with this [section](../../../../ProjectGuide/Scenes/#rgl-test-scenes). - -#### Output data - -Point cloud containing hit objects *IDs* is published on the *ROS2* topic via `RglLidarPublisher` component. It is disabled by default. Properties related to this feature are marked below: - - - -#### Dictionary mapping - -The resulting simulation data contains only the id of objects without their human-readable names. To facilitate the interpretation of such data, a function has been implemented to save a file with a dictionary mapping instance ID to *GameObject* names. It writes pairs of values in the `yaml` format: - -- The name of the *GameObject* -- Category ID of `SemanticCategory` component - -To enable saving dictionary mapping set output file path to the `Semantic Category Dictionary File` property in the `Scene Manager` component: - - - -The dictionary mapping file will be saved at the end of the simulation. - diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/lidar_meshes.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/lidar_meshes.png deleted file mode 100644 index 3898eec42..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/lidar_meshes.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/link.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/link.png deleted file mode 100644 index ce39cacfa..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/link.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/script.png deleted file mode 100644 index 6af404caa..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script_ros2.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/script_ros2.png deleted file mode 100644 index 5b67c45ff..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script_ros2.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script_visualization.png b/docs/Components/Sensors/LiDARSensor/LiDARSensor/script_visualization.png deleted file mode 100644 index da95f947e..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/LiDARSensor/script_visualization.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md b/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md deleted file mode 100644 index 6ab7b0711..000000000 --- a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md +++ /dev/null @@ -1,116 +0,0 @@ -# RGLUnityPlugin -[*Robotec GPU Lidar*](https://github.com/RobotecAI/RobotecGPULidar) (`RGL`) is an open source high performance lidar simulator running on *CUDA*-enabled *GPUs*. -It is a cross-platform solution compatible with both *Windows* and *Linux* operating systems. -`RGL` utilizes `RTX` cores for acceleration, whenever they are accessible. - -`RGL` is used in *AWSIM* for performance reasons. -Thanks to it, it is possible to perform a large number of calculations using the *GPU*, which is extremely helpful due to the size of the scenes. -*AWSIM* is integrated with `RGL` out-of-the-box - using `RGLUnityPlugin` asset. - -!!! warning - If you want to use `RGL` in your scene, make sure the scene has an [`RGLSceneManager` component](#scenemanager) added and all objects meet the [usage requirements](#usage-requirements). - -## Concept -Describing the concept of using `RGL` in *AWSIM*, we distinguish: - -- *Mesh* - a handle to the *on-GPU* data of the *3D* model of objects that in *AWSIM* are provided in the form of [Mesh Filter](https://docs.unity3d.com/Manual/class-MeshFilter.html) component. -`RGLUnityPlugin` supports two types of meshes: static (rendered by [Mesh Renderer](https://docs.unity3d.com/ScriptReference/MeshRenderer.html)) and animated (rendered by [Skinned Mesh Renderer](https://docs.unity3d.com/ScriptReference/SkinnedMeshRenderer.html)). -Static meshes could be shared between Entities. - -- *Entity* - represents a *3D* object on the scene with its position and rotation. -It consists of a lightweight reference to a *Mesh* and a transformation matrix of the object. - -- *Scene* - a location where raytracing occurs. -It is a set of entites uploaded by `SceneManager` script to the RGL Native Library. - -- *Node* - performs specific operations such as setting rays for raytracing, transforming rays, performing raytracing, and manipulating output formats. -In *AWSIM*, the main sequence of `RGL` nodes that simulates *LiDAR* is created in the `LidarSensor` script. -Other scripts usually create nodes to get requested output or preprocess point cloud, and then connect those nodes to the `LidarSensor`. - -- *Graph* - a collection of connected *Nodes* that can be run to calculate results. -It allows users to customize functionality and output format by adding or removing *Nodes*. - -Producing a point cloud is based on the use of a *Scene* containing *Entities* with *Meshes*, and placing an *Ego* *Entity* with *LiDAR* sensor that creates a *Graph* describing ray pattern and performing raytracing. -In subsequent frames of the simulation, `SceneManager` synchronizes the scene between *Unity* and `RGL`, and *LiDAR* sensor updates rays pose on the scene and triggers *Graph* to perform raytracing and format desired output. - -## Package structure -`RGLUnityPlugin` asset contains: - -- *Plugins* - dynamically loaded libraries for *Windows* and *Linux* (`*.dll` and `*.so` files). -- *Resources* - visualization shader and material. -- *Scripts* - scripts for using `RGL` in the *Unity* - details below. - -### Scripts -- `SceneManager` - responsible for syncing the scene between *Unity* and `RGL`. -- `LidarSensor` - provide lidar configuration and create `RGL` pipeline to simulate lidar. -- `PointCloudVisualization` - visualize point cloud on the *Unity* scene. -- `IntensityTexture` - adds slot for `Intensity Texture ID` to the *GameObject* -- `SemanticCategory` - adds category ID to the *GameObject* -- `RGLDebugger` - provides configuration for Native `RGL` debug tools (logging and tape). -- A set of classes providing tools to define *LiDAR* specification (mostly: ray poses): - - `LidarModels` - enumeration of some real-world *LiDARs* names. - - `LidarConfiguration` - top-level configuration class, horizontal ranges, distance range, laser array. - - `LidarConfigurationLibrary` - provides a number of pre-defined `LidarConfigurations`. - - `LaserArray` - definition of a (vertical) array of lasers. - - `LaserArrayLibrary` - provides a number of pre-defined `LaserArrays`. - - `Laser` - describes offsets of a single laser within a `LaserArray`. - - `LidarNoiseParams` - describes a LiDAR noise that can be simulated -- `LowLevelWrappers` scripts - provides some convenience code to call Native `RGL` functions. -- `Utilities` scripts - miscellaneous utilities to make rest of the code clearer. - -## SceneManager -Each scene needs `SceneManager` component to synchronize models between *Unity* and `RGL`. -On every frame, it detects changes in the *Unity's* scene and propagates the changes to native `RGL` code. -When necessary, it obtains *3D* models from *GameObjects* on the scene, and when they are no longer needed, it removes them. - -Three different strategies to interact with in-simulation *3D* models are implemented. -`SceneManager` uses one of the following policies to construct the scene in `RGL`: - -- `Only Colliders` - data is computed based on the colliders only, which are geometrical primitives or simplified *Meshes*. -This is the fastest option, but will produce less accurate results, especially for the animated entities. -- `Regular Meshes And Colliders Instead Of Skinned` - data is computed based on the regular meshes for static *Entities* (with [`MeshRenderers`](https://docs.unity3d.com/Manual/class-MeshRenderer.html) component) and the colliders for animated *Entities* (with [`SkinnedMeshRenderer`](https://docs.unity3d.com/Manual/class-SkinnedMeshRenderer.html) component). -This improves accuracy for static *Entities* with a negligible additional performance cost. -- `Regular Meshes And Skinned Meshes` - uses regular meshes for both static and animated *Entities*. -This incurs additional performance, but produces the most realistic results. - -| Mesh Source Strategy | Static *Entity* | Animated *Entity* (NPC) | -| ------------------------------------------------- | --------------- | ----------------------- | -| `Only Colliders` | Collider | Collider | -| `Regular Meshes And Colliders Instead Of Skinned` | Regular Mesh | Collider | -| `Regular Meshes And Skinned Meshes` | Regular Mesh | Regular Mesh | - -Mesh source can be changed in the `SceneManager` script properties: - - - -!!! warning "Performance" - `SceneManager` performance depends on mesh source option selected. - -### Usage requirements -Objects, to be detectable by `RGL`, must fulfill the following requirements: - -1. Contain one of the components: [`Collider`](https://docs.unity3d.com/ScriptReference/Collider.html), [`Mesh Renderer`](https://docs.unity3d.com/Manual/class-MeshRenderer.html), or [`Skinned Mesh Renderer`](https://docs.unity3d.com/Manual/class-SkinnedMeshRenderer.html) - it depends on `SceneManager` mesh source parameter. -2. Be readable from *CPU*-accessible memory - it can be achieved using the `Read/Write Enabled` checkbox in mesh settings. - - !!! note "Readable objects" - [Primitive Objects](https://docs.unity3d.com/Manual/PrimitiveObjects.html) are readable by default. - - !!! example - The activated *Readable* option in the mesh should look like this. - - - - diff --git a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/readable.png b/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/readable.png deleted file mode 100644 index 56be05f03..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/readable.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/scene_manager.png b/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/scene_manager.png deleted file mode 100644 index 571caae2f..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/scene_manager.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/scene_manager_.png b/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/scene_manager_.png deleted file mode 100644 index 162ad6421..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/RGLUnityPlugin/scene_manager_.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegDictMapping.png b/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegDictMapping.png deleted file mode 100644 index e32f51044..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegDictMapping.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample1.png b/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample1.png deleted file mode 100644 index 1b555d219..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample1.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample2.png b/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample2.png deleted file mode 100644 index 07dbad626..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample2.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample3.png b/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample3.png deleted file mode 100644 index aa3619498..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/InstanceSegExample3.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/IntensityTextureProperties.png b/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/IntensityTextureProperties.png deleted file mode 100644 index e8e2e412b..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/IntensityTextureProperties.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/IntensityTextureSlot.png b/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/IntensityTextureSlot.png deleted file mode 100644 index ccb99f923..000000000 Binary files a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/IntensityTextureSlot.png and /dev/null differ diff --git a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/index.md b/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/index.md deleted file mode 100644 index 971801503..000000000 --- a/docs/Components/Sensors/LiDARSensor/ReadMaterialInformation/index.md +++ /dev/null @@ -1,53 +0,0 @@ -`RGL Unity Plugin` allows to: - -- assigning an `Intensity Texture` to the *GameObjects* to produce a point cloud containing information about the lidar ray intensity of hit. It can be used to distinguish different levels of an object's reflectivity. -- assigning an ID to *GameObjects* to produce a point cloud containing information about hit objects. It can be used for instance/semantic segmentation tasks. -Below describes how to ensure the publication of this information. - -## Add Intensity Texture assignment - -To enable reading material information, add `IntensityTexture` component to every `GameObject` that is expected to have non-default intensity values. - - - -After that desired texture has to be inserted into the `Intensity Texture` slot. - -The texture has to be in `R8` format. That means `8bit` in the red channel (`255` possible values). - - - -When the texture is assigned, the intensity values will be read from the texture and added to the point cloud if and only if the mesh component in the `GameObject` has a set of properly created texture coordinates. - -The expected number of texture coordinates is equal to the number of vertices in the mesh. The quantity of indices is not relevant. In other cases, the texture will be no read properly. - - -## Add ID assignment - -To enable segmentation, add `SemanticCategory` component to every *GameObject* that is expected to have a distinct ID. All meshes that belong to a given object will inherit its ID. -ID inheritance mechanism allows IDs to be overwritten for individual meshes/objects. -This solution also enables the creation of coarse categories (e.g., `Pedestrians`, `Vehicles`) - -!!! example - `SemanticCategory` component is assigned to the `Taxi` *GameObject*. All meshes in the `Taxi` *GameObject* will have the same instance ID as `Taxi`:* - - -!!! example - The driver has its own `SemanticCategory` component, so his instance ID will differ from the rest of the meshes: - - -!!! example - `SemanticCategory` component is assigned to the `Vehicles` *GameObject* that contains all of the cars on the scene: - - -### Dictionary mapping - -The resulting simulation data contains only the id of objects without their human-readable names. To facilitate the interpretation of such data, a function has been implemented to save a file with a dictionary mapping instance ID to *GameObject* names. It writes pairs of values in the `yaml` format: - -- The name of the *GameObject* -- Category ID of `SemanticCategory` component - -To enable saving dictionary mapping set output file path to the `Semantic Category Dictionary File` property in the `Scene Manager` component: - - - -The dictionary mapping file will be saved at the end of the simulation. diff --git a/docs/Components/Sensors/VehicleStatusSensor/components.png b/docs/Components/Sensors/VehicleStatusSensor/components.png deleted file mode 100644 index f4651bc11..000000000 Binary files a/docs/Components/Sensors/VehicleStatusSensor/components.png and /dev/null differ diff --git a/docs/Components/Sensors/VehicleStatusSensor/index.md b/docs/Components/Sensors/VehicleStatusSensor/index.md deleted file mode 100644 index 44a0d6aa3..000000000 --- a/docs/Components/Sensors/VehicleStatusSensor/index.md +++ /dev/null @@ -1,71 +0,0 @@ -# VehicleStatusSensor - -## Introduction -`VehicleStatusSensor` is a component that is designed to aggregate information about the current state of the vehicle. -It aggregates information about: - -- *Control mode* - currently active control mode, e.g. `AUTONOMOUS` or `MANUAL`. -- *Gear status* - currently engaged gearbox gear, e.g. `DRIVE` or `REVERSE`. -- *Steering status* - current angle of the steering tire in radians left, e.g. `0.1745` (10°). -- *Turn indicators status* - current status of the direction indicators, e.g. `DISABLE` or `ENABLE_LEFT`. -- *Hazard lights status* - current status of the hazard lights, e.g. `DISABLE` or `ENABLE`. -- *Velocity status* - current lateral, longitudinal and heading velocities values, e.g `{0.2, 0.0, 0.0}`. - -### Prefab -Prefab can be found under the following path: - -``` -Assets/AWSIM/Prefabs/Sensors/VehicleStatusSensor.prefab -``` - - -### Link in the default Scene - -This sensor is added directly to the [*URDF*](https://docs.ros.org/en/humble/Tutorials/Intermediate/URDF/URDF-Main.html) link in the `EgoVehicle` prefab. - -![link](link.png) - -A detailed description of the `URDF` structure and sensors added to prefab `Lexus RX450h 2015` is available in this [section](../../../Components/Vehicle/URDFAndSensors/). - -### Components -![components](components.png) - -All features are implemented within the *Vehicle Report Ros2 Publisher* (script) which can be found under the following path: - -``` -Assets/AWSIM/Prefabs/Sensors/* -``` - -## Vehicle Report Ros2 Publisher (script) -![script](script.png) - -The script is responsible for updating and publishing each of the aggregated data on a separate topic. -Therefore, it has 6 publishers publishing the appropriate type of message with a constant frequency - one common for all data. - -#### Elements configurable from the editor level -- `* Report Topic` - topic on which suitable type of information is published
(default: listed in the [table below](#published-topics)) -- `Publish Hz` - frequency of publications on each topic
(default: `30Hz`) -- `Frame ID` - frame in which data is published, used in [`Header`](https://docs.ros2.org/latest/api/std_msgs/msg/Header.html)
(default: `base_link`) -- `QoS`- Quality of service profile used in the publication
(default assumed as [`"system_default"`](https://docs.ros.org/en/humble/Concepts/About-Quality-of-Service-Settings.html): `Reliable`, `Volatile`, `Keep last/1`) -- `Vehicle` - the object from which all published data are read
(default: `None`) - -!!! warning "Vehicle configuration" - An important element of the script configuration that **must** be set is the scene *Object* (`Vehicle`). - It will be used for reading all the data needed. - The appropriate `EgoVehicle` object should be selected. - - If you can't select the right object, make sure it's set up correctly - it has got added all the scripts needed for `EgoVehicle`. - -#### Published topics -- Frequency: `30Hz` -- QoS: `Reliable`, `Volatile`, `Keep last/1` - -| Category | Topic | Message type | `frame_id` | -| :----------------------: | :--------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------: | -| *Control mode* | `/vehicle/status/control_mode` | [`autoware_auto_vehicle_msgs/ControlModeReport`](https://github.com/tier4/autoware_auto_msgs/blob/tier4/main/autoware_auto_vehicle_msgs/msg/ControlModeReport.idl) | - | -| *Gear status* | `/vehicle/status/gear_status` | [`autoware_auto_vehicle_msgs/GearReport` ](https://github.com/tier4/autoware_auto_msgs/blob/tier4/main/autoware_auto_vehicle_msgs/msg/GearReport.idl) | - | -| *Steering status* | `/vehicle/status/steering_status` | [`autoware_auto_vehicle_msgs/SteeringReport`](https://github.com/tier4/autoware_auto_msgs/blob/tier4/main/autoware_auto_vehicle_msgs/msg/SteeringReport.idl) | - | -| *Turn indicators status* | `/vehicle/status/turn_indicators_status` | [`autoware_auto_vehicle_msgs/TurnIndicatorsReport`](https://github.com/tier4/autoware_auto_msgs/blob/tier4/main/autoware_auto_vehicle_msgs/msg/TurnIndicatorsReport.idl) | - | -| *Hazard lights status* | `/vehicle/status/hazard_lights_status` | [`autoware_auto_vehicle_msgs/HazardLightsReport`](https://github.com/tier4/autoware_auto_msgs/blob/tier4/main/autoware_auto_vehicle_msgs/msg/HazardLightsReport.idl) | - | -| *Velocity status* | `/vehicle/status/velocity_status` | [`autoware_auto_vehicle_msgs/VelocityReport`](https://github.com/tier4/autoware_auto_msgs/blob/tier4/main/autoware_auto_vehicle_msgs/msg/VelocityReport.idl) | `base_line` | - diff --git a/docs/Components/Sensors/VehicleStatusSensor/link.png b/docs/Components/Sensors/VehicleStatusSensor/link.png deleted file mode 100644 index 2346b9cb2..000000000 Binary files a/docs/Components/Sensors/VehicleStatusSensor/link.png and /dev/null differ diff --git a/docs/Components/Sensors/VehicleStatusSensor/script.png b/docs/Components/Sensors/VehicleStatusSensor/script.png deleted file mode 100644 index 7d91474b3..000000000 Binary files a/docs/Components/Sensors/VehicleStatusSensor/script.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/animator.mp4 b/docs/Components/Traffic/NPCs/Pedestrian/animator.mp4 deleted file mode 100644 index 59b16766f..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/animator.mp4 and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/animator.png b/docs/Components/Traffic/NPCs/Pedestrian/animator.png deleted file mode 100644 index 087067e3f..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/animator.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/animator_param.png b/docs/Components/Traffic/NPCs/Pedestrian/animator_param.png deleted file mode 100644 index aa9d111c2..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/animator_param.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/collider.png b/docs/Components/Traffic/NPCs/Pedestrian/collider.png deleted file mode 100644 index 217f3dea9..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/collider.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/collider_example.png b/docs/Components/Traffic/NPCs/Pedestrian/collider_example.png deleted file mode 100644 index ece3472e4..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/collider_example.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/index.md b/docs/Components/Traffic/NPCs/Pedestrian/index.md deleted file mode 100644 index 178085097..000000000 --- a/docs/Components/Traffic/NPCs/Pedestrian/index.md +++ /dev/null @@ -1,141 +0,0 @@ -## Introduction -`NPCPedestrian` is an object that simulates a human standing or moving on the scene. -It can move cyclically in any chosen place thanks to the available scripts. -Traffic light tracking will be implemented in the future. - -![](model.png) - -!!! note "Sample scene" - If you would like to see how `NPCPedestrian` works or run some tests, we encourage you to familiarize yourself with the `NPCPedestrianSample` default scene described in this [section](../../../../ProjectGuide/Scenes/#npcpedestriansample). - -### Prefab and Fbx -Prefab can be found under the following path: - -``` -Assets/AWSIM/Prefabs/NPCs/Pedestrians/humanElegant.prefab -``` - -### Visual elements -Prefab is developed using models available in the form of `*.fbx` file. -From this file, the visual elements of the model, `Animator` and `LOD` were loaded. -The `Animator` and `LOD` are added as components of the main-parent *GameObject* in prefab, while the visual elements of the model are added as its children. - -`*.fbx` file can be found under the following path: - -``` -Assets/AWSIM/Models/NPCs/Pedestrians/Human/humanElegant.fbx -``` - -`NPCPedestrian` prefab has the following content: - -![](prefab_link.png) - -The `ReferencePoint` is used by the *NPC Pedestrian* (script) described [here](#npc-pedestrian-script). - -### Link in the default Scene -![](link.png) - -Pedestrians implemented in the scene are usually added in one aggregating object - in this case it is `NPCPedestrians`. -This object is added to the `Environment` prefab. - -### Components -![](prefab.png) - -There are several components responsible for the full functionality of `NPCPedestrian`: - -- *[Animator](https://docs.unity3d.com/Manual/class-Animator.html)* - provides motion animations in the scene, which are composed of clips controlled by the controller. -- *[LOD Group](https://docs.unity3d.com/Manual/class-LODGroup.html)* - provides level of detail configuration for shaders - affects *GPU* usage. -- *[Rigidbody](https://docs.unity3d.com/ScriptReference/Rigidbody.html)* - ensures that the object is controlled by the physics engine in *Unity* - e.g. pulled downward by gravity. -- *NPC Pedestrian* (script) - ensures that the movement of the object is combined with animation. -- *Simple Pedestrian Walker Controller* (script) - provides pedestrian movement in a specific direction and distance in a cyclical manner. - -Scripts can be found under the following path: - -``` -Assets/AWSIM/Scripts/NPCs/Pedestrians/* -``` - -## Rigidbody -![rigidbody pedestrian](rigidbody.png) - -`Rigidbody` ensures that the object is controlled by the physics engine. -In order to connect the animation to the object, the `Is Kinematic` option must be enabled. -By setting `Is Kinematic`, each `NPCPedestrian` object will have no physical interaction with other objects - it will not react to a vehicle that hits it. -The `Use Gravity` should be turned off - the correct position of the pedestrian in relation to the ground is ensured by the *NPC Pedestrian* (script). -In addition, `Interpolate` should be turned on to ensure the physics engine's effects are smoothed out. - -## LOD (Level of Detail) -![](lod.png) - -`LOD` provides dependence of the level of detail of the object depending on the ratio of the *GameObject’s* screen space height to the total screen height. -The pedestrian model has two object groups: suffixed `LOD0` and `LOD1`. -`LOD0` objects are much more detailed than `LOD1` - they have many more vertices in the *Meshes*. -Displaying complex meshes requires more performance, so if the *GameObject* is a small part of the screen, less complex `LOD1` objects are used. - -In the case of the `NPCPedestrian` prefab, if its object is less than 25% of the height of the screen then objects with the `LOD1` suffix are used. -For values less than 1% the object is culled. - -## Animator -![](animator.png) - -`Animator` component provides animation assignments to a *GameObject* in the scene. -It uses a developed [`Controller`](https://docs.unity3d.com/Manual/class-AnimatorController.html) which defines which animation clips to use and controls when and how to blend and transition between them. - -The `AnimationController` for humans should have the two float parameters for proper transitions. -Transitions between animation clips are made depending on the values of these parameters: - -- `moveSpeed` - pedestrian movement speed in ${m}/{s}$, -- `rotateSpeed` - pedestrian rotation speed in ${rad}/{s}$. - -Developed controller can be found in the following path:
-`Assets/AWSIM/Models/NPCs/Pedestrians/Human/Human.controller` - -![](animator_param.png) - -!!! example "Walking to running transition" - The example shows the state of walking and then transitions to running as a result of exceeding the condition $\mathrm{moveSpeed} > 1.6$ - - - -## NPC Pedestrian (script) -![](script.png) - -The script takes the `Rigidbody` and `Animator` components and combines them in such a way that the actual animation depends on the movement of `Rigidbody`. -It provides an inputs that allows the pedestrian to move - change his position and orientation. -In addition, the `ReferencePoint` point is used to ensure that the pedestrian follows the ground plane correctly. - -#### Elements configurable from the editor level - - `Ray Cast Max Distance` - ray-cast max distance for locating the ground. - - `Ray Cast Origin Offset` - upward offset of the ray-cast origin from the *GameObject* local origin for locating the ground. - -#### Input Data -| Category | Type | Description | -| :------------ | :------ | :--------------------------------------------------------------------------------------------------- | -| *SetPosition* | Vector3 | Move the `NPCPedestrian` so that the reference point is at the specified coordinates. | -| *SetRotation* | Vector3 | Rotate the `NPCPedestrian` so that the orientation of the reference point becomes the specified one. | - -## Simple Pedestrian Walker Controller (script) -![](simple_walk.png) - -*Simple Pedestrian Walker Controller* is a script that allows the pedestrian to cyclically move back and forth along a straight line. -One-way motion is performed with a fixed time as parameter `Duration` and a constant linear velocity as parameter `Speed`. -The script obviously uses the `NPCPedestrian` controls provided by the *NPC Pedestrian* (script) inputs. - -!!! example "Pedestrian walking on the sidewalk" - - -## Collider -![](collider.png) - -`Collider` is an optional pedestrian component. -By default, `NPCPedestrian` doesn't have this component added, It can be added if you want to detect a collision, e.g. with an `EgoVehicle`. -There are several types of [colliders](https://docs.unity3d.com/ScriptReference/Collider.html), choose the right one and configure it for your own requirements. - -!!! example "Capsule Collider" - An example of a `CapsuleCollider` that covers almost the entire pedestrian. - - ![](collider_example.png) diff --git a/docs/Components/Traffic/NPCs/Pedestrian/link.png b/docs/Components/Traffic/NPCs/Pedestrian/link.png deleted file mode 100644 index 934ed4444..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/link.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/lod.png b/docs/Components/Traffic/NPCs/Pedestrian/lod.png deleted file mode 100644 index 265b3be97..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/lod.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/model.png b/docs/Components/Traffic/NPCs/Pedestrian/model.png deleted file mode 100644 index 432fdaa5f..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/model.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/prefab.png b/docs/Components/Traffic/NPCs/Pedestrian/prefab.png deleted file mode 100644 index 7e3d2ffb8..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/prefab.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/prefab_link.png b/docs/Components/Traffic/NPCs/Pedestrian/prefab_link.png deleted file mode 100644 index 56401bede..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/prefab_link.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/rigidbody.png b/docs/Components/Traffic/NPCs/Pedestrian/rigidbody.png deleted file mode 100644 index 6c86b92f2..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/rigidbody.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/script.png b/docs/Components/Traffic/NPCs/Pedestrian/script.png deleted file mode 100644 index eedc522e7..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/script.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/simple_walk.png b/docs/Components/Traffic/NPCs/Pedestrian/simple_walk.png deleted file mode 100644 index 9346449e8..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/simple_walk.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Pedestrian/walk.mp4 b/docs/Components/Traffic/NPCs/Pedestrian/walk.mp4 deleted file mode 100644 index f303abb6f..000000000 Binary files a/docs/Components/Traffic/NPCs/Pedestrian/walk.mp4 and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/bounds_example.png b/docs/Components/Traffic/NPCs/Vehicle/bounds_example.png deleted file mode 100644 index 5cb45285e..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/bounds_example.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/collider.png b/docs/Components/Traffic/NPCs/Vehicle/collider.png deleted file mode 100644 index e80640677..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/collider.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/collider_example.png b/docs/Components/Traffic/NPCs/Vehicle/collider_example.png deleted file mode 100644 index 1ab0e6f51..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/collider_example.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/com.png b/docs/Components/Traffic/NPCs/Vehicle/com.png deleted file mode 100644 index f79ba0254..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/com.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/com_2.png b/docs/Components/Traffic/NPCs/Vehicle/com_2.png deleted file mode 100644 index 7dca64e77..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/com_2.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/driver.png b/docs/Components/Traffic/NPCs/Vehicle/driver.png deleted file mode 100644 index abb1e545d..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/driver.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/fbx.png b/docs/Components/Traffic/NPCs/Vehicle/fbx.png deleted file mode 100644 index fa004393a..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/fbx.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/gizmo.png b/docs/Components/Traffic/NPCs/Vehicle/gizmo.png deleted file mode 100644 index d4b63b7ab..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/gizmo.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/image_0.png b/docs/Components/Traffic/NPCs/Vehicle/image_0.png deleted file mode 100644 index b016d9635..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/image_0.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/image_1.png b/docs/Components/Traffic/NPCs/Vehicle/image_1.png deleted file mode 100644 index 552a229ff..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/image_1.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/image_2.png b/docs/Components/Traffic/NPCs/Vehicle/image_2.png deleted file mode 100644 index b6a5e3f01..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/image_2.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/image_3.png b/docs/Components/Traffic/NPCs/Vehicle/image_3.png deleted file mode 100644 index 66dd205db..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/image_3.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/image_4.png b/docs/Components/Traffic/NPCs/Vehicle/image_4.png deleted file mode 100644 index f739ead68..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/image_4.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/image_5.png b/docs/Components/Traffic/NPCs/Vehicle/image_5.png deleted file mode 100644 index dc9bdee69..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/image_5.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/index.md b/docs/Components/Traffic/NPCs/Vehicle/index.md deleted file mode 100644 index 9d8c7f504..000000000 --- a/docs/Components/Traffic/NPCs/Vehicle/index.md +++ /dev/null @@ -1,200 +0,0 @@ -# NPCVehicle - -## Introduction -`NPCVehicle` is a non-playable object that simulates a vehicle that is stationary or moving around the scene. -It can move on roads, more specifically `TrafficLanes`, thanks to the use of `TrafficSimulator` - which you can read more about [here](../../../../Components/Traffic/TrafficComponents/). -Vehicles moving on the scene take into account each other - avoiding collisions, follow traffic lights and have an implemented mechanism of yielding the right of way. - -![vehicles](vehicles.png) - -!!! note "Sample scene" - If you would like to see how `NPCVehicle` works or run some tests, we encourage you to familiarize yourself with the `NPCVehicleSample` default scene described in this [section](../../../../ProjectGuide/Scenes/#npcvehiclesample). - -!!! tip "Ego Vehicle" - If you are interested in the most important vehicle on the scene - `Ego Vehicle`, we encourage you to read this [section](../../../../Components/Vehicle/EgoVehicle/). - -### Prefabs and Fbxs -Prefabs can be found under the following path: - -``` -Assets/AWSIM/Prefabs/NPCs/Vehicles/* -``` - -The table shows the available prefabs of the vehicles: - -| | Hatchback | SmallCar | Taxi | Truck | Van | -| :----------: | :----------------------: | :----------------------: | :----------------------: | :----------------------: | :----------------------: | -| *Appearance* | ![vehicles](image_1.png) | ![vehicles](image_2.png) | ![vehicles](image_3.png) | ![vehicles](image_4.png) | ![vehicles](image_5.png) | -| *Prefab* | `Hatchback.prefab` | `SmallCar.prefab` | `Taxi-64.prefab` | `Truck_2t.prefab` | `Van.prefab` | - -`NPCVehicle` prefab has the following content: - -![prefab_link](prefab_link.png) - -As you can see, it consists of 2 parents for *GameObjects*: `Visuals` - aggregating visual elements, `Colliders` - aggregating colliders and single object `CoM`. - All objects are described in the sections below. - -### Visual elements -Prefabs are developed using models available in the form of `*.fbx` files. -For each vehicle, the visuals elements and `LOD` were loaded from the appropriate `*.fbx` file. -The `LOD` is always added as components of the main-parent *GameObject* in prefab, while the visual elements of the model are aggregated and added in object `Visuals`. - -`*.fbx` file for each vehicle is located in the appropriate `Models` directory for the vehicle under the following path: - -``` -Assets/AWSIM/Models/NPCs/Vehicles//Models/.fbx -``` - -As you can see, the additional visual element is `Driver`. - -![driver](driver.png) - -It was also loaded from the `*.fbx` file which can be found under the following path: - -``` -Assets/AWSIM/Models/NPCs/Vehicles/Driver/Model/Driver.fbx -``` - -!!! example "Vehicle fbx" - The content of a sample `*.fbx` file is presented below, all elements except `Collider` have been added to the prefab as visual elements of the vehicle. - `Collider` is used as the *Mesh* source for the `Mesh Collider` in the `BodyCollider` object. - - ![fbx](fbx.png). - -### Link -The default scene does not have vehicles implemented in fixed places, but they are spawned by `RandomTrafficSimulator` which is located in the `Environment` prefab. -Therefore, before starting the simulation, no `NPCVehicle` object is on the scene. - -When you run the simulation, you can see objects appearing as children of `RandomTrafficSimulator`: - -![traffic_link](traffic_link.png) - -In each `NPCVehicle` prefab, the local coordinate system of the vehicle (main prefab link) should be defined in the axis of the rear wheels projected onto the ground - in the middle of the distance between them. -This aspect holds significance when characterizing the dynamics of the object, as it provides convenience in terms of describing its motion and control. - - - -### Components -![prefab](prefab.png) - -There are several components responsible for the full functionality of `NPCVehicle`: - -- *[LOD Group](https://docs.unity3d.com/Manual/class-LODGroup.html)* - provides level of detail configuration for shaders - affects *GPU* usage. -- *[Rigidbody](https://docs.unity3d.com/ScriptReference/Rigidbody.html)* - ensures that the object is controlled by the physics engine in *Unity* - e.g. pulled downward by gravity. -- *NPC Vehicle* (script) - provides the ability to change the position and orientation of the vehicle, as well as to control the turn signals and brake light. - -Script can be found under the following path: - -``` -Assets/AWSIM/Scripts/NPCs/Vehicles -``` - -## CoM -`CoM` (*Center of Mass*) is an additional link that is defined to set the center of mass in the `Rigidbody`. -The *NPC Vehicle* (script) is responsible for its assignment. -This measure should be defined in accordance with reality. -Most often, the center of mass of the vehicle is located in its center, at the height of its wheel axis - as shown below. - - - -## Colliders -*Colliders* are used to ensure collision between objects. -In `NPCVehicle`, the main `BodyCollider` collider and `Wheels Colliders` colliders for each wheel were added. - -### Body Collider -![collider](collider.png) - -`BodyCollider` is a vehicle *Object* responsible for ensuring collision with other objects. -Additionally it can be used to detect these collisions. -The `MeshCollider` uses a *Mesh* of an *Object* to build its `Collider`. -The *Mesh* for the `BodyCollider` was also loaded from the `*.fbx` file similarly to the visual elements. - -![collider_example](collider_example.png) - -### Wheels Colliders -![wheel_collider](wheel_collider.png) - -`WheelsColliders` are an essential element from the point of view of driving vehicles on the road. -They are the only ones that have contact with the roads and it is important that they are properly configured. -Each vehicle, apart from the visual elements related to the wheels, should also have 4 colliders - one for each wheel. - -To prevent inspector entry for `WheelCollider` the `WheelColliderConfig` has been developed. -It ensures that friction is set to 0 and only wheel suspension and collisions are enabled. - - - -![wheel_collider_example](wheel_collider_example.png) - -!!! tip "Wheel Collider Config" - For a better understanding of the meaning of `WheelCollider` we encourage you to read [this manual](https://docs.unity3d.com/Manual/class-WheelCollider.html). - -## LOD -![lod](lod.png) - -`LOD` provides dependence of the level of detail of the object depending on the ratio of the *GameObject’s* screen space height to the total screen height. -Vehicle models have only one `LOD0` group, therefore there is no reduction in model complexity when it does not occupy a large part of the screen. -It is only culled when it occupies less than 2% of the height. - -## Rigidbody -![rigidbody](rigidbody.png) - -`Rigidbody` ensures that the object is controlled by the physics engine. -The `Mass` of the vehicle should approximate its actual weight. -In order for the vehicle to physically interact with other objects - react to collisions, `Is Kinematic` must be turned off. -The `Use Gravity` should be turned on - to ensure the correct behavior of the body during movement. -In addition, `Interpolate` should be turned on to ensure the physics engine's effects are smoothed out. - -## NPC Vehicle (script) -![script](script.png) - -The script takes the `Rigidbody` and provides an inputs that allows the `NPCVehicle` to move. -Script inputs give the ability to set the position and orientation of the vehicle, taking into account the effects of suspension and gravity. -In addition, the script uses the [`CoM`](#com) link reference to assign the center of mass of the vehicle to the `Rigidbody`. - -Script inputs are used by `RandomTrafficSimulator`, which controls the vehicles on the scene - it is described [here](../../../../Components/Traffic/TrafficComponents/). - -#### Input Data -| Category | Type | Description | -| :------------ | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| *SetPosition* | Vector3 | Move the `NPCVehicle` so that its x, z coordinates are same as the specified coordinates. Pitch and roll are determined by physical operations that take effects of suspension and gravity into account. | -| *SetRotation* | Vector3 | Rotate the `NPCVehicle` so that its yaw becomes equal to the specified one. Vertical movement is determined by physical operations that take effects of suspension and gravity into account. | - -`Visual Object Root` is a reference to the parent aggregating visuals, it can be used to disable the appearance of visual elements of the `NPCVehicle` in the scene. - -Whereas `Bounds` Represents an axis aligned bounding box of the `NPCVehicle`. -It is used primarily to detect collisions between vehicles in the event of spawning, yielding and others. -Moreover, vehicle bounds are displayed by [*Gizmos*](https://docs.unity3d.com/ScriptReference/Gizmos.html). - - - -The settings of the remaining elements, i.e. the `Axle` and the `Lights`, are described [here](#axle-settings) and [here](#lights-settings). - -!!! question "No Gizmo visualization" - If you don't see *Gizmo's* visual elements, remember to turn them on. - - ![gizmo](gizmo.png) - - -### Axle Settings -![script_axle](script_axle.png) - -This part of the settings is responsible for the proper connection of visual elements with the collider for each wheel - described [earlier](#wheels-colliders). -The objects configured in this section are used to control the vehicle - its wheel speed and steering angle, which are calculated based on the input values. -Correct configuration is very important from the point of view of the `NPCVehicle` movement on the road. - -### Lights Settings -![script_axle](script_lights.png) - -This part of the settings is related to the configuration of materials emission - used when a specific lighting is activated. -There are 3 types of lights: `Brake`, `Left Turn Signal` and `Right Turn Signal`. -Each of the lights has its visual equivalent in the form of a *Mesh*. -In the case of `NPCVehicle` all of the lights are included in the `Body` object *Mesh*, which has many materials - including those related to lights. - -For each type of light, the appropriate `Material Index` (equivalent of element index in mesh) and `Lighting Color` are assigned - yellow for `Turn Signals`, red for `Break`. - -`Lighting Intensity` values are also configured - the greater the value, the more light will be emitted. -This value is related to `Lighting Exposure Weight` parameter that is an exposure weight - the lower the value, the more light is emitted. - -The brake light is switched on depending on the speed of the `NPCVehicle`, while `RandomTrafficSimulator` is responsible for switching the turn signals on and off. - -![materials](materials.png) diff --git a/docs/Components/Traffic/NPCs/Vehicle/link.png b/docs/Components/Traffic/NPCs/Vehicle/link.png deleted file mode 100644 index ddf55180f..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/link.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/link_2.png b/docs/Components/Traffic/NPCs/Vehicle/link_2.png deleted file mode 100644 index e328c3f95..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/link_2.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/lod.png b/docs/Components/Traffic/NPCs/Vehicle/lod.png deleted file mode 100644 index 2cb7f2c52..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/lod.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/materials.png b/docs/Components/Traffic/NPCs/Vehicle/materials.png deleted file mode 100644 index 94b60a905..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/materials.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/prefab.png b/docs/Components/Traffic/NPCs/Vehicle/prefab.png deleted file mode 100644 index ef22ebe0c..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/prefab.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/prefab_link.png b/docs/Components/Traffic/NPCs/Vehicle/prefab_link.png deleted file mode 100644 index fee3f4401..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/prefab_link.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/rigidbody.png b/docs/Components/Traffic/NPCs/Vehicle/rigidbody.png deleted file mode 100644 index 48c9c2d93..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/rigidbody.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/script.png b/docs/Components/Traffic/NPCs/Vehicle/script.png deleted file mode 100644 index f1d990ee4..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/script.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/script_axle.png b/docs/Components/Traffic/NPCs/Vehicle/script_axle.png deleted file mode 100644 index b282ece91..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/script_axle.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/script_lights.png b/docs/Components/Traffic/NPCs/Vehicle/script_lights.png deleted file mode 100644 index 323e3ca19..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/script_lights.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/traffic_link.png b/docs/Components/Traffic/NPCs/Vehicle/traffic_link.png deleted file mode 100644 index 1b6d2d167..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/traffic_link.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/vehicles.png b/docs/Components/Traffic/NPCs/Vehicle/vehicles.png deleted file mode 100644 index 982fd8e98..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/vehicles.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/wheel_collider.png b/docs/Components/Traffic/NPCs/Vehicle/wheel_collider.png deleted file mode 100644 index 67ed829ca..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/wheel_collider.png and /dev/null differ diff --git a/docs/Components/Traffic/NPCs/Vehicle/wheel_collider_example.png b/docs/Components/Traffic/NPCs/Vehicle/wheel_collider_example.png deleted file mode 100644 index ad83fe1df..000000000 Binary files a/docs/Components/Traffic/NPCs/Vehicle/wheel_collider_example.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/environment_components.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/environment_components.png deleted file mode 100644 index f0bba5159..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/environment_components.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/index.md b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/index.md deleted file mode 100644 index b83a69c9f..000000000 --- a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/index.md +++ /dev/null @@ -1,72 +0,0 @@ -# Add Environment for Random Traffic - -This document describes the steps to properly configuer `RandomTrafficSimulator` in your environment. - -## Map preparation - -The 3D map model should be added to the scene. Please make sure that the `Environment` component with appropriate `mgrsOffsetPosition` is attached to the root GameObject. -![](map.png) - -## Annotate Traffic Lights - -Please attach `TrafficLight` component to all traffic light GameObjects placed on scene. -![](traffic_light.png) - -## Load Lanelet - -The lanelet load process can be performed by opening `AWSIM -> Random Traffic -> Load Lanelet` at the top toolbar of Unity Editor. -![](load_lanelet.png) - -You should be prompted with a similar window to the one presented below. Please adjust the parameters for the loading process if needed. - -![](lanelet_loader_window.png) - -Waypoint settings affect the density and accuracy of the generated waypoints. The parameters are described below: - -- Resolution: resolution of resampling. Lower values provide better accuracy at the cost of processing time. -- Min Delta Length: minimum length(m) between adjacent points. -- Min Delta Angle: minimum angle(deg) between adjacent edges. Lowering this value produces a smoother curve. - -To generate the Lanelet2 map representation in your simulation, please click the `Load` button. Environment components should be generated and placed as child objects of the `Environment` GameObject. You can check their visual representation by clicking consecutive elements in the scene hierarchy. - -![](environment_components.png) - -## Annotate Traffic Intersections -![](traffic_intersection.png) - -To annotate intersection please, add an empty GameObject named `TrafficIntersections` at the same level as the `TrafficLanes` GameObject. - -For each intersection repeat the following steps: - -1. Add an GameObject named `TrafficIntersection` as a child object of the `TrafficIntersections` object. -2. Attach a `TrafficIntersection` component to it. -3. Add a `BoxCollider` as a component of GameObject. It's size and position should cover the whole intersection. This is used for detecting vehicles in the intersection. -4. Set `TrafficLightGroups`. Each group is controlled to have different signals, so facing traffic lights should be added to the same group. These groupings are used in traffic signal control. -5. Specify the signal control pattern. - -## Annotate right of ways on uncontrolled intersections - -For the vehicles to operate properly it is needed to annotate the right of way of `TrafficLane` manually on intersections without traffic lights. - - -![](select_traffic_light.png) - -To set the right of way, please: - -- Select a straight lane that is not right of way in the intersection. The selected lane should be highlighted as presented below. -- Click the `Set RightOfWays` button to give the lane priority over other lanes. -![](set_right_of_way.png) -- Please check if all lanes that intersect with the selected lane are highlighted yellow. This means that the right of way was applied correctly. -![](right_of_ways.png) - -## Annotate stop lines - -For each right turn lane that yields to the opposite straight or left turn lane, a stop line needs to be defined near the center of the intersection. -![](stop_lines.png) -If there is no visible stop line, a `StopLine` component should be added to the scene, near the center of the intersection and associated with `TrafficLane`. - -## Check final configuration - -Once all the components are ready, the simulation can be run. -Check carefully if the vehicles are moving around the map correctly. -For each intersection, review the settings of the relevant components if vehicles are unable to proceed. diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/lanelet_loader_window.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/lanelet_loader_window.png deleted file mode 100644 index 0224deda3..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/lanelet_loader_window.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/load_lanelet.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/load_lanelet.png deleted file mode 100644 index 163b90aff..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/load_lanelet.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/load_lanelet_menu.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/load_lanelet_menu.png deleted file mode 100644 index 755f361e1..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/load_lanelet_menu.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/map.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/map.png deleted file mode 100644 index aee44754d..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/map.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/right_of_ways.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/right_of_ways.png deleted file mode 100644 index 83ddf658c..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/right_of_ways.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/select_traffic_light.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/select_traffic_light.png deleted file mode 100644 index a58d70fe5..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/select_traffic_light.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/set_right_of_way.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/set_right_of_way.png deleted file mode 100644 index 1226bdaa2..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/set_right_of_way.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/stop_lines.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/stop_lines.png deleted file mode 100644 index 78406360e..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/stop_lines.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/traffic_intersection.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/traffic_intersection.png deleted file mode 100644 index 15ee42b77..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/traffic_intersection.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/traffic_light.png b/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/traffic_light.png deleted file mode 100644 index 144e33644..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/traffic_light.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/gizmos.png b/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/gizmos.png deleted file mode 100644 index 26fa4e5ed..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/gizmos.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/index.md b/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/index.md deleted file mode 100644 index b4a28253c..000000000 --- a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/index.md +++ /dev/null @@ -1,45 +0,0 @@ -# Random Traffic Simulator -The `RandomTrafficSimulator` simulates city traffic with respect to all traffic rules. The system allows for random selection of car models and the paths they follow. It also allows adding static vehicles in the simulation. - -![random_traffic](random_traffic.png) - -## Getting Started -### Overview - -The random traffic system consists of the following components: - -- `RandomTrafficSimulator`: manages lifecycle of NPCs and simulates NPC behaviours. -- `TrafficLane`, `TrafficIntersection` and `StopLine`: represent traffic entities -- `NPCVehicle`: vehicle models (NPCs) controlled by `RandomTrafficSimulator` - -![](overview.png) - -## Components Settings - -The following section describes Unity Editor components settings. - -### Random Traffic Simulator - -![inspector](inspector.png) - -| Parameter | Description | -|---|---| -| **General Settings** | | -| Seed | Seed value for random generator | -| Ego Vehicle | Transform of ego vehicle | -| Vehicle Layer Mask | LayerMask that masks only vehicle(NPC and ego) colliders | -| Ground Layer Mask | LayerMask that masks only ground colliders of the map | -| Culling Distance | Distance at which NPCs are culled relative to EgoVehicle | -| Culling Hz | Culling operation cycle | -| **NPC Vehicle Settings** | | -| Max Vehicle Count | Maximum number of NPC vehicles to be spawned in simulation| -| NPC Prefabs | Prefabs representing controlled vehicles.
They must have `NPCVehicle` component attached. | -| Spawnable Lanes | `TrafficLane` components where NPC vehicles can be spawned during traffic simulation| -| Vehicle Config | Parameters for NPC vehicle control
`Sudden Deceleration` is a deceleration related to emergency braking | -| **Debug** | | -| Show Gizmos | Enable the checkbox to show editor gizmos that visualize behaviours of NPCs | - -## Gizmos -Gizmos are useful for checking current behavior of NPCs and its causes. -Gizmos have a high computational load so please disable them if the simulation is laggy. -![gizmos](gizmos.png) diff --git a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/inspector.png b/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/inspector.png deleted file mode 100644 index 8a523f7e7..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/inspector.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/overview.png b/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/overview.png deleted file mode 100644 index 6cca06714..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/overview.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/play.png b/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/play.png deleted file mode 100644 index 6758b3038..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/play.png and /dev/null differ diff --git a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/random_traffic.png b/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/random_traffic.png deleted file mode 100644 index e459a4a3d..000000000 Binary files a/docs/Components/Traffic/RandomTraffic/RandomTrafficSimulator/random_traffic.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/gizmos.png b/docs/Components/Traffic/TrafficComponents/gizmos.png deleted file mode 100644 index 26fa4e5ed..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/gizmos.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/index.md b/docs/Components/Traffic/TrafficComponents/index.md deleted file mode 100644 index ab1d6164f..000000000 --- a/docs/Components/Traffic/TrafficComponents/index.md +++ /dev/null @@ -1,510 +0,0 @@ - -!!! warning "This section" - This section is still under development! - -This is a section that describes in detail all components related to simulated traffic in the `Environment` prefab. - -## Architecture -![traffic components diagram](traffic_components.png) - -The random traffic system consists of the following components: - -- [`TrafficManager`](#trafficmanager-script) - - It is a top level interface meant to be used on the *Unity* scene. - `TrafficManager` runs all elements needed for a successful traffic simulation. - This component manages all `TrafficSimulators` so they don't work against each other. - It gives you the possibility to configure the `TrafficSimulators`. - -- `TrafficSimulator` - - Technically it is not a component, it is crucial to understand what it is and what it does in order to correctly configure the `TrafficManager`. - `TrafficSimulator` manages `NPCVehicles` spawning. - There can be many `TrafficSimulators` on the scene. - They are added and configured in the `TrafficManager` component. - Every `TrafficSimulator` manages some part of the traffic it is responsible for - meaning it has spawned the `NPCVehicles` and set their configuration. - - - `RandomTrafficSimulator` - spawns and controls `NPCVehicles` driving randomly - - `RouteTrafficSimulator` - spawns and controls `NPCVehicles` driving on a defined route - - !!! info "TrafficSimulator inaccessibility" - It is not possible to get direct access to the `TrafficSimulator`. - It should be added and configured through the `TrafficManager` component. - -- [`TrafficLane`](#trafficlanes), [`TrafficIntersection`](#trafficintersections) and [`StopLine`](#stoplines) - - These components represent traffic entities. - They are used to control and manage the traffic with respect to traffic rules and current road situation. - -- [`NPCVehicle`](../../../Components/Traffic/NPCs/Vehicle/) - - The vehicle models (*NPCs*) spawned by one of the `TrafficSimulators`. - They are spawned according to the `TrafficSimulator` configuration and either drive around the map randomly (when spawned by a [`RandomTrafficSimulator`](#random-traffic)) or follow the predefined path (when spawned by a [`RouteTrafficSimulator`](#route-traffic)). - `NPCVehicles` are managed by one central knowledge base. - -The process of spawning a `NPCVehicle` and its later behavior control is presented on the following sequence diagram. - - - -![traffic components sequence diagram](traffic_components_sequence_ext.png) - -!!! note "Sequence Diagram Composition" - Please note that the diagram composition has been simplified to the level of *GameObjects* and chosen elements of the *GameObjects* for the purpose of improving readability. - -## Lanelet2 -*Lanelet2* is a library created for handling a map focused on automated driving. -It also supports *ROS* and *ROS2* natively. -In *AWSIM* *Lanelet2* is used for reading and handling a map of all roads. -Specifically it does contain all [`TrafficLanes`](#trafficlanes) and [`StopLines`](#stoplines). -You may also see us referring to the actual map data file (`*.osm`) as a *Lanelet2*. - -!!! info "Lanelet2 official page" - If you want to learn more we encourage to visit the [official project page](https://github.com/fzi-forschungszentrum-informatik/Lanelet2/tree/master#readme). - -## RandomTrafficSimulator -!!! note "Nomenclature" - Please note that - - - a [*GameObject*](#link-in-the-default-scene) - - an [element spawning `NPCVehicles` randomly](#random-traffic) and - - the [whole system of traffic control](#randomtrafficsimulator) - - are named `RandomTrafficSimulator`. - Keep this in mind when reading the following page - so you don't get confused. - -`RandomTrafficSimulator` simulates traffic with respect to all traffic rules. The system allows for random selection of car models and the paths they follow. It also allows adding static vehicles in the simulation. - -### Link in the default Scene -![random_traffic_link](random_traffic_link.png) - -The `RandomTrafficSimulator` consists of several *GameObjects*. - -- `RandomTrafficSimulator` - this is an *Object* consisting of a *Traffic Manager* (script).
- You can learn more about it [here](#trafficmanager-script). -- `TrafficIntersections` - this is a parent *Object* for all `TrafficIntersections`.
- You can learn more about it [here](#trafficintersections). -- `TrafficLanes` - this is a parent *Object* for all `TrafficLanes`.
- You can learn more about it [here](#trafficlanes). -- `StopLines` - this is a parent *Object* for all `StopLines`.
- You can learn more about it [here](#stoplines). - -### Components -![](prefab.png) - -`RandomTrafficSimulator` only has one component: *Traffic Manager* (script) which is described below. - -### TrafficManager (script) -![random_traffic_script](random_traffic_script.png) - -*Traffic Manager* (script) is responsible for all of top level management of the [`NPCVehicles`](../../../Components/Traffic/NPCs/Vehicle/). -It managed spawning of `NPCVehicles` on `TrafficLanes`. - -`TrafficManager` uses the concept of `TrafficSimulators`. -One `TrafficSimulator` is responsible for managing its set of `NPCVehicles`. -Every `TrafficSimulator` spawns its own `NPCVehicles` independently. -The vehicles spawned by one `TrafficSimulator` do respect its configuration. -`TrafficSimulators` can be interpreted as `NPCVehicle` spawners with different configurations each. -Many different `TrafficSimulators` can be added to the `TrafficManager`. - -If a random mode is selected ([`RandomTrafficSimulator`](#random-traffic)) then [`NPCVehicles`](../../../Components/Traffic/NPCs/Vehicle/) will spawn in random places (from the selected list) and drive in random directions. -To be able to reproduce the behavior of the `RandomTrafficSimulator` a [`Seed`](https://en.wikipedia.org/wiki/Random_seed) can be specified - which is used for the pseudo-random numbers generation. - -`TrafficManager` script also configures all of the spawned `NPCVehicles`, so that they all have common parameters - -- `Acceleration` - the acceleration used by the vehicles at all times when accelerating. -- `Deceleration` - the value of deceleration used in ordinary situations. -- `Sudden Deceleration` - deceleration used when standard `Deceleration` is not sufficient to avoid accident. -- `Absolute Deceleration` - value of deceleration used when no other deceleration allows to avoid the accident. - -The `Vehicle Layer Mask` and `Ground Layer Mask` are used to make sure all vehicles can correctly interact with the ground to guarantee simulation accuracy. - -`Max Vehicle Count` specifies how many `NPCVehicles` can be present on the scene at once. -When the number of `NPCVehicles` on the scene is equal to this value the [`RandomTrafficSimulator`](#randomtrafficsimulator) stops spawning new vehicles until some existing vehicles drive away and disappear. - -The `EgoVehicle` field provides the information about Ego vehicle used for correct behavior of`NPCVehicles`when interacting with Ego. - -`Show Gizmos` checkbox specifies whether the [Gizmos](#gizmos) visualization should be displayed when running the simulation. - -!!! note "Gizmos performance" - Gizmos have a high computational load. - Enabling them may cause the simulation to lag. - -As mentioned earlier - `TrafficManager` may contain multiple `TrafficSimulators`. -The two available variants of `TrafficSimulator` are described below - -- [`RandomTrafficSimulator`](#random-traffic) -- [`RouteTrafficSimulator`](#route-traffic) - -`TrafficSimulators` should be interpreted as spawning configurations for some group of `NPCVehicles` on the scene. - -#### Random Traffic -![random_traffic_sims](random_traffic_sims.png) - -When using `RandomTrafficSimulator` the `NPCVehicle` prefabs (*NPC Prefabs*) can be chosen as well as *Spawnable Lanes*. -The later are the only `TrafficLanes` on which the `NPCVehicles` can spawn. -Upon spawning one of the *Spawnabe Lanes* is chosen and - given the vehicle limits are not reached - one random NPCVehicle from the *Npc prefabs* list is spawned on that lane. -After spawning, the NPCVehicle takes a random route until it drives out of the map - then it is destroyed. - -The `Maximum Spawns` field specifies how many Vehicles should be spawned before this `TrafficSimulator` stops working. -Set to `0` to disable this restriction. - -#### Route Traffic -![route traffic sims](route_traffic_sims.png) - -When using `Route traffic Simulator` the `NPCVehicle` prefabs (*NPC Prefabs*) as well as *Route* can be chosen. -The later is an ordered list of `TrafficLanes` that all spawned vehicles will drive on. -Given the vehicle limit is not reached - the `RouteTrafficSimulator` will spawn one of the *Npc Prefabs* chosen randomly on the first *Route* element (`Element 0`). -After the first vehicle drives off the next one will spawn according to the configuration. -It is **important** for all *Route* elements to be connected and to be arranged in order of appearance on the map. -The NPCVehicle disappears after completing the Route. - -The `Maximum Spawns` field specifies how many Vehicles should be spawned before this `TrafficSimulator` stops working. -Set to `0` to disable this restriction. - -#### Parameter explanation -| Parameter | Description | -| ----------------------- | ----------------------------------------------------------------------------------------------------------- | -| **General Settings** | | -| Seed | Seed value for random generator | -| Ego Vehicle | Transform of ego vehicle | -| Vehicle Layer Mask | LayerMask that masks only vehicle(NPC and ego) colliders | -| Ground Layer Mask | LayerMask that masks only ground colliders of the map | -| Culling Distance | Distance at which NPCs are culled relative to EgoVehicle | -| Culling Hz | Culling operation cycle | -| **NPCVehicle Settings** | | -| Max Vehicle Count | Maximum number of NPC vehicles to be spawned in simulation | -| NPC Prefabs | Prefabs representing controlled vehicles.
They must have `NPCVehicle` component attached. | -| Spawnable Lanes | `TrafficLane` components where NPC vehicles can be spawned during traffic simulation | -| Vehicle Config | Parameters for NPC vehicle control
`Sudden Deceleration` is a deceleration related to emergency braking | -| **Debug** | | -| Show Gizmos | Enable the checkbox to show editor gizmos that visualize behaviours of NPCs | - -## Traffic Light (script) -![light_script](light_script.png) - -![pedestrian_lights_materials](pedestrian_lights_materials.png) - -*Traffic Light* (script) is a component added to every `TrafficLight` on the scene. -It is responsible for configuring the `TrafficLight` behavior - the bulbs and their colors. - -The `Renderer` filed points to the renderer that should be configured - in this case it is always a `TrafficLight` renderer. - -`Bulbs Emission Config` is a list describing available colors for this Traffic Light. -Every element of this list configures the following - -- `Bulb Color` - the name of the configured color that will be used to reference this color -- `Color` - the actual color with which a bulb should light up -- `Intensity` - the intensity of the color -- `Exposure Weight` - how bright should the color be when lighting up - -The `Bulb Material Config` is a list of available bulbs in a given Traffic Light. -Every element describes a different bulb. -Every bulb has the following aspects configured - -- `Bulb Type` - the name that will be usd to reference the configured bulb -- `Material Index` - The index of a material of the configured bulb. - This is an index of a sub-mesh of the configured bulb in the Traffic Light mesh. - The material indices are described in detail [here](../../../Components/Environment/AWSIMEnvironment/#materials) and [here](../../../Components/Environment/AWSIMEnvironment/#materials_1). - -## TrafficIntersections -![intersection](intersections/intersection.png) - -`TrafficIntersection` is a representation of a road intersection. -It consists of several components. -`TrafficIntersection` is used in the `Scene` for managing `TrafficLights`. -All Traffic Lights present on one `Traffic Intersection` must be synchronized - this is why the logic of `TrafficLight` operation is included in the `TrafficIntersection`. - -### Link in the default Scene -![intersections_link](intersections/intersections_link.png) - -Every `TrafficIntersection` has its own *GameObject* and is added as a child of the aggregate `TrafficIntersections` *Object*. -`TrafficIntersections` are elements of an `Environment`, so they should be placed as children of an appropriate `Environment` *Object*. - -### Components -![intersection_prefab](intersections/intersection_prefab.png) - -`TrafficIntersection` has the following components: - -- *Box Collider* - marks the area of the Traffic Intersection, it should cover the whole intersection area -- *Traffic Intersection* (script) - controls all Traffic Lights on the given intersection according to the configuration - -### Collider -![intersection_collider](intersections/intersection_collider.png) - -Every `TrafficIntersection` contains a *Box Collider* element. -It needs to accurately cover the whole area of the `TrafficIntersection`. -*Box Collider* - together with the [*Traffic Intersection* (script)](#traffic-intersection-script) - is used for detecting vehicles entering the `TrafficIntersection`. - -### Traffic Intersection (script) -![intersection_script](intersections/intersection_script.png) - -*Traffic Intersection* (script) is used for controlling all `TrafficLights` on a given intersection. -The `Collider Mask` field is a mask on which all Vehicle Colliders are present. -It - together with Box Collider - is used for keeping track of how many Vehicles are currently present on the Traffic Intersection. -The [`Traffic Light Groups`](#traffic-light-groups) and [`Lighting Sequences`](#lighting-sequences) are described below. - -#### Traffic Light Groups -![light_groups](intersections/light_groups.png) - -`Traffic Light Group` is a collection of all `Traffic Lights` that are in the same state at all times. -This includes all redundant `Traffic Lights` shining in one direction as well as the ones in the opposite direction. -In other words - as long as two `Traffic Lights` indicate exactly the same thing they should be added to the same `Traffic Light Group`. -This grouping simplifies the creation of [`Lighting Sequences`](#lighting-sequences). - -#### Lighting Sequences -![lights_sequence](intersections/lights_sequence.png) - -`Lighting Sequences` is the field in which the whole intersection `Traffic Lights` logic is defined. -It consists of many different *Elements*. -Each *Element* is a collection of *Orders* that should take an effect for the period of time specified in the `Interval Sec` field. -`Lighting Sequences` *Elements* are executed sequentially, in order of definition and looped - after the last element sequence goes back to the first element. - -The `Group Lighting Orders` field defines which [`Traffic Light Groups`](#traffic-light-groups) should change their state and how. -For every `Group Lighting Orders` *Element* the [`Traffic Lights Group`](#traffic-light-groups) is specified with the exact description of the goal state for all Traffic Lights in that group - which bulb should light up and with what color. - -One `Lighting Sequences` *Element* has many `Group Lighting Orders`, which means that for one period of time many different orders can be given. -E.g. when `Traffic Lights` in one direction change color to green - `Traffic Lights` in the parallel direction change color to red. - -!!! info "Traffic Light state persistance" - If in the given `Lighting Sequences` *Element* no order is given to some [Traffic Light Group](#traffic-light-groups) - this Group will keep its current state. - When the next `Lighting Sequences` *Element* activates - the given `Traffic Light Group` will remain in an unchanged state. - -??? example "Lighting Sequence Sample - details" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DescriptionEditor
- Traffic Lights in Pedestrian Group 1
change color to flashing green.

- Other Groups keep their
current state.

- This state lasts for 5 seconds. -
- Traffic Lights in Pedestrian Group 1
change color to solid red.

- Other Groups keep their
current state.

- This state lasts for 1 second. -
- Traffic Lights in Vehicle Group 1
change color to solid yellow.

- Other Groups keep their
current state.

- This state lasts for 5 seconds. -
- Traffic Lights in Vehicle Group 1
change color to solid red.

- Other Groups keep their
current state.

- This state lasts for 3 seconds. -
- Traffic Lights in Vehicle Group 2
change color to solid green.

- Traffic Lights in Pedestrian Group 2
change color to solid green.

- Other Groups keep their
current state.

- This state lasts for 15 seconds. -
- Traffic Lights in Pedestrian Group 2
change color to flashing green.

- Other Groups keep their
current state.

- This state lasts for 5 seconds. -
- Traffic Lights in Pedestrian Group 2
change color to solid red.

- Other Groups keep their
current state.

- This state lasts for 1 second. -
- Traffic Lights in Vehicle Group 2
change color to solid yellow.

- Other Groups keep their
current state.

- This state lasts for 5 seconds. -
- Traffic Lights in Vehicle Group 2
change color to solid red.

- Other Groups keep their
current state.

- This state lasts for 3 second.

- Sequence **loops back** to the
first element of the list. -
- -## TrafficLanes -![lanes](traffic_lanes/lanes.png) - -`TrafficLane` is a representation of a short road segment. -It consists of several waypoints that are connected by straight lines. -`TrafficLanes` are used as a base for a [RandomTrafficSimulator](#randomtrafficsimulator). -They allow [`NPCVehicles`](../../../Components/Traffic/NPCs/Vehicle/) to drive on the specific lanes on the road and perform different maneuvers with respect to the traffic rules. -TrafficLanes create a network of drivable roads when connected. - -### Link in the default Scene -![lanes_link](traffic_lanes/lanes_link.png) - -Every `TrafficLane` has its own *GameObject* and is added as a child of the aggregate `TrafficLanes` *Object*. -`TrafficLanes` are an element of an `Environment`, so they should be placed as children of an appropriate `Environment` *Object*. - -`TrafficLanes` can be imported from the [*lanelet2*](#lanelet2) `*.osm` file. - -### Components -![lanes_prefab](traffic_lanes/lanes_prefab.png) - -`TrafficLane` consists of an *Object* containing [*Traffic Lane* (script)](#traffic-lane-script). - -`TrafficLane` has a transformation property - as every *Object* in Unity - however it is not used in any way. -All details are configured in the [*Traffic Lane* (script)](#traffic-lane-script), the information in *Object* transformation is ignored. - -### Traffic Lane (script) -![lanes_script](traffic_lanes/lanes_script.png) - -*Traffic Lane* (script) defines the `TrafficLane` structure. -The `Waypoints` field is an ordered list of points that - when connected with straight lines - create a `TrafficLane`. - -!!! note "Traffic Lane (script) coordinate system" - `Waypoints` are defined in the `Environment` coordinate system, the transformation of *GameObject* is ignored. - -`Turn Direction` field contains information on what is the direction of this `TrafficLane` - whether it is a right or left turn or straight road. - -Traffic lanes are connected using `Next Lanes` and `Prev Lanes` fields. -This way individual `TrafficLanes` can create a connected road network. -One Traffic Lane can have many `Next Lanes` and `Prev Lanes`. -This represents the situation of multiple lanes connecting to one or one lane splitting into many - e.g. the possibility to turn and to drive straight. - -[Right Of Way Lanes](#right-of-way-lanes) are described below. - -Every `TrafficLane` has to have a `Stop Line` field configured when the [Stop Line](#stoplines) is present on the end of the `TrafficLane`. -Additionally the `Speed Limit` field contains the highest allowed speed on given `TrafficLane`. - -#### Right Of Way Lanes -![lanes_yield](traffic_lanes/lanes_yield.png) - -`Right Of Way Lanes` is a collection of `TrafficLanes`. -Vehicle moving on the given `TrafficLane` has to give way to all vehicles moving on every `Right Of Way Lane`. -It is determined based on basic traffic rules. -Setting `Right Of Way Lanes` allows [`RandomTrafficSimulator`](#randomtrafficsimulator) to manage all [`NPCVehicles`](../../../Components/Traffic/NPCs/Vehicle/) so they follow traffic rules and drive safely. - -In the *Unity* editor - when a `TrafficLane` is selected - aside from the selected `TrafficLane` highlighted in blue, all `Right Of Way Lanes` are highlighted in yellow. - -!!! example "Right Of Way Lanes Sample - details" - The selected `TrafficLane` (blue) is a right turn on an intersection. - This means, that before turning right the vehicle must give way to all vehicles driving from ahead - the ones driving straight as well as the ones turning left. - This can be observed as `TrafficLanes` highlighted in yellow. - - ![lanes_yield_2](traffic_lanes/lanes_yield_2.png) - -## StopLines -![stop](stop_lines/stop.png) - -`StopLine` is a representation of a place on the road where vehicles giving way to other vehicles should stop and wait. -They allow [`RandomTrafficSimulator`](#randomtrafficsimulator) to manage [`NPCVehicles`](../../../Components/Traffic/NPCs/Vehicle/) in safe and correct way - according to the traffic rules. -All possible locations where a vehicle can stop in order to give way to other vehicles - that are enforced by an infrastructure, this does not include regular lane changing - need to be marked with `StopLines`. - -### Link in the default Scene -![stop_lines_link](stop_lines/stop_lines_link.png) - -Every `StopLine` has its own *GameObject* and is added as a child of the aggregate `StopLines` *Object*. -Stop Lines are an element of an `Environment`, so they should be placed as children of an appropriate `Environment` *Object*. - -`StopLines` can be imported from the [*lanelet2*](#lanelet2) `*.osm` file. - -### Components -![stop_prefab](stop_lines/stop_prefab.png) - -`StopLine` consists of an *Object* containing [*Stop Line* (script)](#stop-line-script). - -Stop Line has a transformation property - as every *Object* in Unity - however it is not used in any way. -All details are configured in the *Traffic Lane (script)*, the information in *Object* transformation is ignored. - -### Stop Line (script) -![stop_script](stop_lines/stop_script.png) - -*Stop Line* (script) defines `StopLine` configuration. -The `Points` field is an ordered list of points that - when connected - create a `StopLine`. -The list of points should always have two elements that create a straight `StopLine`. - -!!! note "Stop Line (script) coordinate system" - `Points` are defined in the Environment coordinate system, the transformation of *GameObject* is ignored. - -The `Has Stop Sign` field contains information whether the configured `StopLine` has a corresponding `StopSign` on the scene. - -Every Stop Line needs to have a `Traffic Light` field configured with the corresponding [`Traffic Light`](../../../Components/Environment/AWSIMEnvironment/#trafficlights). -This information allows the [`RandomTrafficSimulator`](#randomtrafficsimulator) to manage the [`NPCVehicles`](../../../Components/Traffic/NPCs/Vehicle/) in such a way that they respect the Traffic Lights and behave on the [`Traffic Intersections`](#trafficintersections) correctly. - -## Gizmos -![gizmos](gizmos.png) - -*Gizmos* are a in-simulation visualization showing current and future moves of the [`NPCVehicles`](../../../Components/Traffic/NPCs/Vehicle/). -They are useful for checking current behavior of NPCs and its causes. -On the Scene they are visible as cuboid contours indicating which TrafficLanes will be taken by each vehicle in the near future. - -!!! warning "Gizmos computing" - *Gizmos* have a high computational load. - Please disable them if the simulation is laggy. - - - - diff --git a/docs/Components/Traffic/TrafficComponents/inspector.png b/docs/Components/Traffic/TrafficComponents/inspector.png deleted file mode 100644 index 8a523f7e7..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/inspector.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/intersections/intersection.png b/docs/Components/Traffic/TrafficComponents/intersections/intersection.png deleted file mode 100644 index 69ce187fa..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/intersections/intersection.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/intersections/intersection_collider.png b/docs/Components/Traffic/TrafficComponents/intersections/intersection_collider.png deleted file mode 100644 index b29606b78..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/intersections/intersection_collider.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/intersections/intersection_prefab.png b/docs/Components/Traffic/TrafficComponents/intersections/intersection_prefab.png deleted file mode 100644 index e0962018c..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/intersections/intersection_prefab.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/intersections/intersection_script.png b/docs/Components/Traffic/TrafficComponents/intersections/intersection_script.png deleted file mode 100644 index 7eb6c6c51..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/intersections/intersection_script.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/intersections/intersections_link.png b/docs/Components/Traffic/TrafficComponents/intersections/intersections_link.png deleted file mode 100644 index a8f1c5269..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/intersections/intersections_link.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/intersections/light_groups.png b/docs/Components/Traffic/TrafficComponents/intersections/light_groups.png deleted file mode 100644 index aee6faab7..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/intersections/light_groups.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/intersections/lights_sequence.png b/docs/Components/Traffic/TrafficComponents/intersections/lights_sequence.png deleted file mode 100644 index 602f76e69..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/intersections/lights_sequence.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/light_script.png b/docs/Components/Traffic/TrafficComponents/light_script.png deleted file mode 100644 index a9d0a2c16..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/light_script.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_1.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_1.png deleted file mode 100644 index 410031c2b..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_1.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_2.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_2.png deleted file mode 100644 index 830c23ca3..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_2.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_3.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_3.png deleted file mode 100644 index 588349afc..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_3.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_4.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_4.png deleted file mode 100644 index ec6e93a74..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_4.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_5.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_5.png deleted file mode 100644 index 1304aba3b..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_5.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_6.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_6.png deleted file mode 100644 index 642fe87db..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_6.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_7.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_7.png deleted file mode 100644 index f7ec3ab53..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_7.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_8.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_8.png deleted file mode 100644 index 0e9b12fda..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_8.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_9.png b/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_9.png deleted file mode 100644 index 2892b6782..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/lights_sequence/lights_sequence_9.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/pedestrian_lights_materials.png b/docs/Components/Traffic/TrafficComponents/pedestrian_lights_materials.png deleted file mode 100644 index a25ab1ffe..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/pedestrian_lights_materials.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/play.png b/docs/Components/Traffic/TrafficComponents/play.png deleted file mode 100644 index 6758b3038..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/play.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/prefab.png b/docs/Components/Traffic/TrafficComponents/prefab.png deleted file mode 100644 index 22d89003e..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/prefab.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/random_traffic.png b/docs/Components/Traffic/TrafficComponents/random_traffic.png deleted file mode 100644 index e459a4a3d..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/random_traffic.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/random_traffic_link.png b/docs/Components/Traffic/TrafficComponents/random_traffic_link.png deleted file mode 100644 index d837f90ae..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/random_traffic_link.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/random_traffic_script.png b/docs/Components/Traffic/TrafficComponents/random_traffic_script.png deleted file mode 100644 index c183bbddc..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/random_traffic_script.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/random_traffic_sims.png b/docs/Components/Traffic/TrafficComponents/random_traffic_sims.png deleted file mode 100644 index 01594d0ee..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/random_traffic_sims.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/route_traffic_sims.png b/docs/Components/Traffic/TrafficComponents/route_traffic_sims.png deleted file mode 100644 index 60d13de0a..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/route_traffic_sims.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/stop_lines/stop.png b/docs/Components/Traffic/TrafficComponents/stop_lines/stop.png deleted file mode 100644 index bf3106b5d..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/stop_lines/stop.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/stop_lines/stop_lines_link.png b/docs/Components/Traffic/TrafficComponents/stop_lines/stop_lines_link.png deleted file mode 100644 index e37860119..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/stop_lines/stop_lines_link.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/stop_lines/stop_prefab.png b/docs/Components/Traffic/TrafficComponents/stop_lines/stop_prefab.png deleted file mode 100644 index 2b39b403e..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/stop_lines/stop_prefab.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/stop_lines/stop_script.png b/docs/Components/Traffic/TrafficComponents/stop_lines/stop_script.png deleted file mode 100644 index dc44416d0..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/stop_lines/stop_script.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_components.drawio b/docs/Components/Traffic/TrafficComponents/traffic_components.drawio deleted file mode 100644 index 078c99d4e..000000000 --- a/docs/Components/Traffic/TrafficComponents/traffic_components.drawio +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/Components/Traffic/TrafficComponents/traffic_components.png b/docs/Components/Traffic/TrafficComponents/traffic_components.png deleted file mode 100644 index b8157039d..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_components.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence.drawio b/docs/Components/Traffic/TrafficComponents/traffic_components_sequence.drawio deleted file mode 100644 index d7f5c5072..000000000 --- a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence.drawio +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence.png b/docs/Components/Traffic/TrafficComponents/traffic_components_sequence.png deleted file mode 100644 index 5a71eb0f9..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence_ext.drawio b/docs/Components/Traffic/TrafficComponents/traffic_components_sequence_ext.drawio deleted file mode 100644 index 3e6d38322..000000000 --- a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence_ext.drawio +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence_ext.png b/docs/Components/Traffic/TrafficComponents/traffic_components_sequence_ext.png deleted file mode 100644 index 467a0b3aa..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_components_sequence_ext.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes.png b/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes.png deleted file mode 100644 index f2b158c90..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_link.png b/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_link.png deleted file mode 100644 index 52ff25d27..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_link.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_prefab.png b/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_prefab.png deleted file mode 100644 index bf362610f..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_prefab.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_script.png b/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_script.png deleted file mode 100644 index 6fe66e673..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_script.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_yield.png b/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_yield.png deleted file mode 100644 index 183fa5ab2..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_yield.png and /dev/null differ diff --git a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_yield_2.png b/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_yield_2.png deleted file mode 100644 index 20998b6b5..000000000 Binary files a/docs/Components/Traffic/TrafficComponents/traffic_lanes/lanes_yield_2.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/brake_reverse_lights_check.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/brake_reverse_lights_check.gif deleted file mode 100644 index 06522d78f..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/brake_reverse_lights_check.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/com_all.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/com_all.gif deleted file mode 100644 index f61699884..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/com_all.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/ego_vehicle_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/ego_vehicle_add_object.gif deleted file mode 100644 index 0bfd8c521..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/ego_vehicle_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/index.md b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/index.md deleted file mode 100644 index 53f4969da..000000000 --- a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/index.md +++ /dev/null @@ -1,211 +0,0 @@ -!!! info "Ego Vehicle Component" - In this tutorial we will create a new `EgoVehicle`. - To learn more about what an `EgoVehicle` is in *AWSIM* please visit [Ego Vehicle description page](../../../../Components/Vehicle/EgoVehicle/). - -## Cerate an Object -Add a child *Object* to the *Simulation* called `EgoVehicle`. - -![ego vehicle add object](ego_vehicle_add_object.gif) - -## Add a Rigidbody -1. While having a newly created `EgoVehicle` *Object* selected, in the *Inspector* view click on the 'Add Component' button, search for `Rigidbody` and select it. - - ![rigidbody add component](rigidbody_add_component.gif) - - ![rigidbody search](rigidbody_search.png) - -1. Configure Mass and Drag with the correct values for your Vehicle. - - ![rigidbody configure 1](rigidbody_configure1.gif) - -1. Configure Interpolation and Collision Detection. - - ![rigidbody configure 2](rigidbody_configure2.gif) - -## Add visual elements -For a detailed explanation hwo to add visual elements of your Vehicle check out this [dedicated tutorial](../AddVisualElements/). - -## Add a Canter of Mass -To add a center of mass to your vehicle you have to add a `CoM` child *Object* to the `EgoVehicle` *Object* (the same as in steps before). - -Then just set the *position* of the `CoM` *Object* in the *Inspector* view to represent real-world center of mass of the Vehicle. - -![center of mass](com_all.gif) - -??? question "How do I know what is the Center of Mass of my Vehicle" - The best way is to obtain a Center of Mass information from your Vehicle documentation. - - However, if this is not possible, you can try to estimate the Center of Mass of your vehicle. - Best practice is to set the estimated Center of Mass as the following - - - Evenly between the axles of the Vehicle - - Right in the middle of the Vehicles width - - Somewhere in the neighborhood of a quarter of the Vehicle height - - **Note**: This will vary very much depending on your Vehicle construction. - For the best possible result please follow the Vehicle specifications. - -## Add a Reflection Probe -1. Add a new *Object* called `Reflection Probe` as a child to the `EgoVehicle` *Object*. - - ![reflection probe add object](reflection_probe_add_object.gif) - -2. Click on the 'Add Component' button, in the windows that pops-up search for `Reflection Probe` and select it. - - ![reflection probe add component](reflection_probe_add_component.gif) - - !!!note - Please note that with `Reflection Probe` there should also be automatically added a ``HD Additional Reflection Data` Script. - - ![reflection probe additional script](reflection_probe_additional_script.png) - -3. Configure the `Reflection Probe` as you wish. - - !!! example "Example Configuration" - Below you can see an example configuration of the `Reflection Probe`. - - ![reflection probe configuration](reflection_probe_configuration.png) - -## Add Colliders -For a detailed explanation how to add colliders to your Vehicle check out this [dedicated tutorial](../AddColliders/). - -## Add a base for sensors (URDF) -You will most certainly want to add some sensors to your `EgoVehicle`. -First you need to create a parent *Object* for all those sensors called `URDF`. -To do this we will add a child *Object* `URDF` to the `EgoVehicle` *Object*. - -![urdf add object](urdf_add_object.gif) - -This *Object* will be used as a base for all sensors we will add later. - -## Add a Vehicle Script -To be able to control your `EgoVehicle` you need a `Vehicle` Script. - -1. Add the `Vehicle` Script to the `EgoVehicle` *Object*. - - ![vehicle script add component](vehicle_script_add_component.gif) - - ![vehicle script search](vehicle_script_search.png) - -1. Configure the `Vehicle` Script *Axle Settings* and *Center Of Mass Transform*. - - ![vehicle script configure](vehicle_script_configure.gif) - -!!! note "Testing" - It is not possible to test this Script alone, but you can test the following - - - [Vehicle Keyboard Input Script](#add-a-vehicle-keyboard-input-script) - - [Vehicle Visual Effects Script](#add-a-vehicle-visual-effect-script) - - [Vehicle Ros Input Script](#add-a-vehicle-ros-input-script) - - If components listed above work correctly this means the `Vehicle` Script works correctly too. - -## Add a Vehicle Keyboard Input Script -You can control your `EgoVehicle` in the simulation manually with just one Script called `Vehicle Keyboard Input`. - -If you want to add it just click the 'Add Component' button on the `EgoVehicle` *Object* and search for `Vehicle Keyboard Input` Script and select it. - -![vehicle keyboard input script add](vehicle_keyboard_input_script.gif) - -## Add a Vehicle Visual Effect Script -For a visual indication of a Vehicle status you will need a `Vehicle Visual Effect` Script. -To add and configure it follow the steps below. - -1. Add a `Vehicle Visual Effect` Script by clicking 'Add Component' button, searching for it and selecting it. - - ![vehicle visual effect script add component](vehicle_visual_effect_script_add_component.gif) - -1. Configure the lights. - - !!!note - In this step we will configure only `Brake Lights`, but should repeat this for every Light. - The process is almost the same for all Lights - just change the mesh renderer and lighting settings according to your preference. - - ![vehicle visual effect script configure](vehicle_visual_effect_script_configure.gif) - -### How to test -After configuring `Vehicle Visual Effect` Script it is advised to test whether everything works as expected. - -1. Make sure you have a [`Vehicle Keyboard Input` Script](#add-a-vehicle-keyboard-input-script) added and that it is enabled. - -1. If your scene does not have any models yet please turn the gravity off in `Rigidbody` configuration so that the Vehicle does not fall down into infinity. - - ![rigidbody turn gravity off](rigidbody_turn_gravity_off.gif) - -1. Start the simulation. - - ![simulation start](simulation_start.gif) - -1. Test the Turn Signals. - - You can control the Turn Signals with a `Vehicle Keyboard Input` Script. - Activate the Turn Signals with one of the following keys - - - `1` - Left Turn Signal - - `2` - Right Turn Signal - - `3` - Hazard Lights - - `4` - Turn Off all Signals - - ![turn signals check](turn_signals_check.gif) - -1. Test the Lights. - - You can control the lights by "driving" the Vehicle using `Vehicle Keyboard Input` Script. - Although if you have an empty Environment like in this tutorial the Vehicle won't actually drive. - - To test Brake Lights change the gear to Drive by pressing `D` on the keyboard and activate braking by holding `arrow down`. - - To test the Reverse Light change the gear to Reverse by pressing `R` on the keyboard. - The Reverse Light should turn on right away. - - ![brake reverse lights check](brake_reverse_lights_check.gif) - -!!! tip "Camera tip" - If you have not configured a camera or configured it in such a way that you can't see the Vehicle well you can still test most of the lights by changing views. - - - Turn the Light (or Signal) on by pressing the appropriate key - - Move to the Scene View by pressing `ctrl + 1` - now you can move the camera freely - - To change the Lights you need to go back to Game View by pressing `ctrl + 2` - - Pleas note that this method **won't** work for testing Brake Lights, as for them to work you need to keep the `arrow down` button pressed all the time. - -## Add a Vehicle Ros Input Script -For controlling your Vehicle with autonomous driving software (e.g. [Autoware](../../../../Introduction/Autoware/)) you need a `Vehicle Ros Input` Script. - -!!! warning "Disable `Vehicle Keyboard Input` Script" - If you have added a `Vehicle Keyboard Input` Script in your Vehicle please disable it when using the `Vehicle Ros Input` Script. - - Not doing so will lead to the vehicle receiving two different inputs which will cause many problems. - - ![vehicle keyboard input disable](vehicle_keyboard_input_disable.gif) - -Add it to the `EgoVehicle` *Object* by clicking on the 'Add Component' button, searching for it and selecting it. - -![vehicle ros input add component](vehicle_ros_input_add_component.gif) - -The Script is configured to work with [Autoware](../../../../Introduction/Autoware/) by default, but you can change the topics and Quality of Service settings as you wish. - -!!!note - The `Vehicle` should be configured correctly, but if you have many Vehicles or something goes wrong, please select the right Vehicle in the `Vehicle` field by clicking on the small arrow icon and choosing the right item from the list. - -### How to test -The best way to test the Vehicle Ros Input Script is to run *Autoware*. - -1. Run the *Scene* same as on [this page](../../../../GettingStarted/SetupUnityProject/#run-the-demo-in-editor). -2. Launch **only** the *Autoware* like on [this page](../../../../GettingStarted/QuickStartDemo/#launching-autoware) -3. Plan a path in *Autoware* like [here](../../../../GettingStarted/QuickStartDemo/#5-lets-run-the-self-driving-simulation), if the Vehicle moves in *AWSIM* correctly then the Script is configured well. - -## Add Sensors -For a detailed explanation how to add sensors to your Vehicle check out this [dedicated tutorial](../AddSensors/). - -## Add a Vehicle to Scene -First you will have to save the Vehicle you created as a *prefab*, to easily add it later to different Scenes. - -1. Open the Vehicles directory in the *Project* view (`Assets/AWSIM/Prefabs/Vehicles`) -2. Drag the Vehicle *Object* from the *Hierarchy* view to the Vehicles directory - -![save vehicle as prefab](vehicle_save_prefab.gif) - -After that, you can add the Vehicle you created to different Scenes by dragging it from Vehicles directory to the *Hierarchy* of different Scenes. - - diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_add_component.gif deleted file mode 100644 index 9d81a01ac..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_add_object.gif deleted file mode 100644 index a2be88a0e..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_additional_script.png b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_additional_script.png deleted file mode 100644 index 1f166987b..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_additional_script.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_configuration.png b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_configuration.png deleted file mode 100644 index 5c80206b1..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/reflection_probe_configuration.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_add_component.gif deleted file mode 100644 index 16ef6165c..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_configure1.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_configure1.gif deleted file mode 100644 index 3b8ccf395..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_configure1.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_configure2.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_configure2.gif deleted file mode 100644 index d929cd026..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_configure2.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_search.png b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_search.png deleted file mode 100644 index aa225b1ce..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_search.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_turn_gravity_off.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_turn_gravity_off.gif deleted file mode 100644 index 9793ac0b5..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/rigidbody_turn_gravity_off.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/simulation_start.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/simulation_start.gif deleted file mode 100644 index 70b0ded76..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/simulation_start.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/turn_signals_check.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/turn_signals_check.gif deleted file mode 100644 index a28d43620..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/turn_signals_check.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/urdf_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/urdf_add_object.gif deleted file mode 100644 index 6250dd9fd..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/urdf_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_cinput_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_cinput_add_component.gif deleted file mode 100644 index 20ff8fba3..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_cinput_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_input_disable.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_input_disable.gif deleted file mode 100644 index caee36d47..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_input_disable.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_input_script.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_input_script.gif deleted file mode 100644 index be019bd11..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_keyboard_input_script.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_ros_input_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_ros_input_add_component.gif deleted file mode 100644 index 2bf76468a..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_ros_input_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_save_prefab.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_save_prefab.gif deleted file mode 100644 index 09534feae..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_save_prefab.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_add_component.gif deleted file mode 100644 index a40bfb6f7..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_configure.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_configure.gif deleted file mode 100644 index f770c9c30..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_configure.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_search.png b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_search.png deleted file mode 100644 index d2d729a4e..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_script_search.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_visual_effect_script_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_visual_effect_script_add_component.gif deleted file mode 100644 index caa68ca24..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_visual_effect_script_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_visual_effect_script_configure.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_visual_effect_script_configure.gif deleted file mode 100644 index d00362ac4..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/vehicle_visual_effect_script_configure.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_front_l_configured.png b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_front_l_configured.png deleted file mode 100644 index e30aff5e8..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_front_l_configured.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_script_configure_transform.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_script_configure_transform.gif deleted file mode 100644 index f185d6d64..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_script_configure_transform.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_script_configure_transform1280.gif b/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_script_configure_transform1280.gif deleted file mode 100644 index c50b9238e..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddAVehicle/wheel_script_configure_transform1280.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_add_mesh_collider.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_add_mesh_collider.gif deleted file mode 100644 index e40b1e1c8..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_add_mesh_collider.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_add_object.gif deleted file mode 100644 index 9f6063142..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_configure.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_configure.gif deleted file mode 100644 index d28905615..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/collider_configure.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/colliders_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/colliders_add_object.gif deleted file mode 100644 index 57a67ae51..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/colliders_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/colliders_configured.png b/docs/Components/Vehicle/AddNewVehicle/AddColliders/colliders_configured.png deleted file mode 100644 index 2c906bb7a..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/colliders_configured.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/front_left_wheel_add_object_colliders.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/front_left_wheel_add_object_colliders.gif deleted file mode 100644 index 38485d232..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/front_left_wheel_add_object_colliders.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/front_left_wheel_set_transform.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/front_left_wheel_set_transform.gif deleted file mode 100644 index ef40b1e01..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/front_left_wheel_set_transform.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/index.md b/docs/Components/Vehicle/AddNewVehicle/AddColliders/index.md deleted file mode 100644 index 128b707b0..000000000 --- a/docs/Components/Vehicle/AddNewVehicle/AddColliders/index.md +++ /dev/null @@ -1,69 +0,0 @@ -Next you need to add Colliders to your Vehicle. -To do this follow the steps below. - -1. Add a child *Object* called `Colliders` to the `EgoVehicle` *Object*. - - ![colliders add object](colliders_add_object.gif) - -1. Shift parent *Object* `Colliders` accordingly as in earlier steps where we [shifted `Models`](./../AddVisualElements/#move-the-models). - -### Add a Vehicle Collider -1. Add a child *Object* `Collider` to the `Colliders` *Object*. - - ![collider_add_object](collider_add_object.gif) - -1. Add a `Mesh Collider` component to the `Collider` *Object* by clicking on the 'Add Component' button in the *Inspector* view and searching for it. - - ![collider add mesh collider](collider_add_mesh_collider.gif) - -1. Click on the arrow in mesh selection field and from the pop-up window select your collider mesh. - Next click on the check-box called `Convex`, by now your collider mesh should be visible in the editor. - - ![collider configure](collider_configure.gif) - -### Add Wheel Colliders -1. Add a child *Object* `Wheels` to the `Colliders` *Object*. - - ![wheels add object](wheels_add_object.gif) - -!!!note - In this tutorial we will add only one wheel collider, but you should repeat the step for all 4 wheels. - That is, follow the instructions that follow this message for every wheel your Vehicle has. - - - Front Left Wheel - - Front Right Wheel - - Rear Left Wheel - - Rear Right Wheel - -1. Add a child *Object* `FrontLeftWheel` to the `Wheels` *Object*. - - ![front left wheel add object](front_left_wheel_add_object_colliders.gif) - -2. Add a `Wheel Collider` component to the `FrontLeftWheel` *Object* by clicking 'Add Component' and searching for it. - - ![wheel collider add component](wheel_collider_add_component.gif) - -3. Add a `Wheel` Script to the `FrontLeftWheel` *Object* by clicking 'Add Component' and searching for it. - - ![wheel_script_add_component](wheel_script_add_component.gif) - -4. Drag `FrontLeftWheel` *Object* from the `WheelVisuals` to the `Wheel Visual Transform` field. - - ![wheel script configure transform](wheel_script_configure_transform2.gif) - -5. Add a `Wheel Collider Config` Script to the `FrontLeftWheel` *Object* by clicking 'Add Component' and searching for it. - - ![wheel collider config add script](wheel_collider_config_script_add_component.gif) - -6. Configure the `Wheel Collider Config` Script so that the Vehicle behaves as you wish. - - ![wheel collider config configure](wheel_collider_config_script_configure.gif) - -7. Set the Transform of `FrontLeftWheel` *Object* to match the visuals of your Vehicle. - - ![front left wheel set transform](front_left_wheel_set_transform.gif) - -!!! success "Successful configuration" - If you have done everything right your `Colliders` *Object* should look similar to the one following. - - ![colliders configured](colliders_configured.png) diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_add_component.gif deleted file mode 100644 index 3019fc533..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_config_script_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_config_script_add_component.gif deleted file mode 100644 index 4c732ef7f..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_config_script_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_config_script_configure.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_config_script_configure.gif deleted file mode 100644 index d2036b1d0..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_collider_config_script_configure.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_script_add_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_script_add_component.gif deleted file mode 100644 index 9d5e05485..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_script_add_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_script_configure_transform2.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_script_configure_transform2.gif deleted file mode 100644 index d9f1ced58..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheel_script_configure_transform2.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheels_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheels_add_object.gif deleted file mode 100644 index 3d811d157..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddColliders/wheels_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/base_link_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/base_link_add_object.gif deleted file mode 100644 index 994c76a57..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/base_link_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_component.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_component.png deleted file mode 100644 index bad712933..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_component.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_preview_example.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_preview_example.gif deleted file mode 100644 index 20c030bf0..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_preview_example.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_sensor_script.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_sensor_script.png deleted file mode 100644 index ed471d3fb..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/camera_sensor_script.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/index.md b/docs/Components/Vehicle/AddNewVehicle/AddSensors/index.md deleted file mode 100644 index 9585edcc1..000000000 --- a/docs/Components/Vehicle/AddNewVehicle/AddSensors/index.md +++ /dev/null @@ -1,871 +0,0 @@ -## AWSIM Sensors -There is a number of different sensors available in *AWSIM*. -Below we present a list of sensors with links to their individual pages. - -- [Vehicle Status Sensor](../../../../Components/Sensors/VehicleStatusSensor/) -- [GNSS](../../../../Components/Sensors/GNSSSensor/) -- [LiDAR](../../../../Components/Sensors/LiDARSensor/LiDARSensor/) -- [IMU](../../../../Components/Sensors/IMUSensor/) -- [Camera](../../../../Components/Sensors/CameraSensor/) - -## Add links for sensors -Best practice is to replicate a *ROS* sensors transformations tree in Unity using *Objects*. - -### Coordinate system conversion -Please note that Unity uses less common *left-handed* coordinate system. -Please keep this in mind while defining transformations. -More details about right-handed and left-handed systems can be found [here](https://en.wikipedia.org/wiki/Right-hand_rule). - -To simplify the conversion process always remember that any point in ROS coordinate system `(x, y, z)` has an equivalent in the Unity coordinate system being `(-y, z, x)`. - -The same can be done with the rotation. -ROS orientation described with roll, pitch and yaw `(r, p, y)` can be translated to Unity Rotation as follows `(p, -y, -r)`. - -!!! danger "Unit conversion" - Please remember to convert the rotation units. - *ROS* uses radians and *Unity* uses degrees. - The conversion from radians (`rad`) to degrees (`deg`) is as follows. - - ``` - deg = rad * 180 / PI - ``` - -### Add transformations tree -!!! warning "URDF" - Before following this tutorial please make sure you have an `URDF` *Object* like it is shown shown in [this section](../AddAVehicle/#add-a-base-for-sensors-urdf). - -First we will have to add a `base_link` which is the root of all transformations. - -Add a `base_link` *Object* as a child to the `URDF` *Object*. - -![base link add object](base_link_add_object.gif) - -!!!info "`base_link` transformation" - Please remember to set an appropriate transformation of the `base_link` *Object* so that it is identical as the `base_link` used in *ROS* in reference to the Vehicle. - - This is very important, as a mistake here will result in all subsequent sensors being misplaced. - -Inside the `base_link` we will represent all transformations contained in the *ROS* transformations tree. - -You will have to check your Vehicle specific configuration. -You can do this in many ways, for example: - -- Check the ROS specific `.yaml` parameter files containing information about each transformation. - - - !!! example - Here we see an example `.yaml` file containing transformation from the `base_link` to the `sensor_kit_base_link`: - - ```yaml - base_link: - sensor_kit_base_link: - x: 0.9 - y: 0.0 - z: 2.0 - roll: -0.001 - pitch: 0.015 - yaw: -0.0364 - ``` - -- Check the values with *ROS* command line tools (for more information on these please visit [official ROS 2 documentation](https://docs.ros.org/en/foxy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html)). - - You can run a command like the following to check a transformation between two frames. - - ```bash - ros2 run tf2_ros tf2_echo [source_frame] [target_frame] - ``` - - !!! example - Here we see an example command with the output containing transformation from the `base_link` to the `sensor_kit_base_link` (note that the line after `$` sign is the executed command): - - ```log - $ ros2 run tf2_ros tf2_echo base_link sensor_kit_base_link - [INFO] [1686654712.339110702] [tf2_echo]: Waiting for transform base_link -> sensor_kit_base_link: Invalid frame ID "base_link" passed to canTransform argument target_frame - frame does not exist - At time 0.0 - - Translation: [0.900, 0.000, 2.000] - - Rotation: in Quaternion [-0.000, 0.008, -0.018, 1.000] - - Rotation: in RPY (radian) [-0.001, 0.015, -0.036] - - Rotation: in RPY (degree) [-0.057, 0.859, -2.086] - - Matrix: - 0.999 0.036 0.015 0.900 - -0.036 0.999 0.000 0.000 - -0.015 -0.001 1.000 2.000 - 0.000 0.000 0.000 1.000 - ``` - -#### Add one sensor link -!!!note - In this step we will only add one sensor link. - You will have to repeat this step for every sensor you want to add to your Vehicle. - -Let's say we want to add a LiDAR that is facing right. - -We have the following configuration files. - -```yaml -base_link: - sensor_kit_base_link: - x: 0.9 - y: 0.0 - z: 2.0 - roll: -0.001 - pitch: 0.015 - yaw: -0.0364 -``` - -```yaml -sensor_kit_base_link: - velodyne_right_base_link: - x: 0.0 - y: -0.56362 - z: -0.30555 - roll: -0.01 - pitch: 0.71 - yaw: -1.580 -``` - -We can clearly see the structure of transformation tree. -The transformations are as follows. - -``` -base_link -> sensor_kit_base_link -> velodyne_right_base_link -``` - -We need to start adding these transformation from the root of the tree. -We will start with the `sensor_kit_base_link`, as the `base_link` already exists in our tree. - -1. The first step is to add an *Object* named the same as the transformation frame (`sensor_kit_base_link`). - - ![sensor kit base link add object](sensor_kit_base_link_add_object.gif) - -1. Next we have to convert the transformation from *ROS* standard to the *Unity* standard. - This is done with the formulas show in [this section](#coordinate-system-conversion). - - The result of conversion of the coordinate systems and units is shown below. - - ``` - Position: - (0.9, 0.0, 2.0) -> (0.0, 2.0, 0.9) - Rotation: - (-0.001, 0.015, -0.0364) -> (0.8594, 2.0856, 0.0573) - ``` - - The resulting `sensor_kit_base_link` *Object* transformation is shown below. - - ![sensor kit base link configuration](sensor_kit_base_link_configured.png) - -Now the same has to be done with the `velodyne_right_base_link`. - -1. Add transformation *Object* (`velodyne_right_base_link`). - - !!!info - Remember to correctly set the child *Object*, in this case we use `sensor_kit_base_link` as a child, because this is what the `.yaml` file says. - - ![velodyne right base link add object](velodyne_right_base_link_add_object.gif) - -2. Convert the transformation into *Unity* coordinate system. - - The correct transformation is shown below. - - ``` - Position: - (0, -0.56362, -0.30555) -> (0.56362, -0.30555, 0) - Rotation: - (-0.01, 0.71, -1.580) -> (40.68, 90.5273, 0.573) - ``` - - The final `velodyne_right_base_link` *Object* transformation is shown below. - - ![velodyne right base link configuration](velodyne_right_base_link_configured.png) - -!!!success - If you have done everything right, after adding all of the sensor links your `URDF` *Object* tree should look something like the one following. - - ![urdf sample configuration](urdf_example_configuration.png) - -## Add sensors -After [adding links for all sensors](#add-links-for-sensors) you need to add the actual sensors into your Vehicle. - -!!! info "Sensor position" - Please keep in mind, that we have created the [sensor links](#add-links-for-sensors) in order to have an accurate transformations for all of the sensors. - This implies that the Sensor *Object* itself can not have any transformation. - - If one of your Sensors, after adding it to the scene, is mispositioned, check whether the transformation is set to identity (position and rotation are zeros). - -When adding sensors almost all of them will have some common fields. - -- Frame Id - - Frame Id is the name of frame of reference against which the received data will be interpreted by the autonomous driving software stack. - - **Remember** that the Frame Id must exist internally in the ROS transformations tree. - -- Topics - - Topics are names of broadcasting channels. - You can set the names of topics as you like and the data from sensors will be broadcasted on these topics. - - **Remember** to configure your receiving end to listen on the same topics as broadcasting ones. - -- Quality Of Service settings (QOS settings) - - Quality of service settings allow you to configure the behavior of the source node while broadcasting the sensor data. - You can adjust these settings to suit your needs. - -### Add a Vehicle Status Sensor -To add a Vehicle Status Sensor to your Vehicle simply locate the following directory in the *Project* view and drag a prefab of this Sensor into the `URDF` *Object*. - -``` -Assets/AWSIM/Prefabs/Sensors -``` - -![sensors add vehicle status sensor](sensors_add_vehicle_status.gif) - -Next in the *Inspector* View select your *Vehicle*. - -![vehicle status sensor configure](vehicle_status_sensor_configure.gif) - -??? example "ROS message example" - In this example you can see what a valid message from the Vehicle Status Sensor can look like. - - ```log - $ ros2 topic echo --once /vehicle/status/velocity_status - header: - stamp: - sec: 17 - nanosec: 709999604 - frame_id: base_link - longitudinal_velocity: 0.004912620410323143 - lateral_velocity: -0.005416259169578552 - heading_rate: 0.006338323466479778 - --- - ``` - -### Add a LiDAR -!!! info "Scene Manager" - Before continuing with this tutorial please check out a [dedicated one focused on Scene Manager](../../../../Components/Sensors/LiDARSensor/RGLUnityPlugin/#scenemanager). - -To add a LiDAR to your Vehicle you will have to drag a model of the LiDAR to the link tree you have created in the [earlier step](#add-links-for-sensors). - -You can use the predefined RGL LiDAR models or any other LiDAR models. -In this tutorial we will be using RGL `VelodyneVLP16` LiDAR model. - -Simply locate the following directory in the *Project* view and drag the prefab into the designated sensor link. - -``` -Assets/AWSIM/Prefabs/Sensors/RobotecGPULidars -``` - -![sensors add lidar](sensors_add_lidar.gif) - -!!! note "LiDAR noise configuration" - LiDAR Sensor in simulation is returning a **perfect** result data. - This is not an accurate representation of the real-world. - - LiDAR Sensor addresses this issue by applying a simulated noise to the output data. - You can configure the noise parameters in the *Inspector* View under `Configuration -> Noise Params` fields. - - You can optionally remove the noise simulation by unchecking the `Apply Distance/Angular Gaussian Noise`. - - You can also change the ranges of the LiDAR detection. - - ![lidar noise configuration](lidar_sensor_script_configuration.png) - - There is also a possibility to configure the visualization of the Point Cloud generated by the LiDAR. - E.g. change the hit-point shape and size. - - ![lidar visualization configuration](point_cloud_visualization_configuration.png) - -??? example "ROS message example" - In this example you can see what a valid message from the LiDAR Sensor can look like. - - ```log - $ ros2 topic echo --once /lidar/pointcloud - header: - stamp: - sec: 20 - nanosec: 589999539 - frame_id: world - height: 1 - width: 14603 - fields: - - name: x - offset: 0 - datatype: 7 - count: 1 - - name: y - offset: 4 - datatype: 7 - count: 1 - - name: z - offset: 8 - datatype: 7 - count: 1 - - name: intensity - offset: 16 - datatype: 7 - count: 1 - - name: ring - offset: 20 - datatype: 4 - count: 1 - is_bigendian: false - point_step: 24 - row_step: 350472 - data: - - 156 - - 218 - - 183 - - 62 - - 0 - - 189 - - 167 - - 187 - - 32 - - 58 - - 173 - - 189 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 200 - - 66 - - 1 - - 0 - - 0 - - 0 - - 198 - - 129 - - 28 - - 63 - - 0 - - 6 - - 230 - - 58 - - 128 - - 184 - - 93 - - 61 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 200 - - 66 - - 9 - - 0 - - 0 - - 0 - - 92 - - 2 - - 194 - - 62 - - 0 - - 141 - - 42 - - 187 - - 128 - - 89 - - 139 - - 189 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 200 - - 66 - - 2 - - 0 - - 0 - - 0 - - 187 - - 168 - - 42 - - 63 - - 0 - - 159 - - 175 - - 59 - - 160 - - 243 - - 185 - - 61 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 200 - - 66 - - 10 - - 0 - - 0 - - 0 - - 119 - - 186 - - 204 - - 62 - - 0 - - 254 - - 23 - - 59 - - 128 - - 143 - - 41 - - 189 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 200 - - 66 - - 3 - - 0 - - 0 - - 0 - - 65 - - 241 - - 59 - - 63 - - 128 - - 0 - - 252 - - 187 - - '...' - is_dense: true - --- - ``` - -### Add an IMU -To add an IMU to your Vehicle you will have to drag a model of the IMU to the link tree you have created in the [earlier step](#add-links-for-sensors). - -You can use the provided or your own IMU Sensor. -In this tutorial we will be using IMU Sensor provided with *AWSIM*. - -Simply locate the following directory in the *Project* view and drag the prefab into the designated sensor link. - -``` -Assets/AWSIM/Prefabs/Sensors -``` - -![sensors add imu](sensors_add_imu.gif) - -??? example "ROS message example" - In this example you can see what a valid message from the IMU Sensor can look like. - - ```log - $ ros2 topic echo --once /sensing/imu/tamagawa/imu_raw - header: - stamp: - sec: 20 - nanosec: 589999539 - frame_id: tamagawa/imu_link - orientation: - x: 0.0 - y: 0.0 - z: 0.0 - w: 1.0 - orientation_covariance: - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - angular_velocity: - x: 0.014335081912577152 - y: 0.008947336114943027 - z: -0.008393825963139534 - angular_velocity_covariance: - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - linear_acceleration: - x: 0.006333829835057259 - y: -0.005533283110707998 - z: -0.0018753920448943973 - linear_acceleration_covariance: - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - - 0.0 - --- - ``` - -### Add a GNSS -To add a GNSS Sensor to your Vehicle you will have to drag a model of the GNSS to the link tree you have created in the [earlier step](#add-links-for-sensors). - -You can use the provided or your own GNSS Sensor. -In this tutorial we will be using GNSS Sensor provided with *AWSIM*. - -Simply locate the following directory in the *Project* view and drag the prefab into the designated sensor link. - -``` -Assets/AWSIM/Prefabs/Sensors -``` - -![sensors add gnss](sensors_add_gnss.gif) - -??? example "ROS message example" - In this example you can see what a valid message from the GNSS Sensor can look like. - - ```log - $ ros2 topic echo --once /sensing/gnss/pose - header: - stamp: - sec: 8 - nanosec: 989999799 - frame_id: gnss_link - pose: - position: - x: 81656.765625 - y: 50137.5859375 - z: 44.60169219970703 - orientation: - x: 0.0 - y: 0.0 - z: 0.0 - w: 0.0 - --- - ``` - -### Add a Camera -To add a Camera Sensor to your Vehicle you will have to drag a model of the Camera to the link tree you have created in the [earlier step](#add-links-for-sensors). - -Simply locate the following directory in the *Project* view and drag the prefab into the designated sensor link. - -``` -Assets/AWSIM/Prefabs/Sensors -``` - -![sensors add camera](sensors_add_camera.gif) - -You can configure some aspects of the Camera to your liking. - -E.g. you can set the field of view (fov) of the camera by changing the `Field of View` field or manipulating the physical camera parameters like `Focal Length`. - -![camera component](camera_component.png) - -The **important** thing is to configure the `Camera Sensor` Script correctly. - -**Always** check whether the correct `Camera Object` is selected and make sure that `Distortion Shader` and `Ros Image Shader` are selected. - -!!! example "Example Camera Sensor Script configuration" - ![camera sensor script](camera_sensor_script.png) - -You can add the live Camera preview onto the Scene. -To do this select the `Show` checkbox. -Additionally you can change how the preview is displayed. -Change the `Scale` value to control the size of the preview (how many times smaller the preview will be compared to the actual screen size). - -Move the preview on the screen by changing the `X Axis` and `Y Axis` values on the `Image On Gui` section. - -!!! example "Camera preview example" - ![camera preview configuration](camera_preview_example.gif) - -!!! tip "Testing camera with traffic light recognition" - You can test the Camera Sensor traffic light recognition by positioning the vehicle on the *Unity* Scene in such a way that on the *Camera preview* you can see the traffic lights. - - Remember to lock the *Inspector* view on Camera *Object* before dragging the whole Vehicle - this way you can see the preview while moving the vehicle. - - - - ![position the vehicle](vehicle_position.gif) - - Run the *Scene* the same as [on this page](../../../../GettingStarted/SetupUnityProject/#run-the-demo-in-editor). - - Launch **only** the *Autoware* like [on this page](../../../../GettingStarted/QuickStartDemo/#launching-autoware). - - By default you should see the preview of traffic light recognition visualization in the bottom left corner of *Autoware*. - - !!! example "Traffic lights recognition example in *Autoware*" - ![traffic light recognition preview](traffic_light_recognition.png) - -??? example "ROS message example" - In this example you can see what a valid message from the Camera Sensor can look like. - - ```log - $ ros2 topic echo --once /sensing/camera/traffic_light/image_raw - header: - stamp: - sec: 14 - nanosec: 619999673 - frame_id: traffic_light_left_camera/camera_optical_link - height: 1080 - width: 1920 - encoding: bgr8 - is_bigendian: 0 - step: 5760 - data: - - 145 - - 126 - - 106 - - 145 - - 126 - - 106 - - 145 - - 126 - - 106 - - 145 - - 126 - - 105 - - 145 - - 126 - - 105 - - 145 - - 126 - - 105 - - 145 - - 126 - - 105 - - 145 - - 126 - - 105 - - 145 - - 126 - - 105 - - 145 - - 126 - - 105 - - 145 - - 126 - - 104 - - 145 - - 126 - - 104 - - 145 - - 126 - - 104 - - 145 - - 126 - - 104 - - 145 - - 126 - - 104 - - 145 - - 126 - - 104 - - 145 - - 126 - - 104 - - 145 - - 126 - - 104 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 126 - - 103 - - 145 - - 124 - - 103 - - 145 - - 124 - - 103 - - 145 - - 124 - - 103 - - 145 - - 124 - - 103 - - 145 - - 124 - - 103 - - 145 - - 124 - - 103 - - 145 - - 124 - - 103 - - 145 - - 124 - - 101 - - 145 - - 124 - - 101 - - 145 - - 124 - - 101 - - 145 - - 124 - - 101 - - 145 - - 123 - - 101 - - 145 - - 123 - - 101 - - 145 - - 123 - - 101 - - 145 - - 123 - - '...' - --- - ``` - -### Add a Pose Sensor -To add a Pose Sensor to your Vehicle simply locate the following directory in the *Project* view and drag a prefab of this Sensor into the `base_link` *Object*. - -``` -Assets/AWSIM/Prefabs/Sensors -``` - -![pose sensor add prefab](pose_sensor_add_prefab.gif) - -??? example "ROS message example" - In this example you can see what a valid message from the Pose Sensor can look like. - - ```log - $ ros2 topic echo --once /awsim/ground_truth/vehicle/pose - header: - stamp: - sec: 5 - nanosec: 389999879 - frame_id: base_link - pose: - position: - x: 81655.7578125 - y: 50137.3515625 - z: 42.8094367980957 - orientation: - x: -0.03631274029612541 - y: 0.0392342209815979 - z: 0.02319677732884884 - w: 0.9983005523681641 - --- - ``` - -## Test a Sensor - -You can test whether the Sensor works correctly in several ways. - -1. Check whether the configuration is correct. - - In terminal source ROS with the following line (only if you haven't done so already). - - ``` - source /opt/ros/humble/setup.bash - ``` - - Check the details about the topic that your Sensor is broadcasting to with the following command. - - ``` - ros2 topic info -v - ``` - - !!!example - In this example we can see that the message is broadcasted by *AWSIM* and nobody is listening. - We can also examine the Quality of Service settings. - - ```log - $ ros2 topic info -v /awsim/ground_truth/vehicle/pose - Type: geometry_msgs/msg/PoseStamped - - Publisher count: 1 - - Node name: AWSIM - Node namespace: / - Topic type: geometry_msgs/msg/PoseStamped - Endpoint type: PUBLISHER - GID: 01.10.13.11.98.7a.b1.2a.ee.a3.5a.11.00.00.07.03.00.00.00.00.00.00.00.00 - QoS profile: - Reliability: RELIABLE - History (Depth): KEEP_LAST (1) - Durability: VOLATILE - Lifespan: Infinite - Deadline: Infinite - Liveliness: AUTOMATIC - Liveliness lease duration: Infinite - - Subscription count: 0 - - ``` - -2. Check whether correct information is broadcasted. - - In terminal source ROS with the following line (only if you haven't done so already). - - ``` - source /opt/ros/humble/setup.bash - ``` - - View one transmitted message. - - ``` - ros2 topic echo --once - ``` - - !!!example - In this example we can see the Vehicles location at the moment of executing the command. - - **NOTE:** The position and orientation are relative to the frame in the `header/frame_id` field (`base_link` in this example). - - ```log - $ ros2 topic echo --once /awsim/ground_truth/vehicle/pose - header: - stamp: - sec: 46 - nanosec: 959998950 - frame_id: base_link - pose: - position: - x: 81655.7265625 - y: 50137.4296875 - z: 42.53997802734375 - orientation: - x: 0.0 - y: -9.313260163068549e-10 - z: -6.36646204504876e-12 - w: 1.0 - --- - ``` diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/lidar_sensor_script_configuration.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/lidar_sensor_script_configuration.png deleted file mode 100644 index 24c070519..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/lidar_sensor_script_configuration.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/point_cloud_visualization_configuration.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/point_cloud_visualization_configuration.png deleted file mode 100644 index a3d1493e7..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/point_cloud_visualization_configuration.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/pose_sensor_add_prefab.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/pose_sensor_add_prefab.gif deleted file mode 100644 index e04e17ab0..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/pose_sensor_add_prefab.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensor_kit_base_link_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensor_kit_base_link_add_object.gif deleted file mode 100644 index a34ad7570..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensor_kit_base_link_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensor_kit_base_link_configured.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensor_kit_base_link_configured.png deleted file mode 100644 index 85c803618..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensor_kit_base_link_configured.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_camera.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_camera.gif deleted file mode 100644 index b0a4c3c05..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_camera.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_gnss.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_gnss.gif deleted file mode 100644 index d76f398ed..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_gnss.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_imu.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_imu.gif deleted file mode 100644 index 76859547b..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_imu.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_lidar.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_lidar.gif deleted file mode 100644 index 50dbbe409..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_lidar.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_vehicle_status.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_vehicle_status.gif deleted file mode 100644 index 7cbd91b0b..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/sensors_add_vehicle_status.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/traffic_light_recognition.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/traffic_light_recognition.png deleted file mode 100644 index f4ca86e76..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/traffic_light_recognition.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/urdf_example_configuration.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/urdf_example_configuration.png deleted file mode 100644 index e04cf27eb..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/urdf_example_configuration.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/vehicle_position.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/vehicle_position.gif deleted file mode 100644 index be8554ce4..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/vehicle_position.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/vehicle_status_sensor_configure.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/vehicle_status_sensor_configure.gif deleted file mode 100644 index 2141aee91..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/vehicle_status_sensor_configure.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/velodyne_right_base_link_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddSensors/velodyne_right_base_link_add_object.gif deleted file mode 100644 index feca2cb7e..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/velodyne_right_base_link_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddSensors/velodyne_right_base_link_configured.png b/docs/Components/Vehicle/AddNewVehicle/AddSensors/velodyne_right_base_link_configured.png deleted file mode 100644 index 155c4c263..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddSensors/velodyne_right_base_link_configured.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_add_object.gif deleted file mode 100644 index e315ced71..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_mesh_filter.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_mesh_filter.gif deleted file mode 100644 index 244f264f3..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_mesh_filter.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_mesh_renderer.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_mesh_renderer.gif deleted file mode 100644 index e3cafc9b1..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_mesh_renderer.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_object.gif deleted file mode 100644 index f20d3faa5..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/body_car_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_mesh_filter.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_mesh_filter.gif deleted file mode 100644 index fd01387dc..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_mesh_filter.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_mesh_renderer.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_mesh_renderer.gif deleted file mode 100644 index 42b79a91b..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_mesh_renderer.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_object.gif deleted file mode 100644 index 6c5b6e6f3..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/break_light_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/ego_vehicle_add_models.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/ego_vehicle_add_models.gif deleted file mode 100644 index ade6b3487..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/ego_vehicle_add_models.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/front_left_wheel_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/front_left_wheel_add_object.gif deleted file mode 100644 index 4cd9faa9d..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/front_left_wheel_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/front_left_wheel_set_position.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/front_left_wheel_set_position.gif deleted file mode 100644 index a79598b14..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/front_left_wheel_set_position.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/index.md b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/index.md deleted file mode 100644 index c7497a5e3..000000000 --- a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/index.md +++ /dev/null @@ -1,158 +0,0 @@ -Your `EgoVehicle` needs many individual visual parts. -Below we will add all needed visual elements. - -First in `EgoVehicle` *Object* add a child *Object* called `Models`. - -![ego vehicle add models](ego_vehicle_add_models.gif) - -Inside `Models` *Object* we will add all visual models of our `EgoVehicle`. - -### Add a Body -First you will need to add a Body of your Vehicle. -It will contain many parts, so first lets create a `Body` parent *Object*. - -![body add object](body_add_object.gif) - -Next we will need to add Car Body - -1. Add a child *Object* `BodyCar` to the `Body` *Object*. - - ![body car add object](body_car_add_object.gif) - -1. To the `BodyCar` *Object* add a Mesh Filter. - - Click on the 'Add Component' button, search for `Mesh Filter` and select it. - Next search for *mesh* of your vehicle and select it in the `Mesh` field. - - ![body car add mesh filter](body_car_add_mesh_filter.gif) - - ![mesh filter add component](mesh_filter_search.png) - -1. To the `BodyCar` *Object* add a Mesh Renderer. - - Click on the 'Add Component' button, search for `Mesh Filter` and select it - - ![body car add mesh renderer](body_car_add_mesh_renderer.gif) - - ![mesh renderer add component](mesh_renderer_search.png) - -1. Specify Materials. - - You need to specify what materials will be used for rendering your `EgoVehicle` model. - Do this by adding elements to the `Materials` list and selecting the materials you wish to use as shown below. - - ![mesh renderer add materials](mesh_renderer_add_materials.gif) - - Add as many materials as your model has sub-meshes. - - !!!tip - When you add too many materials, meaning there will be no sub-meshes to apply these materials to, you will see this warning. - In such a case please remove materials until this warning disappears. - - ![mesh renderer too many materials](mesh_renderer_too_many_materials.png) - -### Add interactive Body parts -In this step we will add the following parts - -- Break light -- Reverse Light -- Right Turn Signal -- Left Turn Signal -- (optional) other visual elements required specifically by your Vehicle. - -!!!info - It may seem like all of the elements above can be parts of the `Body` mesh, but it is important for these parts to be separate, because we need to be able to make them interactive (e.g. flashing turn signals). - - Other good reason for having different meshes for Vehicle parts is that you have a Vehicle model, but for the simulation you need to add e.g. a roof rack with sensors - which can be achieved by adding more meshes. - -!!! note - We will illustrate this step only for Break Light, but you should repeat this step of the tutorial for each element of the list above. - -1. Add a child *Object* to the `Body` *Object*. - - ![break light add object](break_light_add_object.gif) - -2. Add a Mesh Filter and select the mesh (the same as in [section before](#add-a-body)). - - ![break light add mesh filter](break_light_add_mesh_filter.gif) - - ![mesh filter search](mesh_filter_search.png) - -3. Add a Mesh Renderer and select the materials (the same as in [section before](#add-a-body)). - - ![break light add mesh renderer](break_light_add_mesh_renderer.gif) - - ![mesh renderer search](mesh_renderer_search.png) - -### Add Wheels -In this step we will add individual visuals for every wheel. -This process is very similar to [the one before](#add-interactive-body-parts). - -1. Add a child *Object* to the `Models` *Object* called `WheelVisuals`. - - ![wheel visuals add object](wheel_visuals_add_object.gif) - -!!!note - In this tutorial we will add only one wheel, but you should repeat the step for all 4 wheels. - That is, follow the instructions that follow this message for every wheel your Vehicle has. - - - Front Left Wheel - - Front Right Wheel - - Rear Left Wheel - - Rear Right Wheel - -1. Add a child *Object* to the `WheelVisuals` *Object* called `FrontLeftWheel`. - - ![front left wheel add object](front_left_wheel_add_object.gif) - -2. Add a child *Object* to the `FrontLeftWheel` *Object* called `WheelFrontL`. - This *Object* will contain the actual wheel part. - - ![wheel front l add object](wheel_front_l_add_object.gif) - -3. Add a Mesh Filter and select the wheel mesh. - - ![wheel front l add mesh filter](wheel_front_l_add_mesh_filter_component.gif) - - ![wheel front l configure mesh filter](wheel_front_l_configure_mesh_filter_component.gif) - -4. Add a Mesh Renderer and select the wheel materials. - - ![wheel front l add mesh renderer](wheel_front_l_add_mesh_renderer_component.gif) - - ![wheel front l configure mesh renderer 1](wheel_front_l_configure_mesh_renderer_component1.gif) - - ![wheel front l configure mesh renderer 2](wheel_front_l_configure_mesh_renderer_component2.gif) - -5. Repeat the steps before to add Breaks. - - The same way you have added the `WheelFrontL` *Object* now add the `WheelFrontLBreaks`. - Naturally you will have to adjust the mesh and materials used as they will be different for breaks than for the wheel. - - Your final break configuration should look similar to the one following. - - ![wheel front l breaks configured](wheel_front_l_breaks_configured.png) - -6. Set the `FrontLeftWheel` parent *Object* transformation to position the wheel in correct place. - - ![front left wheel set position](front_left_wheel_set_position.gif) - -!!! success "Successful configuration" - If you have done everything right your `WheelVisuals` *Object* should look similar to the one following. - - ![wheel visuals configured](wheel_visuals_configured.png) - -### Move the models -The last step to correctly configure Vehicle models is to shift them so that the `EgoVehicle` origin is in the center of **fixed** axis. - -This means you need to shift the whole `Models` *Object* accordingly (change the *position* fields in *transformation*). - -!!!tip - Add a `dummy` *Object* as a child to the `EgoVehicle` *Object* (the same as in steps before) so it is located in the origin of the `EgoVehicle`. - - Now move `Models` around relative to the `dummy` - change *position* in the *Inspector* view. - The `dummy` will help you see when the **fixed** axis (in case of the Lexus from example it is the rear axis) is aligned with origin of `EgoVehicle`. - - In the end delete the `dummy` *Object* as it is no longer needed. - - ![models shift w dummy](models_shift_w_dummy.gif) diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_filter_search.png b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_filter_search.png deleted file mode 100644 index e48797a8d..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_filter_search.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_add_materials.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_add_materials.gif deleted file mode 100644 index 93a793be1..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_add_materials.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_search.png b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_search.png deleted file mode 100644 index cbc3562bd..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_search.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_too_many_materials.png b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_too_many_materials.png deleted file mode 100644 index f38cb388f..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/mesh_renderer_too_many_materials.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/models_shift_w_dummy.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/models_shift_w_dummy.gif deleted file mode 100644 index 8608c3a04..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/models_shift_w_dummy.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_mesh_filter_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_mesh_filter_component.gif deleted file mode 100644 index 28375233b..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_mesh_filter_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_mesh_renderer_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_mesh_renderer_component.gif deleted file mode 100644 index 0a73cb1b5..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_mesh_renderer_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_object.gif deleted file mode 100644 index f542619f7..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_breaks_configured.png b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_breaks_configured.png deleted file mode 100644 index 3da2c9266..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_breaks_configured.png and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_filter_component.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_filter_component.gif deleted file mode 100644 index 61263f073..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_filter_component.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_renderer_component1.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_renderer_component1.gif deleted file mode 100644 index 68562f11b..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_renderer_component1.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_renderer_component2.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_renderer_component2.gif deleted file mode 100644 index fb6eca56c..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_front_l_configure_mesh_renderer_component2.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_visuals_add_object.gif b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_visuals_add_object.gif deleted file mode 100644 index 3fe8003ce..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_visuals_add_object.gif and /dev/null differ diff --git a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_visuals_configured.png b/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_visuals_configured.png deleted file mode 100644 index d2fb362c0..000000000 Binary files a/docs/Components/Vehicle/AddNewVehicle/AddVisualElements/wheel_visuals_configured.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/collider.png b/docs/Components/Vehicle/EgoVehicle/collider.png deleted file mode 100644 index 4163a4aa1..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/collider.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/collider_example.png b/docs/Components/Vehicle/EgoVehicle/collider_example.png deleted file mode 100644 index b61ffe885..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/collider_example.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/colliders_link.png b/docs/Components/Vehicle/EgoVehicle/colliders_link.png deleted file mode 100644 index a5fe0085a..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/colliders_link.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/com.png b/docs/Components/Vehicle/EgoVehicle/com.png deleted file mode 100644 index 0e0d6011b..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/com.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/com_2.png b/docs/Components/Vehicle/EgoVehicle/com_2.png deleted file mode 100644 index a3da3b77c..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/com_2.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_flow.drawio b/docs/Components/Vehicle/EgoVehicle/ego_vehicle_flow.drawio deleted file mode 100644 index a947f96cd..000000000 --- a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_flow.drawio +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_flow.png b/docs/Components/Vehicle/EgoVehicle/ego_vehicle_flow.png deleted file mode 100644 index 4e61badbd..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_flow.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_sequence.drawio b/docs/Components/Vehicle/EgoVehicle/ego_vehicle_sequence.drawio deleted file mode 100644 index ebef5f935..000000000 --- a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_sequence.drawio +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_sequence.png b/docs/Components/Vehicle/EgoVehicle/ego_vehicle_sequence.png deleted file mode 100644 index 3463558cd..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/ego_vehicle_sequence.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/fbx.png b/docs/Components/Vehicle/EgoVehicle/fbx.png deleted file mode 100644 index 0eff42c1c..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/fbx.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/index.md b/docs/Components/Vehicle/EgoVehicle/index.md deleted file mode 100644 index 9a9a436c2..000000000 --- a/docs/Components/Vehicle/EgoVehicle/index.md +++ /dev/null @@ -1,399 +0,0 @@ -## Introduction -`EgoVehicle` is a playable object that simulates a vehicle that can autonomously move around the scene. -It has components (scripts) that make it possible to control it by keyboard or by *Autoware* (using *ROS2* communication). Moreover, it provides sensory data needed for self-localization in space and detection of objects in the surrounding environment. - -The default prefab `EgoVehicle` was developed using a *Lexus RX450h 2015* vehicle model with a configured sample sensor kit. - -![vehicle](vehicle.png) - -!!! tip "Own EgoVehicle prefab" - If you would like to develop your own `EgoVehicle` prefab, we encourage you to read this [tutorial](../../../Components/Vehicle/AddNewVehicle/AddAVehicle/). - -### Supported features - -This vehicle model was created for *Autoware* simulation, and assuming that [*Autoware*](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/vehicle/) has already created a gas pedal map, -this vehicle model uses acceleration as an input value. -It has the following features: - -- Longitudinal control by acceleration ($\frac{m}{s^2}$). -- Lateral control by two-wheel model. -- Yaw, roll and pitch controlled by [*Physics*](https://docs.unity3d.com/Manual/PhysicsSection.html) engine. -- Mass-spring-damper suspension model ([`WheelColliders`](#wheels-colliders)). -- Logical, not mechanical, automatic gears change. -- 3D *Mesh* (`*.fbx`) as road surface for vehicle driving, gradient resistance. - -!!! note "AutowareSimulation" - If you would like to see how `EgoVehicle` works or run some tests, we encourage you to familiarize yourself with the `AutowareSimulation` scene described in this [section](../../../ProjectGuide/Scenes/#autowaresimulation). - -### *Lexus RX450h 2015* parameters -| Parameter | Value | Unit | -| :-----------------------: | :---------------------------------------------------------------- | :------------- | -| *Mass* | $1500$ | $kg$ | -| *Wheel base* | $2.5$ | $m$ | -| *Tread width* | $Ft = 1.8; Rr = 1.8$ | $m$ | -| *Center of Mass position* | $x = 0; y = 0.5; z = 0$ | $m$ | -| *Moment of inertia* | $\mathrm{yaw} = 2000; \mathrm{roll} = 2000; \mathrm{pitch} = 700$ | $kg \cdot m^2$ | -| *Spring rate* | $Ft = 55000; Rr = 48000$ | $N$ | -| *Damper rate* | $Ft = 3000; Rr = 2500$ | $\frac{N}{s}$ | -| *Suspension stroke* | $Ft = 0.2; Rr = 0.2$ | $m$ | -| *Wheel radius* | $0.365$ | $m$ | - -!!! info "Vehicle inertia" - - In general, measuring the moment of inertia is not easy, and past papers published by *NHTSA* are helpful.
- [Measured Vehicle Inertial Parameters - NHTSA 1998](https://www.researchgate.net/publication/228945609_Measured_Vehicle_Inertial_Parameters-NHTSA) - -### Prefab and Fbx -Prefab can be found under the following path: - -``` -Assets/AWSIM/Prefabs/NPCs/Vehicles/Lexus RX450h 2015 Sample Sensor.prefab -``` - -!!! note "EgoVehicle name" - In order to standardize the documentation, the name `EgoVehicle` will be used in this section as the equivalent of the prefab named `Lexus RX450h 2015 2015 Sample Sensor`. - -`EgoVehicle` prefab has the following content: - -![prefab_link](prefab_link.png) - -As you can see, it consists of 3 parents for *GameObjects*: - -- `Models` - aggregating visual elements, -- `Colliders` - aggregating colliders, -- `URDF` - aggregating sensors, -- and 2 single *GameObjects*: `CoM` and `Reflection Probe`. - -All objects are described in the sections below. - -### Visual elements -Prefab is developed using models available in the form of `*.fbx` files. -The visuals elements have been loaded from the appropriate `*.fbx` file and are aggregated and added in object `Models`. - -`*.fbx` file for *Lexus RX450h 2015* is located under the following path: - -``` -Assets/AWSIM/Models/Vehicles/Lexus RX450h 2015.fbx -``` - -`Models` object has the following content: - -![models_link](models_link.png) - -As you can see, the additional visual element is `XX1 Sensor Kit`. - -![sensor_kit](sensor_kit.png) - -It was also loaded from the `*.fbx` file which can be found under the following path: - -``` -Assets/AWSIM/Models/Sensors/XX1 Sensor Kit.fbx -``` - -!!! example "Lexus RX450h 2015.fbx" - The content of a sample `*.fbx` file is presented below, all elements except `Collider` have been added to the prefab as visual elements of the vehicle. - `Collider` is used as the *Mesh* source for the `Mesh Collider` in the `BodyCollider` object. - - ![fbx](fbx.png) - -### Link in the default Scene -The default scene contains a single `Lexus RX450h 2015 Sample Sensor` prefab that is added as a child of the `EgoVehicle` *GameObject*. - -![scene_link](scene_link.png) - -In `EgoVehicle` prefab, the local coordinate system of the vehicle (main prefab link) should be defined in the axis of the rear wheels projected onto the ground - in the middle of the distance between them. -This aspect holds significance when characterizing the dynamics of the object, as it provides convenience in terms of describing its motion and control. - - - - -### Components -![prefab](prefab.png) - -There are several components responsible for the full functionality of `Vehicle`: - -- *[Rigidbody](https://docs.unity3d.com/ScriptReference/Rigidbody.html)* - ensures that the object is controlled by the physics engine in *Unity* - e.g. pulled downward by gravity. -- [*Vehicle* (script)](#vehicle-script) - provides the ability to set the acceleration of the vehicle and the steering angle of its wheels. -- [*Vehicle Keyboard Input* (script)](#vehicle-keyboard-script) - provides the ability to set inputs in the *Vehicle* (script) via the keyboard. -- [*Vehicle Ros Input* (script)](#vehicle-ros-script) - provides the ability to set inputs in the *Vehicle* (script) via subscribed *ROS2* topics (outputs from *Autoware*). -- [*Vehicle Visual Effect*](#vehicle-visual-effect-script) - provides the ability to simulate vehicle lights, such as turn signals, brake lights, and hazard light. - -Scripts can be found under the following path: - -``` -Assets/AWSIM/Scripts/Vehicles/* -``` - -### Architecture -The `EgoVehicle` architecture - with dependencies - is presented on the following diagram. - -![ego vehicle structure diagram](../../../Introduction/AWSIM/egovehicle.png) - - -The communication between `EgoVehicle` components is presented on two different diagrams - a flow diagram and a sequence diagram. - -The flow diagram presents a flow of information between the `EgoVehicle` components. - -![ego vehicle flow diagram](ego_vehicle_flow.png) - -The sequence diagram provides a deeper insight in how the communication is structured and what are the steps taken by each component. -Some tasks performed by the elements are presented for clarification. - -![ego vehicle sequence diagram](ego_vehicle_sequence.png) - -!!! info "Sequence diagram" - Please keep in mind, that *Autoware* message callbacks and the update loop present on the sequence diagram are executed independently and concurrently. - One thing they have in common are resources - the *Vehicle* (script). - -## CoM -`CoM` (*Center of Mass*) is an additional link that is defined to set the center of mass in the `Rigidbody`. -The *Vehicle* (script) is responsible for its assignment. -This measure should be defined in accordance with reality. -Most often, the center of mass of the vehicle is located in its center, at the height of its wheel axis - as shown below. - - - - -## Colliders -*Colliders* are used to ensure collision between objects. -In `EgoVehicle`, the main `Collider` collider and colliders in `Wheels` `GameObject` for each wheel were added. - -`Colliders` object has the following content: - -![colliders_link](colliders_link.png) - -### BodyCollider -![collider](collider.png) - -`Collider` is a vehicle object responsible for ensuring collision with other objects. -Additionally, it can be used to detect these collisions. -The `MeshCollider` takes a *Mesh* of object and builds its `Collider` based on it. -The *Mesh* for the `Collider` was also loaded from the `*.fbx` file similarly to the visual elements. - -![collider_example](collider_example.png) - -### Wheels Colliders -![wheel_collider](wheel_collider.png) - -`WheelsColliders` are an essential elements from the point of view of driving vehicles on the road. -They are the only ones that have contact with the roads and it is important that they are properly configured. -Each vehicle, apart from the visual elements related to the wheels, should also have 4 colliders - one for each wheel. - -*Wheel* (script) provides a reference to the collider and visual object for the particular wheel. -Thanks to this, the [*Vehicle* (script)](#vehicle-script) has the ability to perform certain actions on each of the wheels, such as: - -- update the steering angle in `WheelCollider`, - -- update the visual part of the wheel depending on the speed and angle of the turn, - -- update the wheel contact information stored in the [`WheelHit`](https://docs.unity3d.com/ScriptReference/WheelHit.html) object, - -- update the force exerted by the tire forward and sideways depending on the acceleration (including cancellation of skidding), - -- ensure setting the tire sleep (it is impossible to put `Rigidbody` to sleep, but putting all wheels to sleep allows to get closer to this effect). - -*Wheel Collider Config* (script) has been developed to prevent inspector entry for `WheelCollider` which ensures that friction is set to 0 and only wheel suspension and collisions are enabled. - -![wheel_collider_example](wheel_collider_example.png) - -!!! tip "Wheel Collider Config" - For a better understanding of the meaning of `WheelCollider` we encourage you to read [this manual](https://docs.unity3d.com/Manual/class-WheelCollider.html). - -## Rigidbody -![rigidbody](rigidbody.png) - -`Rigidbody` ensures that the object is controlled by the physics engine. -The `Mass` of the vehicle should approximate its actual weight. -In order for the vehicle to physically interact with other objects - react to collisions, `Is Kinematic` must be turned off. -The `Use Gravity` should be turned on - to ensure the correct behavior of the body during movement. -In addition, `Interpolate` should be turned on to ensure the physics engine's effects are smoothed out. - -## Reflection Probe -![reflection](reflection.png) - -[`Reflection Probe`](https://docs.unity3d.com/Manual/class-ReflectionProbe.html) is added to `EgoVehicle` prefab to simulate realistic reflections in a scene. -It is a component that captures and stores information about the surrounding environment and uses that information to generate accurate reflections on objects in real-time. -The values in the component are set as default. - -*HD Additional Reflection Data* (script) is additional component used to store settings for [*HDRP's*](https://unity.com/srp/High-Definition-Render-Pipeline) reflection probes and is added automatically. - -## URDF and Sensors -![urdf_link](urdf_link.png) - -`URDF` (*Unified Robot Description Format*) is equivalent to the simplified [`URDF`](https://docs.ros.org/en/humble/Tutorials/Intermediate/URDF/URDF-Main.html) format used in *ROS2*. -This format allows to define the positions of all sensors of the vehicle in relation to its local coordinate system. -`URDF` is built using multiple *GameObjects* as children appropriately transformed with relation to its parent. - -A detailed description of the `URDF` structure and sensors added to prefab `Lexus RX450h 2015` is available in this [section](../../../Components/Vehicle/URDFAndSensors/). - -## Vehicle (script) -![script](script.png) - -*Vehicle* (script) provides an inputs that allows the `EgoVehicle` to move. -Script inputs provides the ability to set the acceleration of the vehicle and the steering angle of its wheels, taking into account the effects of suspension and gravity. -It also provides an input to set the gear in the gearbox and to control the turn signals. -Script inputs can be set by one of the following scripts: [*Vehicle Ros Input* (script)](#vehicle-ros-script) or [*Vehicle Keyboard Input* (script)](#vehicle-keyboard-script). - -The script performs several steps periodically: - -- checks whether the current inputs meet the set limits and adjusts them within them, -- calculates the current linear velocity, angular velocity vector and local acceleration vector, -- set the current steering angle in the script for each wheel and perform their updates, -- if the current gear is `PARKING` and the vehicle is stopped (its speed and acceleration are below the set thresholds), it puts the vehicle ([`Rigidbody`](https://docs.unity3d.com/ScriptReference/Rigidbody.Sleep.html)) and its wheels ([*Wheel* (script)](#wheels-colliders)) to sleep, -- if the vehicle has not been put to sleep, it sets the current acceleration to each with the appropriate sign depending on the `DRIVE` and `REVERSE` gear. - -#### Elements configurable from the editor level -The script uses the [`CoM`](#com) link reference to assign the center of mass of the vehicle to the `Rigidbody`. -In addiction, `Use inertia` allows to define the [`inertia`](https://docs.unity3d.com/ScriptReference/Rigidbody-inertiaTensor.html) tensor for component `Rigidbody` - by default it is disabled. - -`Physics Settings` - allows to set values used to control vehicle physics: - -- `Sleep Velocity Threshold` - velocity threshold used to put vehicle to sleep, -- `Sleep Time Threshold` - time threshold for which the vehicle must not exceed the `Sleep Velocity Threshold`, have contact with the ground and a set acceleration input equal to zero, -- `Skidding Cancel Rate` - coefficient that determines the rate at which skidding is canceled, affects the anti-skid force of the wheels - the higher the value, the faster the cancellation of the skid. - -`Axles Settings` contains references to ([*Wheel* (script)](#wheels-colliders)) scripts to control each wheel. -Thanks to them, the *Vehicle* (script) is able to set their steering angle and accelerations. - -`Input Settings` - allows to set limits for values on script input: - -- `Max Steer Angle Input` - maximum value of acceleration set by the script (also negative), -- `Max Acceleration Input` - maximum steering angle of the wheels set by the script (also negative). - -`Inputs` - are only used as a preview of the currently set values in the script input: - -![input](input.gif) - -#### Input Data -| Category | Type | Description | -| :-------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| *AccelerationInput* | float | Acceleration input (m/s^2). On the plane, output the force that will result in this acceleration. On a slope, it is affected by the slope resistance, so it does not match the input. | -| *SteerAngleInput* | float | Vehicle steering input (degree). Negative steers left, positive right | -| *AutomaticShiftInput* | enumeration | Vehicle gear shift input (AT).
Values: `PARKING`, `REVERSE`, `NEUTRAL`, `DRIVE`. | -| *SignalInput* | enumeration | Vehicle turn signal input.
Values: `NONE`, `LEFT`, `RIGHT`, `HAZARD`. | - -#### Output data -| Category | Type | Description | -| :------------------ | :---------- | :---------------------------------------------------------------- | -| *LocalAcceleration* | Vector3 | Acceleration(m/s^2) in the local coordinate system of the vehicle | -| *Speed* | float | Vehicle speed (m/s). | -| *SteerAngle* | float | Vehicle steering angle (degree). | -| *Signal* | enumeration | Vehicle turn signal. | -| *Velocity* | Vector3 | Vehicle velocity (m/s) | -| *LocalVelocity* | Vector3 | Vehicle local velocity (m/s) | -| *AngularVelocity* | Vector3 | Vehicle angular velocity (rad/s) | - -The acceleration or deceleration of the vehicle is determined by `AutomaticShiftInput` and `AccelerationInput`. -The vehicle will not move in the opposite direction of the (`DRIVE` or `REVERSE`) input. - -!!! example - Sample vehicle behaves: - - - *Sample 1* - vehicle will accelerate with input values (gradient resistance is received). - - ``` - AutomaticShiftInput = DRIVE - Speed = Any value - AccelerationInput > 0 - ``` - - - *Sample 2* - vehicle will decelerate (like a brake). - - ``` - AutomaticShiftInput = DRIVE - Speed > 0 - AccelerationInput < 0 - ``` - - - *Sample 3* - vehicle will continuously stop. - - ``` - AutomaticShiftInput = DRIVE - Speed <= 0 - AccelerationInput < 0 - ``` - -## Vehicle Ros (script) -![script_ros](script_ros.png) - -*Vehicle Ros* (script) is responsible for subscribing to messages that are vehicle control commands. -The values read from the message are set on the inputs of the [*Vehicle* (script)](#vehicle-script) script. - -The concept for vehicle dynamics is suitable for *Autoware's* [`autoware_auto_control_msgs/AckermannControlCommand`](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_control_msgs/msg/AckermannControlCommand.idl) and [`autoware_auto_vehicle_msgs/GearCommand`](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_vehicle_msgs/msg/GearCommand.idl) messages interface usage. -The script sets gear, steering angle of wheels and acceleration of the vehicle (read from the aforementioned messages) to the *Vehicle* (script) input. -In the case of *VehicleEmergencyStamped* message it sets the absolute acceleration equal to 0. -In addition, also through *Vehicle* (script), the appropriate lights are turned on and off depending on *TurnIndicatorsCommand* and *HazardLightsCommand* messages. - -#### Elements configurable from the editor level -- `* Command Topic` - topic on which suitable type of information is subscribed (default: listed in the table below) -- `QoS`- Quality of service profile used in the publication (default assumed as [`"system_default"`](https://docs.ros.org/en/humble/Concepts/About-Quality-of-Service-Settings.html): `Reliable`, `TransientLocal`, `Keep last/1`) -- `Vehicle` - reference to a script in the vehicle object where the subscribed values are to be set (default: `None`) - -#### Subscribed Topics -- QoS: `Reliable`, `TransientLocal`, `KeepLast/1` - -| Category | Topic | Message type | Frequency (*Autoware* dependent) | -| :------------------------ | :------------------------------------- | :--------------------------------------------------- | :------------------------------: | -| *TurnIndicatorsCommand* | `/control/command/turn_indicators_cmd` | `autoware_auto_vehicle_msgs/TurnIndicatorsCommand` | `10` | -| *HazardLightsCommand* | `/control/command/hazard_lights_cmd` | `autoware_auto_vehicle_msgs/HazardLightsCommand` | `10` | -| *AckermannControlCommand* | `/control/command/control_cmd` | `autoware_auto_control_msgs/AckermannControlCommand` | `60` | -| *GearCommand* | `/control/command/gear_cmd` | `autoware_auto_vehicle_msgs/GearCommand` | `10` | -| *VehicleEmergencyStamped* | `/control/command/emergency_cmd` | `tier4_vehicle_msgs/msg/VehicleEmergencyStamped` | `60` | - -!!! note "ROS2 Topics" - If you would like to know all the topics used in communication *Autoware* with *AWSIM*, we encourage you to familiarize yourself with this [section](../../../Components/ROS2/ROS2TopicList/) - - -## Vehicle Keyboard (script) -![script_keyboard](script_keyboard.png) - -*Vehicle Keyboard* (script) allows `EgoVehicle` to be controlled by the keyboard. -Thanks to this, it is possible to switch on the appropriate gear of the gearbox, turn the lights on/off, set the acceleration and steering of the wheels. -It's all set in the *Vehicle* (script) of the object assigned in the `Vehicle` field. -The table below shows the available control options. - - -| Button | Option | -| :----------------: | :-------------------------------------- | -| `d` | Switch to move forward (drive gear) | -| `r` | Switch to move backwards (reverse gear) | -| `n` | Switch to neutral | -| `p` | Switch to parking gear | -| `UP ARROW ` | Forward acceleration | -| `DOWN ARROW` | Reverse acceleration (decelerate) | -| `LEFT/RIGHT ARROW` | Turning | -| `1` | Turn left blinker on (right off) | -| `2` | Turn right blinker on (left off) | -| `3` | Turn on hazard lights | -| `4 ` | Turn off blinker or hazard lights | - -!!! warning "WASD" - Controlling the movement of the vehicle with `WASD` as the equivalent of arrow keys is acceptable, but remember that the `d` button engages the drive gear. - -#### Elements configurable from the editor level -- `Max Acceleration `- maximum value of acceleration set by the script (also negative) -- `Max Steer Angle` - maximum steering angle of the wheels set by the script (also negative) - -!!! warning "Value limits" - `Max Acceleration` and `Max Steer Angle` values greater than those set in the *Vehicle* (script) are limited by the script itself - they will not be exceeded. - -## Vehicle Visual Effect (script) -![script_visual](script_visual.png) - -This part of the settings is related to the configuration of the emission of materials when a specific lighting is activated. -There are 4 types of lights: `Brake`, `Left Turn Signal`, `Right Turn Signal` and `Reverse`. -Each of the lights has its visual equivalent in the form of a *Mesh*. -In the case of `EgoVehicle`, each light type has its own *GameObject* which contains the *Mesh* assigned. - -![material](material.png) - -For each type of light, the appropriate `Material Index` (equivalent of element index in mesh) and `Lighting Color` are assigned - yellow for `Turn Signals`, red for `Break` and white for `Reverse`. - -`Lighting Intensity` values are also configured - the greater the value, the more light will be emitted. -This value is related to `Lighting Exposure Weight` parameter that is a exposure weight - the lower the value, the more light is emitted. - -All types of lighting are switched on and off depending on the values obtained from the *Vehicle* (script) of the vehicle, which is assigned in the `Vehicle` field. - -#### Elements configurable from the editor level -- `Turn Signal Timer Interval Sec` - time interval for flashing lights - value $0.5$ means that the light will be on for $0.5s$, then it will be turned off for $0.5s$ and turned on again.
-(default: `0.5`) diff --git a/docs/Components/Vehicle/EgoVehicle/input.gif b/docs/Components/Vehicle/EgoVehicle/input.gif deleted file mode 100644 index 90ec3cb25..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/input.gif and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/link.png b/docs/Components/Vehicle/EgoVehicle/link.png deleted file mode 100644 index eaf573962..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/link.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/link_2.png b/docs/Components/Vehicle/EgoVehicle/link_2.png deleted file mode 100644 index c5192cd58..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/link_2.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/material.png b/docs/Components/Vehicle/EgoVehicle/material.png deleted file mode 100644 index a1ba522c1..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/material.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/models_link.png b/docs/Components/Vehicle/EgoVehicle/models_link.png deleted file mode 100644 index 49d04ed93..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/models_link.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/prefab.png b/docs/Components/Vehicle/EgoVehicle/prefab.png deleted file mode 100644 index fade1e21f..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/prefab.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/prefab_link.png b/docs/Components/Vehicle/EgoVehicle/prefab_link.png deleted file mode 100644 index 4f6cc4e94..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/prefab_link.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/reflection.png b/docs/Components/Vehicle/EgoVehicle/reflection.png deleted file mode 100644 index b97e0d1e8..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/reflection.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/rigidbody.png b/docs/Components/Vehicle/EgoVehicle/rigidbody.png deleted file mode 100644 index b1de0f8ef..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/rigidbody.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/scene_link.png b/docs/Components/Vehicle/EgoVehicle/scene_link.png deleted file mode 100644 index 1bcca8412..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/scene_link.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/script.png b/docs/Components/Vehicle/EgoVehicle/script.png deleted file mode 100644 index af09b3d1a..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/script.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/script_keyboard.png b/docs/Components/Vehicle/EgoVehicle/script_keyboard.png deleted file mode 100644 index fb794669d..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/script_keyboard.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/script_ros.png b/docs/Components/Vehicle/EgoVehicle/script_ros.png deleted file mode 100644 index 3eb2114b3..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/script_ros.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/script_visual.png b/docs/Components/Vehicle/EgoVehicle/script_visual.png deleted file mode 100644 index a7d4d82ca..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/script_visual.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/sensor_kit.png b/docs/Components/Vehicle/EgoVehicle/sensor_kit.png deleted file mode 100644 index 4b68213b1..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/sensor_kit.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/urdf_link.png b/docs/Components/Vehicle/EgoVehicle/urdf_link.png deleted file mode 100644 index 283227c26..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/urdf_link.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/vehicle.png b/docs/Components/Vehicle/EgoVehicle/vehicle.png deleted file mode 100644 index 8e0eeefaf..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/vehicle.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/wheel_collider.png b/docs/Components/Vehicle/EgoVehicle/wheel_collider.png deleted file mode 100644 index 7f63ae070..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/wheel_collider.png and /dev/null differ diff --git a/docs/Components/Vehicle/EgoVehicle/wheel_collider_example.png b/docs/Components/Vehicle/EgoVehicle/wheel_collider_example.png deleted file mode 100644 index dc1844c47..000000000 Binary files a/docs/Components/Vehicle/EgoVehicle/wheel_collider_example.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/index.md b/docs/Components/Vehicle/URDFAndSensors/index.md deleted file mode 100644 index 05f619286..000000000 --- a/docs/Components/Vehicle/URDFAndSensors/index.md +++ /dev/null @@ -1,121 +0,0 @@ -# URDF and Sensors -This section describes the placement of sensors in `EgoVehicle` on the example of a `Lexus RX450h 2015 Sample Sensor` prefab. - -`URDF` (*Unified Robot Description Format*) is equivalent to the simplified [*URDF*](https://docs.ros.org/en/humble/Tutorials/Intermediate/URDF/URDF-Main.html) format used in *ROS2*. -This format allows to define the positions of all sensors of the vehicle in relation to its main parent prefab coordinate system. - -![urdf](urdf_links/urdf_link.png) - -`URDF` is added directly to the main parent of the prefab and there are no transforms between these objects. -It is built using multiple *GameObjects* as children appropriately transformed with relation to its parent. - -![urdf](urdf_links/urdf.png) - -The transforms in the `URDF` object are defined using the data from the *sensor kit* documentation used in the vehicle. -Such data can be obtained from *sensor kit* packages for *Autoware*, for example: [`awsim_sensor_kit_launch`](https://github.com/RobotecAI/awsim_sensor_kit_launch) - it is used in the *AWSIM* compatible version of *Autoware*. -This package contains a description of transforms between coordinate systems (frames) in the form of `*.yaml` files: [sensors_calibration](https://github.com/RobotecAI/awsim_sensor_kit_launch/blob/main/awsim_sensor_kit_description/config/sensors_calibration.yaml) and [sensor_kit_calibration](https://github.com/RobotecAI/awsim_sensor_kit_launch/blob/main/awsim_sensor_kit_description/config/sensor_kit_calibration.yaml). - -In the first file, the transform of the *sensor kit* frame (`sensor_kit_base_link`) relative to the local vehicle frame (`base_link`) is defined. -In *Unity*, this transform is defined in the object [`Sensor Kit`](#sensor-kit). -While the second file contains a definition of the transformations of all sensors with respect to the *sensor kit* - they are described in the [`Sensor Kit`](#sensor-kit) subsections. - -!!! note "Transformations" - Please note that the transformation *Objects* are intended to be a direct reflection of frames existing in *ROS2*. - All *frame* *Objects* are defined as children of `base_link` and consist of nothing but a transformation - analogical to the one present in *ROS2* (keep in mind the coordinate system conversion). - The sensor *Objects* are added to the transformation *Object* with **no transformation of their own**. - -!!! warning "Coordinate system conventions" - *Unity* uses a left-handed convention for its coordinate system, while the *ROS2* uses a right-handed convention. - For this reason, you should remember to perform conversions to get the correct transforms. - -## Base Link -`Base Link` (frame named `base_link`) is the formalized local coordinate system in `URDF`. -All sensors that publish data specified in some frame present in *Autoware* are defined in relation to `base_link`. -It is a standard practice in ROS, that `base_link` is a parent transformation of the whole robot and all robot parts are defined in some relation to the `base_link`. - -If any device publishes data in the `base_link` frame - it is added as a direct child, with no additional transformation intermediate *Object* (`PoseSensor` is an example). -However, if this device has its own frame, it is added as a child to its frame *Object* - which provides an additional transformation. -The final transformation can consist of many intermediate transformation *Objects*. -The frame *Objects* are added to the `base_link` (`GnssSensor` and its parent `gnss_link` are an example). - -![baselink](urdf_links/baselink.png) - -### Sensor Kit -`Sensor Kit` (frame named `sensor_kit_base_link`) is a set of objects that consists of all simulated sensors that are physically present in an autonomous vehicle and have their own coordinate system (frame). -This set of sensors has its own frame `sensor_kit_base_link` that is relative to the `base_link`. - -In the `Lexus RX450h 2015 Sample Sensor` prefab, it is added to the `base_link` *GameObject* with an appropriately defined transformation. -It acts as an intermediate frame *GameObject*. -`Sensor Kit` is located on the top of the vehicle, so it is significantly shifted about the `Oy` and `Oz` axes. -Sensors can be defined directly in this *Object* (`VelodyneVLP16` is an example), or have their own transformation *Object* added on top of the `sensor_kit_base_link` (like `GnssSensor` mentioned in the [`base_link` section](#base-link)). - -The sensors described in this subsection are defined in relation to the `sensor_kit_base_link` *frame*. - -![sensor_kit](urdf_links/sensor_kit.png) - -#### LiDARs -`LidarSensor` is the component that simulates the *LiDAR* (*Light Detection and Ranging*) sensor. -The *LiDARs* mounted on the top of autonomous vehicles are primarily used to scan the environment for localization in space and for detection and identification of obstacles. -*LiDARs* placed on the left and right sides of the vehicle are mainly used to monitor the traffic lane and detect vehicles moving in adjacent lanes. -A detailed description of this sensor is available in this [section](../../../Components/Sensors/LiDARSensor/LiDARSensor/). - -`Lexus RX450h 2015 Sample Sensor` prefab has one `VelodyneVLP16` prefab sensor configured on the top of the vehicle, mainly used for location in space, but also for object recognition. -Since the top *LiDAR* publishes data directly in the `sensor_kit_base_link` frame, the prefab is added directly to it - there is no transform. -The other two remaining *LiDARs* are defined, but disabled - they do **not** provide data from space (but you can enable them!). - -##### Top -![velodyne_top](urdf_links/velodyne_top.png) - -##### Left - *disabled* -![velodyne_left](urdf_links/velodyne_left.png) - -##### Right - *disabled* -![velodyne_right](urdf_links/velodyne_right.png) - -#### IMU -`IMUSensor` is a component that simulates an *IMU* (*Inertial Measurement Unit*) sensor. -It measures acceleration and angular velocity of the `EgoVehicle`. -A detailed description of this sensor is available in this [section](../../../Components/Sensors/IMUSensor/). - -`Lexus RX450h 2015 Sample Sensor` has one such sensor located on the top of the vehicle. -It is added to an *Object* `tamagawa/imu_link` that matches its `frame_id` and contains its transform with respect to `sensor_kit_base_link`. -This transformation has no transition, but only rotation around the `Oy` and `Oz` axes. -The transform is defined in such a way that its axis `Oy` points downwards - in accordance with the gravity vector. - -![imu](urdf_links/imu.png) - -#### GNSS -`GnssSensor` is a component which simulates the position of vehicle computed by the *Global Navigation Satellite*. -A detailed description of this sensor is available in this [section](../../../Components/Sensors/GNSSSensor/). - -`Lexus RX450h 2015 Sample Sensor` prefab has one such sensor located on top of the vehicle. -It is added to an *Object* `gnss_link` that matches its `frame_id` and contains its transform with respect to `sensor_kit_base_link`. -The frame is slightly moved back along the `Oy` and `Oz` axes. - -![gnss](urdf_links/gnss.png) - -#### Camera -`CameraSensor` is a component that simulates an *RGB* camera. -Autonomous vehicles can be equipped with many cameras used for various purposes. -A detailed description of this sensor is available in this [section](../../../Components/Sensors/CameraSensor/). - -`Lexus RX450h 2015 Sample Sensor` prefab has one camera, positioned on top of the vehicle in such a way that the cameras field of view provides an image including traffic lights - the status of which must be recognized by *Autoware*. -It is added to an *Object* `traffic_light_left_camera/camera_link` that matches its `frame_id` and contains its transform with respect to `sensor_kit_base_link`. - -![camera](urdf_links/camera.png) - -#### Pose -`PoseSensor` is a component which provides access to the current position and rotation of the `EgoVehicle` - is added as a ground truth. - - -The position and orientation of `EgoVehicle` is defined as the position of the frame `base_link` in the global frame, so this *Object* is added directly as its child without a transform. - -![pose](urdf_links/pose.png) - -#### VehicleSensor -`VehicleStatusSensor` is a component that is designed to aggregate information about the current state of the `EgoVehicle`, such as the active control mode, vehicle speed, steering of its wheels, or turn signal status. -A detailed description of this sensor is available in this [section](../../../Components/Sensors/VehicleStatusSensor/). - -This *Object* is not strictly related to any frame, however, it is assumed as a sensor, therefore it is added to the `URDF`. - -![vehicle](urdf_links/vehicle.png) diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/baselink.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/baselink.png deleted file mode 100644 index 3fc141f95..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/baselink.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/camera.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/camera.png deleted file mode 100644 index 704a1b376..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/camera.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/gnss.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/gnss.png deleted file mode 100644 index 6518d1cad..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/gnss.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/imu.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/imu.png deleted file mode 100644 index c9a01ba9c..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/imu.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/pose.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/pose.png deleted file mode 100644 index 28b47596f..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/pose.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/sensor_kit.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/sensor_kit.png deleted file mode 100644 index 78ad50dbf..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/sensor_kit.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/urdf.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/urdf.png deleted file mode 100644 index 2bd8cea56..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/urdf.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/urdf_link.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/urdf_link.png deleted file mode 100644 index 283227c26..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/urdf_link.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/vehicle.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/vehicle.png deleted file mode 100644 index 98f98ffe6..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/vehicle.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_left.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_left.png deleted file mode 100644 index 75f9fc1bf..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_left.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_right.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_right.png deleted file mode 100644 index 5734e11f5..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_right.png and /dev/null differ diff --git a/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_top.png b/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_top.png deleted file mode 100644 index 0bd6aab62..000000000 Binary files a/docs/Components/Vehicle/URDFAndSensors/urdf_links/velodyne_top.png and /dev/null differ diff --git a/docs/index.md b/docs/index.md index 7756852c6..9f53a80ca 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,7 @@ # CoRE.SIM +![CoRE SIM](https://github.com/StrayedCats/CoRE.SIM/assets/53041471/f89f852a-1fb0-43b1-b4c5-8b4adeffdad7) + CoRE.SIMはCoRE-1向けの最高のシーンシミュレータです。CoRE.SIMは、tier4/AWSIMからフォークされたプロジェクトです。 ## 特徴 diff --git a/mkdocs.yml b/mkdocs.yml index a2a26cc6f..1d69fdc79 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,57 +33,21 @@ extra_javascript: - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js nav: - - Home: index.md + - ホーム: index.md - - Getting started: - - Quick Start Demo: GettingStarted/QuickStartDemo/index.md - - Setup Unity Project: GettingStarted/SetupUnityProject/index.md + - はじめに: + - デモ: GettingStarted/QuickStartDemo/index.md + - Unityを使ってセットアップ: GettingStarted/SetupUnityProject/index.md - - Components: - - Vehicle: - - Ego Vehicle: Components/Vehicle/EgoVehicle/index.md - - URDF And Sensors: Components/Vehicle/URDFAndSensors/index.md - - Add New Vehicle: - - Add Vehicle: Components/Vehicle/AddNewVehicle/AddAVehicle/index.md - - Add Colliders: Components/Vehicle/AddNewVehicle/AddColliders/index.md - - Add Sensors: Components/Vehicle/AddNewVehicle/AddSensors/index.md - - Add Visual Elements: Components/Vehicle/AddNewVehicle/AddVisualElements/index.md - - Sensors: - - LiDAR Sensor: - - LiDAR Sensor: Components/Sensors/LiDARSensor/LiDARSensor/index.md - - Add New LiDAR: Components/Sensors/LiDARSensor/AddNewLiDAR/index.md - - Read Material Information: Components/Sensors/LiDARSensor/ReadMaterialInformation/index.md - - RGLUnityPlugin: Components/Sensors/LiDARSensor/RGLUnityPlugin/index.md - - Camera Sensor: Components/Sensors/CameraSensor/index.md - - IMU Sensor: Components/Sensors/IMUSensor/index.md - - GNSS Sensor: Components/Sensors/GNSSSensor/index.md - - Vehicle Status Sensor: Components/Sensors/VehicleStatusSensor/index.md - - Environment: - - AWSIM Environment: Components/Environment/AWSIMEnvironment/index.md - - Add New Environment: - - Add Environment: Components/Environment/AddNewEnvironment/AddEnvironment/index.md - - Add RandomTraffic: - - Load Items From Lanelet: Components/Environment/AddNewEnvironment/AddRandomTraffic/LoadItemsFromLanelet/index.md - - Add Random Traffic: Components/Environment/AddNewEnvironment/AddRandomTraffic/AddRandomTraffic/index.md - - Add Traffic Intersection: Components/Environment/AddNewEnvironment/AddRandomTraffic/AddTrafficIntersection/index.md - - Add TrafficLights: Components/Environment/AddNewEnvironment/AddTrafficLights/index.md - - Create PCD: Components/Environment/CreatePCD/index.md - - LaneletBoundsVisualizer: Components/Environment/LaneletBoundsVisualizer/index.md - - SmokeSimulator: Components/Environment/SmokeSimulator/index.md - - V2I: Components/Environment/V2I/index.md - - Traffic: - - Traffic Components: Components/Traffic/TrafficComponents/index.md - - Random Traffic: - - Random Traffic Simulator: Components/Traffic/RandomTraffic/RandomTrafficSimulator/index.md - - Add Random Traffic Environment: Components/Traffic/RandomTraffic/AddRandomTrafficEnvironment/index.md - - NPCs: - - Pedestrian: Components/Traffic/NPCs/Pedestrian/index.md - - Vehicle: Components/Traffic/NPCs/Vehicle/index.md + - コンポーネント: + - センサー: + - カメラ センサー: Components/Sensors/CameraSensor/index.md + - IMU センサー: Components/Sensors/IMUSensor/index.md - ROS2: - - ROS2 topic list: Components/ROS2/ROS2TopicList/index.md - - Add custom ROS2 msg: Components/ROS2/AddACustomROS2Message/index.md + - ROS2 トピックリスト: Components/ROS2/ROS2TopicList/index.md + - カスタムROS2 msgを追加数r: Components/ROS2/AddACustomROS2Message/index.md - ROS2 For Unity: Components/ROS2/ROS2ForUnity/index.md - - Developer guide: - - Documentation: DeveloperGuide/Documentation/index.md - - License : DeveloperGuide/License/index.md + - 開発者ガイド: + - ドキュメント: DeveloperGuide/Documentation/index.md + - ライセンス : DeveloperGuide/License/index.md