CARLA Simulator: Difference between revisions
| (10 intermediate revisions by the same user not shown) | |||
| Line 35: | Line 35: | ||
** You will need an Epic Games account linked to your GitHub to have access to the source code. | ** You will need an Epic Games account linked to your GitHub to have access to the source code. | ||
* Clone the carla repo and download assets. | * Clone the carla repo and download assets. | ||
<pre> | |||
# Launch Unreal Engine | |||
make launch | |||
# Build Carla | |||
make package | |||
</pre> | |||
}} | |||
==Sensors== | |||
[https://carla.readthedocs.io/en/latest/ref_sensors/ Sensors Reference] | |||
===RGB Image=== | |||
;Disabling Effects for Stitching | |||
See [https://github.com/carla-simulator/carla/issues/2185 Disable all lens simulating effects on cameras ] | |||
<pre> | |||
# carla/CarlaUE4/Config/DefaultEngine.ini | |||
# Add to section [/Script/Engine.RendererSettings] | |||
r.BlackBorders=0 | |||
r.DepthOfFieldQuality=0 | |||
r.DisableDistortion=1 | |||
r.MotionBlurQuality=0 | |||
r.SceneColorFringeQuality=0 # might be chromatic aberrations | |||
r.Tonemapper.Quality=0 # might be vignette | |||
</pre> | |||
===Depth Image=== | |||
Depths images encode as z-depth to camera as 8-bit images. | |||
To get the meters from the 8-bit RGB image, apply the following formula: | |||
<pre> | |||
normalized = (R + G * 256 + B * 256 * 256) / (256 * 256 * 256 - 1) | |||
in_meters = 1000 * normalized | |||
</pre> | |||
I recommend resaving the depth images as 16-bit PNG images. | |||
This makes the depth values less sensitive to rounding errors, even though 8-bit PNG images are lossless. | |||
To convert depth values to euclidean distance, you need to divide by \(\cos(\theta)\) where \(\theta\) is the angle to the center of the image. | |||
{{hidden | Z-depth to Euclidean Depth | | |||
See [https://github.com/carla-simulator/carla/issues/2287 https://github.com/carla-simulator/carla/issues/2287] for a formula to convert z-depth to euclidean depth. | |||
}} | }} | ||
| Line 74: | Line 118: | ||
See [https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/spawn_npc.py spawn_npc.py] for an example of synchronous mode. | See [https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/spawn_npc.py spawn_npc.py] for an example of synchronous mode. | ||
==Troubleshooting== | |||
* <code>trying to create rpc server for traffic manager; but the system failed to create because of bind error</code> on <code>client.get_trafficmanager()</code> | |||
** kill the program using port 8000 <code>lsof -i :8000</code> | |||
==Coordinate System== | |||
Carla is based on UE4 which uses a left-handed coordinate system. Specifically, up is +z, forward is +x, and right is +y. | |||
To convert (yaw, pitch, roll) rotations to a right-handed coordinate system, just use (-yaw, pitch, -roll) | |||