22 void *vehicle, std::string base_topic_name, std::string frame_id)
25 if (!
_impl->Init(this->GetBaseTopicName() +
"/vehicle_control_cmd")) {
26 log_error(
"CarlaEgoVehicleControlSubscriber failed to initialize on base topic",
34 auto message =
_impl->GetMessage();
38 control.
steer = message.steer;
39 control.
brake = message.brake;
41 control.
reverse = message.reverse;
42 control.
gear = message.gear;
48 if (
_impl->HasNewMessage()) {
const std::string & GetBaseTopicName() const noexcept
void * GetActor() const noexcept
CarlaEgoVehicleControlSubscriber(void *vehicle, std::string base_topic_name, std::string frame_id)
void ProcessMessages(ActorCallback callback) override
ROS2CallbackData GetMessage() override
std::shared_ptr< SubscriberImpl< CarlaEgoVehicleControlTraits > > _impl
~CarlaEgoVehicleControlSubscriber() 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.
static void log_error(Args &&... args)