Commit Graph

466 Commits

Author SHA1 Message Date
bernatx 89c864fbe1 changelog 2023-11-10 10:31:44 +01:00
bernatx e4421b4310 new 0.9.15 version 2023-11-10 09:43:13 +01:00
Guillermo 272791266e CHANGELOG 2023-11-08 19:08:44 +01:00
LuisPoveda 8ce4ca9ed3
Ros2 (#6862)
* Adding ROS2 manager

* Trying to compile fastDDS in windows, but have problems with dependencies

* Camera sensors connected to ROS2, dependencies disabled temporaly

* Including enum with sensors list

* adding GNSS sensor capture

* adding IMU sensor capture

* adding DVS sensor capture

* adding Lidar sensor capture

* adding SemanticLidar and Radar capture

* adding ObstacleDetector and some fixes

* modify cmakelists, failed to find libatomic

* fixed libatomic

* compile fast-dds with libc++

* fixed compliation fast dds with libcxx

* linked carla with fastdds

* Fixed Fast-DDS lib
Now its compiled to a intermediate lib with a bridge so libstdc++ can be used

* moved all ros2 deps to ros2 folder
renamed types from .cxx to .cpp

* Finally FastDDS compiled and working inside CARLA

* exposed publish function for testing

* fixed code style

* make ros2 optional

* make ros2 optional

* Added defines to compile ROS2 code

* ros image publisher working

* deleted some buffer copies

* Added more topics  and ROS2 types

* Adding sensor Transform as argument, and add function to send buffer or serialize and send buffer

* Removing empty buffer from DVS sensor

* fixed lidar publisher

* fixed lidar publisher

* Fix buffer of RGB in ROS2

* adding timestamp of each frame into ROS2 manager

* sending timestamps with frame to ROS2

* put apart timestamp from frame counter call

* adding BufferView to share buffers

* adding BufferView to share buffers

* adding ros_name attribute to all actors

* mapping ros_name for each actor

* ROS2 is now published in a different thread
Publishers now can be created on demand and be reused
Added subscriber for ego vehicle
Fixed build scripts

* forgot to add this fix

* add ros2 to windows scripts

* fixed default ros topic names

* fix topic name duplication

* Adding functions for enable/disable sensors publishing without listen to it

* Added Camera info and ROI types
RGB Camera now publishes in both topics

* move camera info immutable data to the constructor

* Publish transform for all topics
Create Camera DVS subtopics
Fixed bug with Lidar

* Added flip Y to semantic lidar

* Adding callbacks for subscribers from Unreal

* Adding camera info to ROS2 (resolution and FOV)

* Finished ROS2 naming from python

* Fixed bug with ros names

* Delete topics when deleting the sensors

* setting the rosname same as default no longer rewrites it

* ROS transform fix

* Added all camera topics with the image and camera info
Added vehicle control
Added clock publisher

* Change ros2 topic names for vehicle subscriber and  clock publisher

* Rename vehicle control ros2 topic name

* rename subscriber type to CarlaEgoVehicleControl

* Fix semantic lidar default ros name
Fix sizeof the semantic lidar data buffer

* Changed controller stored as string to pointer

* Back to previous version for default hero ros name
Removed debug prints

* Remvoe callback when ego publisher disconnects

* Serializing DVS data before sending to ROS

* dvs camera image and lidar

* DVS Pointcloud publishing

* Remove unnecessary fields

* Send local transforms to ros

* avoid transform recalculation if not needed

* Optical Flow Camera fixed

* Set fixed branch for Fast-DDS to avoid cmake version change issues

* Finally Working on package

* Fix style from FastDDS auto generated files

* Added ros2 to ubuntu in jenkins

* removed ros2 from jenkins, test

* restore ros2 in jenkins

* fix copy shareds, and removed server dependency from libcarla

* test installing the fastdds dependencies in jenkins

* move installing deps to separate stage

* removed install deps

* Fixing test_benchmark_streaming

* Fixed imu orientation and camera info data

* Fixing test_benchmark_streaming.cpp with BufferView

* Removing DEBUG_ONLY()

* publish collision sensor

* Fixing unit-tests with the new BufferView

* camera info is set once

* Fix echo camera info

* fix transform rotation

* Fixing ros_name attribute creation

* fixed camera info and region of interest publish

* fix IMU compass

* Forgot to add ros2 flag to jenkins package

---------

Co-authored-by: bernatx <bernatx@gmail.com>
2023-11-06 12:34:07 +01:00
Michal Sojka 2de8ad017d
PythonAPI: Fix segfaults due to incorrect GIL locking (#6718)
* PythonAPI: Fix segfault in GetAvailableMaps

When using CARLA with Python 3.10, I'm getting a segfault in
GetAvailableMaps. The problem disappears when PyList manipulation does
not happen with GIL unlocked, as done in this commit.

The initial part of crash backtrace (from GDB) is below:

    Program terminated with signal SIGSEGV, Segmentation fault.

    warning: Section `.reg-xstate/49253' in core file too small.
    #0  _PyInterpreterState_GET () at ./Include/internal/pycore_pystate.h:117
    117	   return tstate->interp;
    [Current thread is 1 (Thread 0x7fe6fe48f740 (LWP 49253))]
    (gdb) bt
    #0  _PyInterpreterState_GET () at ./Include/internal/pycore_pystate.h:117
    #1  get_list_state () at Objects/listobject.c:26
    #2  PyList_New (size=0) at Objects/listobject.c:159
    #3  0x00007fe6fdc0dab0 in boost::python::detail::list_base::list_base() () from /nix/store/c95f3nrkz3sflvycihyw1c8q4nk47p4m-boost-1.79.0/lib/libboost_python310.so.1.79.0
    #4  0x00007fe6ef9ecfc4 in boost::python::list::list (this=0x7ffd8a8aae28) at include/boost/python/list.hpp:61
    #5  GetAvailableMaps (self=...) at source/libcarla/Client.cpp:26
    #6  0x00007fe6efb6a8fe in boost::python::detail::invoke<boost::python::to_python_value<boost::python::list const&>, boost::python::list (*)(carla::client::Client const&), boost::python::arg_from_python<carla::client::Client const&> > (rc=..., f=<optimized out>, ac0=...)
        at include/boost/python/detail/invoke.hpp:73
    #7  boost::python::detail::caller_arity<1u>::impl<boost::python::list (*)(carla::client::Client const&), boost::python::default_call_policies, boost::mpl::vector2<boost::python::list, carla::client::Client const&> >::operator() (args_=<optimized out>, this=<optimized out>)
        at include/boost/python/detail/caller.hpp:233
    #8  boost::python::objects::caller_py_function_impl<boost::python::detail::caller<boost::python::list (*)(carla::client::Client const&), boost::python::default_call_policies, boost::mpl::vector2<boost::python::list, carla::client::Client const&> > >::operator() (
        this=<optimized out>, args=<optimized out>, kw=<optimized out>) at include/boost/python/object/py_function.hpp:38
    #9  0x00007fe6fdc1b4dd in boost::python::objects::function::call(_object*, _object*) const () from /nix/store/c95f3nrkz3sflvycihyw1c8q4nk47p4m-boost-1.79.0/lib/libboost_python310.so.1.79.0
    #10 0x00007fe6fdc1b6a8 in boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) ()
       from /nix/store/c95f3nrkz3sflvycihyw1c8q4nk47p4m-boost-1.79.0/lib/libboost_python310.so.1.79.0
    ...

* PythonAPI: Fix segfault in get_random_location_from_navigation()

When I run generate_traffic.py under Python 3.10, I get a segfault at
line:

    loc = world.get_random_location_from_navigation()

The backtrace from gdb looks like this:

    #0  0x00007f04552ad7e7 in new_threadstate () from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/libpython3.10.so.1.0
    #1  0x00007f04552adaa1 in PyGILState_Ensure () from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/libpython3.10.so.1.0
    #2  0x00007f040afd4f32 in std::_Function_handler<void (carla::client::WorldSnapshot), MakeCallback(boost::python::api::object)::{lambda(auto:1)#1}>::_M_invoke(std::_Any_data const&, carla::client::WorldSnapshot&&) ()
       from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #3  0x00007f040b1d4ab1 in carla::client::detail::CallbackList<carla::client::WorldSnapshot>::Call(carla::client::WorldSnapshot) const () from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #4  0x00007f040b1d424a in std::_Function_handler<void (carla::Buffer), carla::client::detail::Episode::Listen()::{lambda(auto:1)#1}>::_M_invoke(std::_Any_data const&, carla::Buffer&&) ()
       from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #5  0x00007f040b23fc41 in boost::asio::detail::completion_handler<boost::asio::detail::binder0<carla::streaming::detail::tcp::Client::ReadData()::{lambda()#1}::operator()() const::{lambda(boost::system::error_code, unsigned long)#1}::operator()(boost::system::error_code, unsigned long) const::{lambda()#1}>, boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul> >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) ()
       from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #6  0x00007f040b24ae85 in boost::asio::detail::strand_service::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) ()
       from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #7  0x00007f040b1a94f5 in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) ()
       from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #8  0x00007f040b199351 in boost::asio::detail::scheduler::run(boost::system::error_code&) [clone .isra.0] () from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #9  0x00007f040b1ac1cb in std:🧵:_State_impl<std:🧵:_Invoker<std::tuple<carla::ThreadPool::AsyncRun(unsigned long)::{lambda()#1}> > >::_M_run() ()
       from /nix/store/zqj9irpw63pal9r4671p1gjd9jiw5sid-ros-env/lib/python3.10/site-packages/carla/libcarla.cpython-310-x86_64-linux-gnu.so
    #10 0x00007f040bce05c3 in execute_native_thread_routine () from /nix/store/2fpmbk0g0ggm9zq89af7phvvvv8dnm7n-gcc-12.3.0-lib/lib/libstdc++.so.6
    #11 0x00007f045509fdd4 in start_thread () from /nix/store/1x4ijm9r1a88qk7zcmbbfza324gx1aac-glibc-2.37-8/lib/libc.so.6
    #12 0x00007f04551219b0 in clone3 () from /nix/store/1x4ijm9r1a88qk7zcmbbfza324gx1aac-glibc-2.37-8/lib/libc.so.6

It turns out that its caused by releasing GIL for too long. We fix it
by releasing the GIL only for the actual libcarla call and
constructing Python objects with GIL locked.

---------

Co-authored-by: bernat <bernatx@gmail.com>
2023-10-27 14:37:46 +02:00
bernatx 827508fcea CarlaExporter tool now exports the box collider and convex collider of the object if it has one, otherwise the mesh (fixed problem with big meshes) 2023-10-19 10:37:06 +02:00
Omar Alam 4ab06d588c Add change message to changelog 2023-09-27 12:18:16 +02:00
javiergrCS 14447def90
Adding a new function that loads a map only if it is different (#6651)
* Adding a new function to load a map only if it is different

* Removing commented code

* Updated AddVehicleWheelsAnimation function

* Revert "Updated AddVehicleWheelsAnimation function"

This reverts commit 55405a3de7.

* Small correction: removing blank space

* Changelog.md update

---------

Co-authored-by: Adri Ollero <adriollero@gmail.com>
Co-authored-by: Axel1092 <35765780+Axel1092@users.noreply.github.com>
2023-09-06 12:34:59 +02:00
bernatx 27a06da659 changeslog 2023-06-21 11:02:41 +02:00
bernatx 73315d3d62 Pedestrians collision deisabled when using AI or in replayer 2023-05-05 10:55:53 +02:00
Guillermo 3f2acd3465 Limited Collision events to one 2023-04-27 11:44:01 +02:00
anrp-tri 4e070089c8
Make (Unreal) non-unity build available (#6190)
This lets IWYU-type errors be fixed; they are often masked by it.
Fix all detected errors of this kind. Note that Unity is on by
default, likely for performance reasons, so this does not change
that; instead, pass ARGS=--no-unity to make to try it (note that this
unfortunately will rebuild the editor too.)

Co-authored-by: anrp <anrp@tri.global>
Co-authored-by: Axel1092 <35765780+Axel1092@users.noreply.github.com>
Co-authored-by: bernat <bernatx@gmail.com>
2023-03-20 12:09:39 +01:00
Feej fba921c03a
Bugfix: Pixel data not set correctly will crash when saving pixels to disk (#6235) 2023-03-17 12:07:09 +01:00
Axel1092 6d31d3fc4a
Updated content and changelog (#6175)
* Updated changelog and content versions

* Added vehicle.sixwheeltruck.sixwheeltruck to smoke test exclusion list

* Fix old town tests

* fixed vehicle id in smoke test

* Update ContentVersions.txt

---------

Co-authored-by: bernat <bernatx@gmail.com>
2023-03-17 11:28:55 +01:00
xqgex 3ea23d6826
Add keyword arguments for carla.TrafficManager Python API functions (#6246)
* Update TrafficManager.cpp

* Update CHANGELOG.md

* Remove all default values except for set_path and set_route
2023-03-09 09:53:51 +01:00
bernatx 34469375c7 Now the TilesInfo.txt file is searched only in the destination map folder 2023-03-09 09:52:41 +01:00
MattRoweEAIF 86daa78794 updated changelog 2023-03-01 11:20:02 +01:00
bernatx 7f5bb15731 adding --ignore-spectator to the replayer 2023-02-06 14:17:51 +01:00
Guillermo 58461b4a2d Fixed Tm unstuck removal 2023-02-02 11:30:46 +01:00
Guillermo ce5bf30f7f CHANGELOG 2023-01-27 14:04:37 +01:00
Balázs Kis 1f6ac1d2eb Add contribution to CHANGELOG.md 2023-01-24 17:31:12 +01:00
bernatx 82d1dc104e changelog 2023-01-18 11:12:10 +01:00
bernatx ffbb543974 changelog 2023-01-16 17:30:34 +01:00
bernatx ca35b61112 updating version to 0.9.14 2022-12-23 10:57:59 +01:00
bernatx c9552887a0 Some sensors are forced to be always on the primary server in multi-gpu mode 2022-12-20 13:18:19 +01:00
bernatx ef54692f45 Using same id's as the cityscape labels 2022-12-20 13:17:59 +01:00
Guillermo 7f2d656c25 Added a vehicle simualtion update on teleportation 2022-12-19 10:42:27 +01:00
bernatx 028df0c24d changelog 2022-11-29 11:25:26 +01:00
Marcel Pi a152863b11
Merge GBuffer features. (#5960)
* Add Misc/GBuffer

* Add EnqueueRenderSceneImmediateWithGBuffer.

* Modified ASceneCaptureSensor to allow gbuffer recording.

* Minor GBuffer progress.

* More GBuffer changes.

* Removed unnecessary files.

* Add FRHITexture* functions to FPixelReader + temporarily disabled non-gbuffer rendering in ASceneCaptureSensor.

* Add missing FPixelReader functions.

* Minor changes (Switching to Windows).

* Remove FRHITexture functions from FPixelReader, added the file ImageUtil.

* Remove FRHITexture functions from FPixelReader, added the file ImageUtil. (2)

* Added API to listen GBuffer data.

* Added gbuffer serializer classes

* Temporarily remove ViewRect hack.

* Add USceneCaptureComponent* derived classes.

* Disable USceneCaptureComponent*_CARLA and add initial FRHIGPUTextureReadBack-based code.

* Fix and re-enable custom SceneCaptureComponents.

* Fully switch to FRHIGPUTextureReadback.

* Remove unnecessary call to FlushRenderingCommands.

* Minor API changes.

* Add support for PF_DepthStencil in ImageUtil.

* More API progress...

* More API progress... (2)

* Removed testing code.

* Minor changes for testing.

* GBuffer API fixes.

* Improve GBuffer capture code.

* Fixed SceneDepth transfer issues and added SceneStencil, CustomDepth and CustomStencil to the GBuffer capture.

* Fix compilation error due to the usage of C++17 features.

* Removed major memory leak and added manual_control_gbuffer.py.

* Fixed a silly mistake.

* Minor changes to manual_control_gbuffer and SceneCaptureSensor.

* Fix compilation error on some versions of Ubuntu.

* Disable TAA when reading GBuffers to avoid jitter.

* Improve memory usage.

* Progress towards automatically detecting when a GBuffer stream is unused.

* Fix includes in SceneCaptureSensor + minor change in manual_control_gbuffer.py

* Progress on automatically detecting which GBuffers aren't needed.

* Remove unneeded __declspec.

* Revert ASensor changes + fix tutorial_gbuffer.py

* Update CHANGELOG.md

* Apply requested changes for the PR, add gitignore for the file OptionalModules.ini and add a GBufferTextureID enum to the Python API.

* Remove OptionalModules.ini.

* Fix indentation.

* Fix indentation (2).

* Fix indentation (3).

* Add documentation and more indentation fixes.

* Remove commented includes.

* Add missing line break.

* Fix memory leak + remove unneeded files.

* Add .uproject again, fix EngineAssociation.

* Remove unneeded ENQUEUE_RENDER_COMMAND.

* Fix manual_control_gbuffer.py.

* Add `stop_gbuffer` to the Python API.

* Minor fixes.

* Fix performance bug.

Previously, when a client requested a gbuffer that is unused it would stay open, even after stopping it explicitly. This commit fixes this issue.

* Fix indentation.

* Add missing braces, more indentation fixes and simplify some of the code.

* Update sensor.yml docs.

* Update docs.

* Remove unnecessary UE_Log + changed one verbosity level.

Co-authored-by: Axel <axellopez92@outlook.com>
Co-authored-by: Axel1092 <35765780+Axel1092@users.noreply.github.com>
2022-11-29 11:24:26 +01:00
bernatx edbdb1306e changeslog 2022-11-23 16:51:41 +01:00
Bernd Gassmann 6c4d676569 Prevent from segfault OnTriggerEndOverlap
In case the OtherActor is not a Vehicle just return
2022-10-17 16:21:58 +02:00
Guillermo dec92e690c Fixed collision detection 2022-10-11 16:03:32 +02:00
bernatx 67d7da7e88 changelog 2022-09-28 13:54:04 +02:00
bernatx db1637a924 changelog 2022-09-16 09:40:49 +02:00
Joel Moriana 71fa77d648 CHANGELOG updated 2022-08-17 15:32:00 +02:00
Guillermo e33c3400dd CHANGELOG 2022-08-16 12:20:42 +02:00
bernatx f97575b1f3 changeslog 2022-07-25 15:26:55 +02:00
bernatx 5348c0e5b0 changelog 2022-07-22 16:14:44 +02:00
Joel Moriana 17585f4acc CHANGELOG updated 2022-07-22 09:29:08 +02:00
bernatx feb5a572e2 changelog 2022-07-21 13:24:02 +02:00
Guillermo 24e07a31f2 CHANGELOG 2022-07-12 15:49:03 +02:00
glopezdiest bf2815ec58
Improved Python agent performance (#5555)
* Improved agent performance

* CHANGELOG
2022-07-01 18:30:56 +02:00
Guillermo 10160da614 Fixed waypoint bug + new speed limits 2022-07-01 10:53:48 +02:00
glopezdiest 90c624bc8c
Updated the information that traffic lights sent to vehicles 2022-06-01 15:11:29 +02:00
Guillermo b3ea8d0acc Added large map transform 2022-05-26 15:59:28 +02:00
Guillermo e56470659a Fixed raytracing functions 2022-05-24 08:41:38 +02:00
Guillermo 6aa6b137e1 CHANGELOG 2022-05-17 08:43:08 +02:00
glopezdiest a649c67d7e
Added failure states for vehicles (#5410)
* Added failure states for vehicles

* Added missing endline
2022-05-16 21:55:19 +02:00
Guillermo 392cfaec38 CHANGELOG 2022-05-13 09:00:46 +02:00
glopezdiest c11dfddcab
Fixed bug at TM when teleporting vehicles with no physics 2022-05-09 10:10:37 +02:00