Skip to content

Commit 5e9dd17

Browse files
committed
clean up
Signed-off-by: Berkay Karaman <brkay54@gmail.com>
1 parent 7ef86ca commit 5e9dd17

File tree

4 files changed

+944
-791
lines changed

4 files changed

+944
-791
lines changed

tools/reaction_analyzer/include/reaction_analyzer_node.hpp

+61-38
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ using BufferVariant = std::variant<
7979
ControlCommandBuffer, TrajectoryBuffer, PointCloud2Buffer, PredictedObjectsBuffer,
8080
DetectedObjectsBuffer>;
8181

82-
enum class MessageType {
82+
enum class SubscriberMessageType {
8383
Unknown = 0,
8484
AckermannControlCommand = 1,
8585
Trajectory = 2,
@@ -88,11 +88,31 @@ enum class MessageType {
8888
PredictedObjects = 5,
8989
};
9090

91+
enum class PublisherMessageType {
92+
Unknown = 0,
93+
CameraInfo = 1,
94+
Image = 2,
95+
PointCloud2 = 3,
96+
PoseWithCovarianceStamped = 4,
97+
Imu = 5,
98+
ControlModeReport = 6,
99+
GearReport = 7,
100+
HazardLightsReport = 8,
101+
SteeringReport = 9,
102+
TurnIndicatorsReport = 10,
103+
VelocityReport = 11,
104+
};
105+
106+
enum class RunningMode {
107+
PerceptionPlanning = 0,
108+
PlanningControl = 1,
109+
};
110+
91111
struct TopicConfig
92112
{
93113
std::string node_name;
94114
std::string topic_address;
95-
MessageType message_type;
115+
SubscriberMessageType message_type;
96116
};
97117

98118
using ChainModules = std::vector<TopicConfig>;
@@ -120,29 +140,32 @@ struct EntityParams
120140
double z_l;
121141
};
122142

123-
struct NodeParams
143+
struct GeneralParams
124144
{
145+
std::string running_mode;
125146
double timer_period;
147+
double object_search_radius_offset;
148+
EntityParams entity_params;
149+
PoseParams goal_pose;
150+
};
151+
152+
struct PerceptionPlanningModeParams
153+
{
154+
std::string path_bag_without_object;
155+
std::string path_bag_with_object;
156+
bool publish_pointcloud_synchronically;
157+
double synchronic_pointcloud_publishing_period;
158+
double spawn_time_after_init;
159+
};
160+
161+
struct PlanningControlModeParams
162+
{
126163
double spawn_distance_threshold;
164+
double spawned_pointcloud_sampling_distance;
127165
double control_cmd_buffer_time_interval;
128166
double min_jerk_for_brake_cmd;
129-
int min_number_descending_order_control_cmd;
130-
bool run_from_bag;
131-
};
132-
133-
enum class PublisherMessageType {
134-
Unknown = 0,
135-
CameraInfo = 1,
136-
Image = 2,
137-
PointCloud2 = 3,
138-
PoseWithCovarianceStamped = 4,
139-
Imu = 5,
140-
ControlModeReport = 6,
141-
GearReport = 7,
142-
HazardLightsReport = 8,
143-
SteeringReport = 9,
144-
TurnIndicatorsReport = 10,
145-
VelocityReport = 11,
167+
size_t min_number_descending_order_control_cmd;
168+
PoseParams initial_pose;
146169
};
147170

148171
template <typename MessageType>
@@ -283,26 +306,26 @@ class ReactionAnalyzerNode : public rclcpp::Node
283306

284307
private:
285308
std::mutex mutex_;
309+
RunningMode node_running_mode_;
286310

287311
// Parameters
288-
EntityParams entity_params_;
289-
PoseParams initial_pose_params_;
290-
PoseParams goal_pose_params_;
291-
NodeParams node_params_;
292-
double entity_search_radius_;
312+
GeneralParams general_params_;
313+
PerceptionPlanningModeParams perception_planning_mode_params_;
314+
PlanningControlModeParams planning_control_mode_params_;
293315

294316
// TEMP
295-
void genericMessagePublisherTimer(const std::string & topic_name);
317+
void genericMessagePublisher(const std::string & topic_name);
296318
std::unordered_map<std::string, PublisherVariablesVariant> topic_publisher_map_;
297319
std::vector<PublisherVariables<PointCloud2>> sync_pointcloud_publishers_;
298-
bool publish_pointcloud_sync_{true};
299-
void publishAllPointClouds();
320+
void syncPointcloudPublisher();
300321
rclcpp::TimerBase::SharedPtr sync_pointcloud_publish_timer_;
322+
void initRosbagPublishers();
301323

302324
// Initialization Variables
303325
geometry_msgs::msg::Pose entity_pose_;
304326
geometry_msgs::msg::PoseWithCovarianceStamped init_pose_;
305327
geometry_msgs::msg::PoseStamped goal_pose_;
328+
double entity_search_radius_;
306329

307330
// Subscribers
308331
rclcpp::Subscription<Odometry>::SharedPtr sub_kinematics_;
@@ -331,7 +354,7 @@ class ReactionAnalyzerNode : public rclcpp::Node
331354

332355
bool loadChainModules();
333356

334-
bool initObservers(const ChainModules & modules);
357+
bool initSubscribers(const reaction_analyzer::ChainModules & modules);
335358

336359
void initAnalyzerVariables();
337360

@@ -358,29 +381,29 @@ class ReactionAnalyzerNode : public rclcpp::Node
358381
void onTimer();
359382

360383
// Callbacks
361-
void vehiclePoseCallback(const Odometry::ConstSharedPtr msg_ptr);
384+
void vehiclePoseCallback(Odometry::ConstSharedPtr msg_ptr);
362385

363-
void initializationStateCallback(const LocalizationInitializationState::ConstSharedPtr msg_ptr);
386+
void initializationStateCallback(LocalizationInitializationState::ConstSharedPtr msg_ptr);
364387

365-
void routeStateCallback(const RouteState::ConstSharedPtr msg);
388+
void routeStateCallback(RouteState::ConstSharedPtr msg);
366389

367-
void operationModeCallback(const OperationModeState::ConstSharedPtr msg_ptr);
390+
void operationModeCallback(OperationModeState::ConstSharedPtr msg_ptr);
368391

369392
// Callbacks for modules are observed
370393
void controlCommandOutputCallback(
371-
const std::string & node_name, const AckermannControlCommand::ConstSharedPtr msg_ptr);
394+
const std::string & node_name, const AckermannControlCommand::ConstSharedPtr& msg_ptr);
372395

