Skip to content

Conversation

@berndgassmann
Copy link
Contributor

@berndgassmann berndgassmann commented Nov 13, 2025

Prepare server for multistream support and ROS2 client calls

  • Moved Blueprint handling sources to carla/actor from carla/client to allow using of that functionalilty within ROS2 server calls
  • Moved streaming/detail/tcp/Message.h -> streaming/detail/Message.h to be deployed for non-tcp communication streams like ROS2
  • Moved general (tcp-independent parts) from tcp/ServerSession to streaming/detail/Session.h to be used for ROS2 streams. Had to rename a Write() function to WriteMessage because of virtual function overloaded with template function not possible.
  • Make Dispatcher a shared_pointer to be able to access from ROS2
  • CarlaServer uses rpc::RpcServerInterface to communicate with TCP-Clients and upcoming DDS-Client
  • Dynamic switching on ROS visibility is possible for all actors now
  • Default startup behavior is selectable by ROS2TopicVisibility parameter in DefaultGame.ini: If true, then all and every topic that is currently offered by the implementation is visible from the beginning. If false, then only the sensors/actors created via the Client- or ROS-Interface are visible by defaults. Others can be activated via EnableForRos() calls (this allows for disabling interfaces e.g. for leaderboard)

Description

Fixes #

Where has this been tested?

  • Platform(s): ...
  • Python version(s): ...
  • Unreal Engine version(s): ...

Possible Drawbacks


This change is Reviewable

Prepare server for multistream support and ROS2 client calls

- Moved Blueprint handling sources to carla/actor from carla/client
  to allow using of that functionalilty within ROS2 server calls
- Moved streaming/detail/tcp/Message.h -> streaming/detail/Message.h
  to be deployed for non-tcp communication streams like ROS2
- Moved general (tcp-independent parts) from tcp/ServerSession to
  streaming/detail/Session.h to be used for ROS2 streams. Had to
  rename a Write() function to WriteMessage because of virtual
  function overloaded with template function not possible.
- Make Dispatcher a shared_pointer to be able to access from ROS2
- CarlaServer uses rpc::RpcServerInterface to communicate with
  TCP-Clients and upcoming DDS-Client
- Dynamic switching on ROS visibility is possible for all actors now
- Default startup behavior is selectable by ROS2TopicVisibility
  parameter in DefaultGame.ini: If true, then all and every topic that
  is currently offered by the implementation is visible from the
  beginning. If false, then only the sensors/actors created via the
  Client- or ROS-Interface are visible by defaults. Others can be
  activated via EnableForRos() calls (this allows for disabling
  interfaces e.g. for leaderboard)
@berndgassmann berndgassmann force-pushed the mai/ue4-extend-ros2-step1-server-changes branch from 252748b to f6a9638 Compare November 27, 2025 09:47
@MarcelPiNacy-CVC MarcelPiNacy-CVC merged commit 3b938d7 into carla-simulator:ue4-dev Nov 27, 2025
2 checks passed
@berndgassmann berndgassmann deleted the mai/ue4-extend-ros2-step1-server-changes branch November 29, 2025 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants