15
15
#ifndef CONCEALER__AUTOWARE_UNIVERSE_HPP_
16
16
#define CONCEALER__AUTOWARE_UNIVERSE_HPP_
17
17
18
+ #include < atomic>
18
19
#include < autoware_control_msgs/msg/control.hpp>
19
20
#include < autoware_vehicle_msgs/msg/control_mode_report.hpp>
21
+ #include < autoware_vehicle_msgs/msg/gear_command.hpp>
20
22
#include < autoware_vehicle_msgs/msg/gear_report.hpp>
21
23
#include < autoware_vehicle_msgs/msg/steering_report.hpp>
24
+ #include < autoware_vehicle_msgs/msg/turn_indicators_command.hpp>
22
25
#include < autoware_vehicle_msgs/msg/turn_indicators_report.hpp>
23
26
#include < autoware_vehicle_msgs/msg/velocity_report.hpp>
24
27
#include < autoware_vehicle_msgs/srv/control_mode_command.hpp>
25
- #include < concealer/autoware .hpp>
28
+ #include < concealer/continuous_transform_broadcaster .hpp>
26
29
#include < concealer/publisher_wrapper.hpp>
27
30
#include < concealer/subscriber_wrapper.hpp>
31
+ #include < concealer/visibility.hpp>
28
32
#include < geometry_msgs/msg/accel_with_covariance_stamped.hpp>
33
+ #include < geometry_msgs/msg/pose.hpp>
34
+ #include < geometry_msgs/msg/twist_stamped.hpp>
29
35
#include < nav_msgs/msg/odometry.hpp>
36
+ #include < rclcpp/rclcpp.hpp>
30
37
#include < tier4_planning_msgs/msg/path_with_lane_id.hpp>
31
38
32
39
namespace concealer
33
40
{
34
- /*
35
- * Implements Autoware interface for Autoware Universe
36
- * NOTE: This class is intended to be move to simple_sensor_simulator
37
- */
38
- class AutowareUniverse : public Autoware
41
+ class AutowareUniverse : public rclcpp ::Node,
42
+ public ContinuousTransformBroadcaster<AutowareUniverse>
39
43
{
44
+ public:
40
45
// clang-format off
41
46
using AccelWithCovarianceStamped = geometry_msgs::msg::AccelWithCovarianceStamped;
42
47
using Control = autoware_control_msgs::msg::Control;
43
48
using ControlModeCommand = autoware_vehicle_msgs::srv::ControlModeCommand;
44
49
using ControlModeReport = autoware_vehicle_msgs::msg::ControlModeReport;
45
50
using GearCommand = autoware_vehicle_msgs::msg::GearCommand;
46
51
using GearReport = autoware_vehicle_msgs::msg::GearReport;
52
+ using Odometry = nav_msgs::msg::Odometry;
47
53
using PathWithLaneId = tier4_planning_msgs::msg::PathWithLaneId;
48
54
using PoseWithCovarianceStamped = geometry_msgs::msg::PoseWithCovarianceStamped;
49
55
using SteeringReport = autoware_vehicle_msgs::msg::SteeringReport;
50
56
using TurnIndicatorsCommand = autoware_vehicle_msgs::msg::TurnIndicatorsCommand;
51
57
using TurnIndicatorsReport = autoware_vehicle_msgs::msg::TurnIndicatorsReport;
52
58
using VelocityReport = autoware_vehicle_msgs::msg::VelocityReport;
53
59
54
- SubscriberWrapper<Control, ThreadSafety::safe> getCommand;
55
- SubscriberWrapper<GearCommand, ThreadSafety::safe> getGearCommandImpl ;
56
- SubscriberWrapper<TurnIndicatorsCommand, ThreadSafety::safe > getTurnIndicatorsCommand;
57
- SubscriberWrapper<PathWithLaneId, ThreadSafety::safe> getPathWithLaneId;
60
+ SubscriberWrapper<Control> getCommand;
61
+ SubscriberWrapper<GearCommand> getGearCommand ;
62
+ SubscriberWrapper<TurnIndicatorsCommand> getTurnIndicatorsCommand;
63
+ SubscriberWrapper<PathWithLaneId> getPathWithLaneId;
58
64
59
65
PublisherWrapper<AccelWithCovarianceStamped> setAcceleration;
60
- PublisherWrapper<nav_msgs::msg:: Odometry> setOdometry;
66
+ PublisherWrapper<Odometry> setOdometry;
61
67
PublisherWrapper<PoseWithCovarianceStamped> setPose;
62
68
PublisherWrapper<SteeringReport> setSteeringReport;
63
69
PublisherWrapper<GearReport> setGearReport;
64
70
PublisherWrapper<ControlModeReport> setControlModeReport;
65
71
PublisherWrapper<VelocityReport> setVelocityReport;
66
72
PublisherWrapper<TurnIndicatorsReport> setTurnIndicatorsReport;
73
+
74
+ std::atomic<geometry_msgs::msg::Accel> current_acceleration;
75
+ std::atomic<geometry_msgs::msg::Pose> current_pose;
76
+ std::atomic<geometry_msgs::msg::Twist> current_twist;
67
77
// clang-format on
68
78
79
+ private:
69
80
rclcpp::Service<ControlModeCommand>::SharedPtr control_mode_request_server;
70
81
71
82
const rclcpp::TimerBase::SharedPtr localization_update_timer;
@@ -82,38 +93,25 @@ class AutowareUniverse : public Autoware
82
93
83
94
std::exception_ptr thrown;
84
95
85
- auto stopAndJoin () -> void;
86
-
87
96
public:
88
97
CONCEALER_PUBLIC explicit AutowareUniverse (bool );
89
98
90
99
~AutowareUniverse ();
91
100
92
- auto rethrow () -> void override ;
93
-
94
- auto getAcceleration () const -> double override ;
95
-
96
- auto getSteeringAngle () const -> double override ;
97
-
98
- auto getVelocity () const -> double override ;
101
+ auto rethrow () -> void;
99
102
100
103
auto updateLocalization () -> void;
101
104
102
105
auto updateVehicleState () -> void;
103
106
104
- auto getGearCommand () const -> GearCommand override ;
105
-
106
- auto getGearSign () const -> double override ;
107
+ auto getVehicleCommand () const -> std::tuple<double, double, double, double, int>;
107
108
108
- auto getVehicleCommand () const -> std::tuple<Control, GearCommand> override ;
109
+ auto getRouteLanelets () const -> std::vector<std::int64_t> ;
109
110
110
- auto getRouteLanelets () const -> std::vector<std::int64_t> override ;
111
+ auto getControlModeReport () const -> ControlModeReport ;
111
112
112
- auto getControlModeReport () const -> ControlModeReport override ;
113
-
114
- auto setManualMode () -> void override ;
113
+ auto setManualMode () -> void;
115
114
};
116
-
117
115
} // namespace concealer
118
116
119
117
#endif // CONCEALER__AUTOWARE_UNIVERSE_HPP_
0 commit comments