373396
void trajectoryOutputCallback(
374-
const std::string & node_name, const Trajectory::ConstSharedPtr msg_ptr);
397+
const std::string & node_name, const Trajectory::ConstSharedPtr& msg_ptr);
375398

376399
void pointcloud2OutputCallback(
377-
const std::string & node_name, const PointCloud2::ConstSharedPtr msg_ptr);
400+
const std::string & node_name, const PointCloud2::ConstSharedPtr& msg_ptr);
378401

379402
void predictedObjectsOutputCallback(
380-
const std::string & node_name, const PredictedObjects::ConstSharedPtr msg_ptr);
403+
const std::string & node_name, const PredictedObjects::ConstSharedPtr& msg_ptr);
381404

382405
void detectedObjectsOutputCallback(
383-
const std::string & node_name, const DetectedObjects::ConstSharedPtr msg_ptr);
406+
const std::string & node_name, const DetectedObjects::ConstSharedPtr& msg_ptr);
384407

385408
// Variables
386409
std::vector<rclcpp::SubscriptionBase::SharedPtr> subscribers_;

tools/reaction_analyzer/launch/reaction_analyzer.launch.xml

+28-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,34 @@
11
<launch>
2-
<arg name="reaction_analyzer_param_path" default="$(find-pkg-share reaction_analyzer)/param/reaction_analyzer.param.yaml"/>
2+
<arg name="reaction_analyzer_param_path"
3+
default="$(find-pkg-share reaction_analyzer)/param/reaction_analyzer.param.yaml"/>
4+
<arg name="running_mode" default="perception_planning"/> <!-- planning_control or perception_planning -->
5+
<!-- Essential parameters -->
6+
<arg name="map_path" description="point cloud and lanelet2 map directory path"/>
7+
<arg name="vehicle_model" default="sample_vehicle" description="vehicle model name"/>
8+
<arg name="sensor_model" default="sample_sensor_kit" description="sensor model name"/>
9+
10+
<group if="$(eval &quot;'$(var running_mode)'=='perception_planning'&quot;)">
11+
<include file="$(find-pkg-share autoware_launch)/launch/e2e_simulator.launch.xml">
12+
<arg name="map_path" value="$(var map_path)"/>
13+
<arg name="vehicle_model" value="$(var vehicle_model)"/>
14+
<arg name="sensor_model" value="$(var sensor_model)"/>
15+
<arg name="use_sim_time" value="false"/>
16+
<arg name="enable_image_decompressor" value="false"/>
17+
</include>
18+
</group>
19+
<group if="$(eval &quot;'$(var running_mode)'=='planning_control'&quot;)">
20+
<include file="$(find-pkg-share autoware_launch)/launch/planning_simulator.launch.xml">
21+
<arg name="map_path" value="$(var map_path)"/>
22+
<arg name="vehicle_model" value="$(var vehicle_model)"/>
23+
<arg name="sensor_model" value="$(var sensor_model)"/>
24+
<arg name="use_sim_time" value="false"/>
25+
</include>
26+
</group>
27+
328
<node_container pkg="rclcpp_components" exec="component_container_mt" name="reaction_analyzer_container" namespace="" args="" output="screen">
429
<composable_node pkg="reaction_analyzer" plugin="reaction_analyzer::ReactionAnalyzerNode" name="reaction_analyzer" namespace="">
530
<param from="$(var reaction_analyzer_param_path)"/>
6-
<!-- <remap from="output/points_raw" to="/perception/obstacle_segmentation/pointcloud"/>-->
31+
<remap from="output/pointcloud" to="/perception/obstacle_segmentation/pointcloud"/>
732
<remap from="output/objects" to="/perception/object_recognition/objects"/>
833
<remap from="output/initialpose" to="/initialpose"/>
934
<remap from="output/goal" to="/planning/mission_planning/goal"/>
@@ -12,6 +37,7 @@
1237
<remap from="input/localization_initialization_state" to="/api/localization/initialization_state"/>
1338
<remap from="input/routing_state" to="/api/routing/state"/>
1439
<remap from="input/operation_mode_state" to="/api/operation_mode/state"/>
40+
<param name="running_mode" value="$(var running_mode)"/>
1541
<extra_arg name="use_intra_process_comms" value="false"/>
1642
</composable_node>
1743
</node_container>

