Commit Graph

36 Commits

Author SHA1 Message Date
berndgassmann 634e418777 Cleanup and harmonize Carla build
Ensure that actually only the unreal sysroot is deployed for all C as
well C++ compilations including dependencies. That ensures the server is
NOT anymore linked against the system glibc (which is in Ubuntu22.04
incompatible with the Unreal one). As a consequence no local clang
installation required anymore to build under Linux.

Harmonized naming split into client/server (instead of libcpp and
libstdcpp) to ensure nothing mixed up (and there were things mixed up
before!)

Refactor C# Unreal build using CarlaRules base class to provide common
functionality. Fixing windows build without ROS2 and added intitial
windows build with ROS2

Restrict to one DDS-Domain-Participant for carla-server (Fixes bind
address already in use exception on with ROS2).

Due to continued segfaults in reallocations of MallocBinned2 in
conjunction with ROS2 enforce using AnsiMalloc calls under Linux (see
https://forums.unrealengine.com/t/dealing-with-allocator-mismatches-with-external-libraries/1416830)

Use C++20 to allow for more robust struct initialization (see
https://en.cppreference.com/w/cpp/language/aggregate_initialization),
added Eigen C++20 patches and required CARLA changes to cope with C++20
compilation errors
Be aware: This change requires the Unreal PR
(https://github.com/CarlaUnreal/UnrealEngine/pull/23)

Move forward to g++-13

Minors:
- Fix make clean call
- Update osm2odr commit with build fix
(https://github.com/carla-simulator/sumo/pull/6)
- Update ad-rss to 4.4.5 (supports boost 1.80)
- Fix windows install scripts and forward arguments for building
libcarla
- Adapt codeformat.py to python3 using clang-format-14
2024-07-08 09:26:29 +02: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
bernatx 9c9eda84bc Multi GPU first version 2022-07-21 13:24:02 +02:00
bernat b6639328ac Removing pointer to function, applying Nestor cleaner method 2020-06-30 13:12:22 +02:00
bernat e5861e5c91 Adding 'atomic' library at linking on Ubuntu 2020-06-30 13:12:22 +02:00
Marc Garcia Puig 7eda35fe80 Deleted opendrive cephes lib 2020-02-07 17:16:48 +01:00
Axel ae2ae92bf1 Added spirals and splines to opendrive parser. 2020-02-07 17:16:48 +01:00
nsubiron ab2f6f5bb6 Move third-party code in LibCarla to a third-party folder 2019-07-01 19:11:01 +02:00
nsubiron 00cdad57c6 Fix missing quotes in CMake files 2019-04-29 15:35:33 +02:00
nsubiron 9e4925b838 Include external dependencies as system to allow stricter warning checks 2019-04-29 15:35:33 +02:00
nsubiron e8e13239c8 Organize CMakeLists.txt files 2019-03-27 15:00:41 +01:00
bernatx 650231707d Creating tests for opendrive 2019-03-19 20:48:55 +01:00
Daniel 9025b7fa00 Signal parser 2019-03-15 19:44:27 +01:00
nsubiron e9d22073c7 Split LibCarla build into debug and release 2019-03-13 17:18:47 +01:00
Marc Garcia Puig 1e5d87878e Added zlib and libpng to Win setup, PythonAPI now compiles on Win 2019-02-12 15:06:27 +01:00
nsubiron 6ff8784f16 Compile server pipeline with -fno-exceptions, split unit tests for client and server 2019-01-26 17:27:14 +01:00
Fabian Oboril f00f350ca3 Change cmake version from 3.9 to 3.5
No feature of cmake newer than 3.5 is used. Therefore, we can use
cmake 3.5, which is also standard in Ubuntu 16.04, whereas cmake 3.9
is non-standard.
2018-11-20 14:26:48 +01:00
nsubiron 2a6e341434 Fix CMakeLists.txt source files 2018-10-31 19:30:00 +01:00
nsubiron 5c4d01167c Merge branch 'roads' into road_points_test 2018-10-26 18:20:29 +02:00
iFuSiiOnzZ e414eb8e98 Update cmake file 2018-10-25 13:50:25 +02:00
nsubiron 81e7fbc12c Merge branch 'com' into roads 2018-10-19 15:14:35 +02:00
iFuSiiOnzZ b8c76c67f8 Add missing installation files from carla server 2018-10-15 15:09:11 +02:00
iFuSiiOnzZ ffb6d2e1d0 Compile opendrive for server and copy headers to Unreal depencies folder 2018-10-11 16:09:54 +02:00
nsubiron b3f8d4dc51 Add LifetimeProfiled to profile actor's lifetime 2018-10-09 14:23:07 +02:00
nsubiron dd0de88fbd Add namespaces for road classes and opendrive 2018-10-03 11:33:18 +02:00
nsubiron d0629c9381 Image serialization complete pipeline 2018-10-02 15:03:58 +02:00
nsubiron c68c3e9e4c Basis for SensorRegistry and ASensor class 2018-10-02 15:03:58 +02:00
nsubiron fb2691e326 Add buffer pool to reuse allocated memory 2018-10-02 15:03:03 +02:00
iFuSiiOnzZ 4a56c81ee9 Fix cmake boost lib path for LibCarla server
For the server the boost lib path was define as BOOST_LIBRARY_PATH and for the client as BOOT_LIB_PATH. To keep it uniform between linux and windows, the variable was rename as BOOST_LIB_PATH.
2018-07-30 09:34:11 +02:00
iFuSiiOnzZ 756646020d Merge branch 'carla-0.9' into 0.9-win32 2018-07-27 16:30:40 +02:00
iFuSiiOnzZ 4ed2b34a1e Create carla client library 2018-07-27 09:11:44 +02:00
nsubiron 4f9299c2b5 Compile all client code with setup.py and custom boost version 2018-07-26 19:07:05 +02:00
iFuSiiOnzZ 83464900b9 Make Carla build for Windows
Add missing libs
Enable exceptions
Enble/Disable some UE4 macros
2018-07-26 15:01:54 +02:00
iFuSiiOnzZ 3384d0fd6e Building libcarla without tests 2018-07-26 12:41:20 +02:00
nsubiron b7a13d08d6 Refactor streaming library 2018-07-13 11:54:12 +02:00
nsubiron 084fe6c0f6 Add LibCarla module 2018-07-04 11:11:49 +02:00