CARLA
Loading...
Searching...
No Matches
AckermannControlSubscriber.h
Go to the documentation of this file.
1// Copyright (c) 2026 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once
8
9#include <memory>
10#include <string>
11
14
15namespace carla {
16namespace ros2 {
17
18// Forward declarations keep the FastDDS-heavy SubscriberImpl<> definition out of the
19// main carla-server compile unit. The full instantiation lives in
20// AckermannControlSubscriber.cpp, which is built by the carla-ros2-native
21// ExternalProject (where FastDDS headers are on the include path).
22template <typename Traits> class SubscriberImpl;
23struct AckermannControlTraits;
24
26public:
27 AckermannControlSubscriber(void *vehicle, std::string base_topic_name, std::string frame_id);
29
30 void ProcessMessages(ActorCallback callback) override;
31
32protected:
34
35private:
36 std::shared_ptr<SubscriberImpl<AckermannControlTraits>> _impl;
37};
38
39} // namespace ros2
40} // namespace carla
std::shared_ptr< SubscriberImpl< AckermannControlTraits > > _impl
void ProcessMessages(ActorCallback callback) override
std::function< void(void *actor, ROS2CallbackData data)> ActorCallback
std::variant< VehicleControl, AckermannControl, VehicleAccelerationControl > ROS2CallbackData
This file contains definitions of common data structures used in traffic manager.