tools/reaction_analyzer/param/reaction_analyzer.param.yaml

+59-21
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
/**:
22
ros__parameters:
3-
use_sim_time: false
4-
#running_mode: "perception_planning" # or planning_control
5-
run_from_bag: true
6-
path_bag_without_object: /home/berkay/projects/bags/awsim-bag/bag/lexus_bag_without_car/rosbag2_2024_01_30-13_50_45_0.db3
7-
path_bag_with_object: /home/berkay/projects/bags/awsim-bag/bag/lexus_bag_with_car/rosbag2_2024_01_30-13_50_17_0.db3
8-
topic_cloud: /sensing/lidar/top/pointcloud_raw_ex
9-
observer:
3+
general:
104
timer_period: 0.1 # s
11-
spawn_distance_threshold: 25.0
12-
control_cmd_buffer_time_interval: 1.0
13-
min_number_descending_order_control_cmd: 8
14-
min_jerk_for_brake_cmd: 0.3
15-
test_manager:
16-
entity:
5+
object_search_radius_offset: 0.1 # m
6+
# entity_params:
7+
# x: 1.5
8+
# y: 345.0
9+
# z: 101.25
10+
# roll: 0.0
11+
# pitch: 0.0
12+
# yaw: 90.0
13+
# x_dimension: 3.0
14+
# y_dimension: 3.0
15+
# z_dimension: 2.5
16+
entity_params:
1717
x: 81392.97671487389
1818
y: 49927.361443601316
1919
z: 42.13605499267578
@@ -23,21 +23,41 @@
2323
x_dimension: 4.118675972722859
2424
y_dimension: 1.7809072588403219
2525
z_dimension: 0.8328610206872963
26-
initial_pose:
27-
x: 1.5
28-
y: 200.0
29-
z: 101.25
30-
roll: 0.0
31-
pitch: 0.0
32-
yaw: 90.0
3326
goal_pose:
3427
x: 81462.78125
3528
y: 49978.484375
3629
z: 0.0
3730
roll: 0.0
3831
pitch: 0.0
3932
yaw: 35.0
40-
chain:
33+
# goal_pose:
34+
# x: 1.5
35+
# y: 400.0
36+
# z: 101.25
37+
# roll: 0.0
38+
# pitch: 0.0
39+
# yaw: 90.0
40+
perception_planning:
41+
path_bag_without_object: /home/berkay/projects/bags/awsim-bag/bag/lexus_bag_without_car/rosbag2_2024_01_30-13_50_45_0.db3
42+
path_bag_with_object: /home/berkay/projects/bags/awsim-bag/bag/lexus_bag_with_car/rosbag2_2024_01_30-13_50_17_0.db3
43+
publish_pointcloud_synchronically: false
44+
synchronic_pointcloud_publishing_period: 0.1 # s only used if publish_pointcloud_synchronically is true
45+
spawn_time_after_init: 10.0 # s
46+
planning_control:
47+
spawn_distance_threshold: 25.0 # m
48+
spawned_pointcloud_sampling_distance: 0.1
49+
first_brake_params:
50+
control_cmd_buffer_time_interval: 1.0 # s
51+
min_number_descending_order_control_cmd: 8
52+
min_jerk_for_brake_cmd: 0.3 # m/s^3
53+
initialization_pose:
54+
x: 1.5
55+
y: 200.0
56+
z: 101.25
57+
roll: 0.0
58+
pitch: 0.0
59+
yaw: 90.0
60+
reaction_chain:
4161
planning_validator:
4262
topic_name: /planning/scenario_planning/trajectory
4363
message_type: autoware_auto_planning_msgs::msg::Trajectory
@@ -83,3 +103,21 @@
83103
map_based_prediction:
84104
topic_name: /perception/object_recognition/objects
85105
message_type: autoware_auto_perception_msgs::msg::PredictedObjects
106+
# obstacle_stop_planner:
107+
# topic_name: /planning/scenario_planning/lane_driving/trajectory
108+
# message_type: autoware_auto_planning_msgs::msg::Trajectory
109+
# scenario_selector:
110+
# topic_name: /planning/scenario_planning/scenario_selector/trajectory
111+
# message_type: autoware_auto_planning_msgs::msg::Trajectory
112+
# motion_velocity_smoother:
113+
# topic_name: /planning/scenario_planning/motion_velocity_smoother/trajectory
114+
# message_type: autoware_auto_planning_msgs::msg::Trajectory
115+
# planning_validator:
116+
# topic_name: /planning/scenario_planning/trajectory
117+
# message_type: autoware_auto_planning_msgs::msg::Trajectory
118+
# trajectory_follower:
119+
# topic_name: /control/trajectory_follower/control_cmd
120+
# message_type: autoware_auto_control_msgs::msg::AckermannControlCommand
121+
# vehicle_cmd_gate:
122+
# topic_name: /control/command/control_cmd
123+
# message_type: autoware_auto_control_msgs::msg::AckermannControlCommand

0 commit comments

Comments
 (0)