Commit Graph

1469 Commits

Author SHA1 Message Date
Daraan a06ab08c4c
Named and type-hint supporting detection results for the python agents. (#7174)
* Python agents: Created NamedTuple for Detection return types

* Python 2.7 and <3.6 compatible code

* Updated Changelog

* removed print

* Added file description

* removed unnecessary line

* Added Literal type hint for <3.8 Python

---------

Co-authored-by: glopezdiest <58212725+glopezdiest@users.noreply.github.com>
Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com>
2024-05-31 17:37:10 +02:00
joel-mb 01b1ede51a
Expose Telemetry Data (#5153)
* expose telemetry data to the client

* CHANGELOG updated

* minor fixes

* Added new telemetry parameters:

* Exposed omega instead of rpm
* Added tire_load, normalized_long_force, normalized_lat_force

---------

Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com>
2024-05-31 13:36:46 +02:00
Daraan d5c37f71b7
Corrected information that Sensor.is_listening is a method (#7439)
Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com>
2024-05-31 12:04:04 +02:00
Aaron 7b2ff04496 Not tests V2X tick 2024-05-24 12:33:41 +02:00
Daniel Grimm bace2f1aab comments and formatting 2024-05-03 12:23:02 +02:00
Daniel Grimm 7be2803454 add EOFs 2024-05-03 12:23:02 +02:00
Daniel Grimm 079f822911 remove comment 2024-05-03 12:23:02 +02:00
Daniel Grimm c7cfdad9a3 v2x 2nd try 2024-05-03 12:23:02 +02:00
MattRoweEAIF ed4e0176f7
Docs/updates april (#7419)
* fixed typos and broken links

* updated python_api.md

* fixed CityObjectLabel API docs

* added load_world_if_different to API docs

* added return type to reload_world

* updated python_api.md

* added FutureActor to API docs
2024-04-12 15:07:44 +02:00
MattRoweEAIF ca7fb1a511
Docs/updates april (#7418)
* fixed typos and broken links

* updated python_api.md

* fixed CityObjectLabel API docs

* added load_world_if_different to API docs

* added return type to reload_world

* updated python_api.md
2024-04-12 14:39:34 +02:00
MattRoweEAIF 054dae3a74
Docs/updates april (#7417)
* fixed typos and broken links

* updated python_api.md

* fixed CityObjectLabel API docs

* added load_world_if_different to API docs
2024-04-12 14:33:03 +02:00
MattRoweEAIF d589c45a5b
fixed typos and broken links (#7396)
* fixed typos and broken links

* updated python_api.md
2024-04-11 14:59:30 +02:00
Olli Koskelainen d5d3cf9edf
Debug drawing extension to allow drawing primitives on HUD layer (#7168)
* Extended debug draw functions to allow drawing primitives on HUD layer

* Added documentation for new drawing features

* Added debug draw changes to changelog

---------

Co-authored-by: Olli <olli.koskelainen@tuni.fi>
2024-03-27 12:28:43 +01:00
Axel a12a137c86 Added restore_physx_physics function 2024-03-25 17:01:52 +01:00
Daraan 7c9233bb54
Fixing distro deprecation in setup.py and failing installation on pure Debian (#6802)
* Fixed distro deprecation, failing on Debian

* Updated CHANELOG.md for distro deprecation

* Update setup.py

Substituted double occurring list.

---------

Co-authored-by: Daniel@copernicus <daniel.sperber@mail.uni-mannheim.de>
2024-03-18 10:41:05 +01:00
javiergrCS 3eb9a76263
Javiergr cs/get socket names (#7170)
* Added new function to obtain the name of all actor sockets

* Updating CHANGELOG.md

* Simplifying code of get_actor_socket_names function

---------

Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com>
2024-03-13 23:02:00 +01:00
MattRoweEAIF d3636d241c
fixed refs in dev (#7232) 2024-03-11 11:49:51 +01:00
Aaron 94df1fbe9b Trimed whitespaces 2024-03-07 12:36:53 +01:00
Daraan 694ad122ac
Bugfixes for python agents obstacle detection when empty vehicle_list is passed. (#7142)
* Bugfix for empty vehicle_list

Bug description: When an empty list is passed this fills the list with all vehicles; this is not intended. 

1) This does not allow to pass an empty list, e.g. if no vehicles are nearby.

2) On a map without pedestrians, this code is also used with an empty list which then detects cars as pedestrians.

* Update CHANGELOG.md with agent bugfix note

---------

Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com>
2024-02-21 11:46:20 +01:00
LuisPoveda cb9a9d77ab
Luis/extend spawn actor (#7154)
* Extended spawn_actor to accept a socket name and spawn the actor in the parents socket

* fix pr review
2024-02-19 11:21:36 +01:00
javiergrCS 5d6862c3d7
Javiergr cs/get bones transform (#7153)
* Add actor component getters to the PythonAPI

Adds functions:
 - get_component_world_transform
 - get_component_relative_transform

to the Python API to acces the transform of actor components by name

* Update changelog for get-transform-component changes

* Adding getters for receive bone names and transforms

* Corrections

* Correcting Python API function definitions to make them able to return lists

* Improving the code of get_actor_bone_world_transforms

* Adding getters to obtain socket transforms

* Updating CHANGELOG.md

* Deleting .ignore

* Updating Util/BuildTools/Setup.sh

* Correcting Setup.sh

---------

Co-authored-by: Aperiss <perissanchezantonio@gmail.com>
Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com>
2024-02-19 10:26:34 +01:00
Aperiss 193d9cf7cd Update changelog for get-transform-component changes 2024-02-12 13:14:13 +01:00
Aperiss 0b13c72d63 Add actor component getters to the PythonAPI
Adds functions:
 - get_component_world_transform
 - get_component_relative_transform

to the Python API to acces the transform of actor components by name
2024-02-12 13:14:13 +01:00
Bernd Gassmann 7003a7cfbf Fix RSS python code
and adapt on updated synchronous mode handling
2023-11-24 08:33:40 +01:00
Bernd Gassmann 800b394d2a Fix build of RSS version with python 3.10 and Ubuntu 22.04 2023-11-24 08:33:40 +01:00
bernatx e4421b4310 new 0.9.15 version 2023-11-10 09:43:13 +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
minsu c78f8eb45a Sync map.yml too 2023-09-27 13:56:45 +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 3552b1f184 Adding some pedestrians generation 3 2023-06-16 20:41:06 +02:00
bernatx 73315d3d62 Pedestrians collision deisabled when using AI or in replayer 2023-05-05 10:55:53 +02:00
xqgex 133873bf1c Typo maxixum => maximum 2023-05-03 16:47:42 +02:00
MattRoweEAIF 102eb3f0c7 updated collision sensor documentation 2023-04-27 11:44:01 +02:00
Th1nkMore 9fefb127a6 remove duplicated cloudiness output 2023-04-27 09:57:10 +02:00
Guillermo 70a8ca831b Added default values to the CARLA client 2023-04-26 15:05:46 +02:00
Guillermo a9819fa289 Added filter check to examples 2023-04-24 11:35:12 +02:00
MattRoweEAIF ade852e619
Review python api (#6330)
* updated missing api docs

* auto generated python_api.md

* @glopezdiest corrections

---------

Co-authored-by: bernat <bernatx@gmail.com>
2023-04-14 08:43:38 +02:00
MattRoweEAIF 5c445df124 added spectator as ego parameter to API docs 2023-04-13 13:05:27 +02:00
Guillermo 7df2fd8a96 Added missing bool at world init 2023-04-13 13:05:27 +02:00
Guillermo 1501a13b1e Added spectator_as_ego settings 2023-04-13 13:05:27 +02: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
LuisPoveda d7374230da blueprint doc updated 2023-02-15 09:51:25 +01:00
LuisPoveda 1c4f526c60 added filter by attribute to python api 2023-02-15 09:51:25 +01:00
bernatx 7f5bb15731 adding --ignore-spectator to the replayer 2023-02-06 14:17:51 +01:00
MattRowe18 aafc208f63 changed speed limit output units 2023-01-27 14:05:03 +01:00
Guillermo f507d837f0 Exposed Python agents' offset 2023-01-27 14:04:37 +01:00
anrp f66fd8e7c7 Use Unreal's host SDK on Linux
The supported compiler is clang, but that is not the default on Ubuntu.
Unreal Editor itself ships clang-10 for use on linux (along with the
libc++ that Unreal itself uses) so just use those in CARLA.
2023-01-27 12:39:48 +01:00
Apostolos Georgiadis f761ffa49f Fix typo in updating lateral controller 2023-01-11 13:30:10 +01:00