Skip to content

Commit 60ebabc

Browse files
author
Ahmed Ebrahim
committed
feat(remaining_dist_eta): add publisher and using the remaining distance and eta functions from behavior path planner run
Signed-off-by: Ahmed Ebrahim <ahmed.ebrahim@leodrive.ai>
1 parent d4bb5de commit 60ebabc

File tree

5 files changed

+43
-1
lines changed

5 files changed

+43
-1
lines changed

launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml

+1
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@
194194
<remap from="~/input/accel" to="/localization/acceleration"/>
195195
<remap from="~/input/scenario" to="/planning/scenario_planning/scenario"/>
196196
<remap from="~/output/path" to="path_with_lane_id"/>
197+
<remap from="~/output/remaining_distance_eta" to="/planning/remaining_distance_eta"/>
197198
<remap from="~/output/turn_indicators_cmd" to="/planning/turn_indicators_cmd"/>
198199
<remap from="~/output/hazard_lights_cmd" to="/planning/hazard_lights_cmd"/>
199200
<remap from="~/output/modified_goal" to="/planning/scenario_planning/modified_goal"/>

planning/behavior_path_planner/include/behavior_path_planner/behavior_path_planner_node.hpp

+15
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@
3232
#include <autoware_auto_vehicle_msgs/msg/turn_indicators_command.hpp>
3333
#include <autoware_planning_msgs/msg/lanelet_route.hpp>
3434
#include <autoware_planning_msgs/msg/pose_with_uuid_stamped.hpp>
35+
#include <autoware_planning_msgs/msg/remaining_distance_eta.hpp>
3536
#include <nav_msgs/msg/occupancy_grid.hpp>
3637
#include <nav_msgs/msg/odometry.hpp>
38+
#include <geometry_msgs/msg/pose.hpp>
3739
#include <tier4_planning_msgs/msg/approval.hpp>
3840
#include <tier4_planning_msgs/msg/avoidance_debug_msg_array.hpp>
3941
#include <tier4_planning_msgs/msg/path_change_module.hpp>
@@ -62,8 +64,10 @@ using autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand;
6264
using autoware_perception_msgs::msg::TrafficSignalArray;
6365
using autoware_planning_msgs::msg::LaneletRoute;
6466
using autoware_planning_msgs::msg::PoseWithUuidStamped;
67+
using autoware_planning_msgs::msg::RemainingDistanceETA;
6568
using nav_msgs::msg::OccupancyGrid;
6669
using nav_msgs::msg::Odometry;
70+
using geometry_msgs::msg::Pose;
6771
using rcl_interfaces::msg::SetParametersResult;
6872
using steering_factor_interface::SteeringFactorInterface;
6973
using tier4_planning_msgs::msg::AvoidanceDebugMsgArray;
@@ -98,6 +102,7 @@ class BehaviorPathPlannerNode : public rclcpp::Node
98102
rclcpp::Subscription<LateralOffset>::SharedPtr lateral_offset_subscriber_;
99103
rclcpp::Subscription<OperationModeState>::SharedPtr operation_mode_subscriber_;
100104
rclcpp::Publisher<PathWithLaneId>::SharedPtr path_publisher_;
105+
rclcpp::Publisher<RemainingDistanceETA>::SharedPtr remaining_distance_eta_publisher_;
101106
rclcpp::Publisher<TurnIndicatorsCommand>::SharedPtr turn_signal_publisher_;
102107
rclcpp::Publisher<HazardLightsCommand>::SharedPtr hazard_signal_publisher_;
103108
rclcpp::Publisher<MarkerArray>::SharedPtr bound_publisher_;
@@ -123,6 +128,10 @@ class BehaviorPathPlannerNode : public rclcpp::Node
123128
bool has_received_map_{false};
124129
bool has_received_route_{false};
125130

131+
Pose goal_pose_;
132+
double remaining_distance_;
133+
route_handler::EstimatedTimeOfArrival eta_;
134+
126135
std::mutex mutex_pd_; // mutex for planner_data_
127136
std::mutex mutex_manager_; // mutex for bt_manager_ or planner_manager_
128137
std::mutex mutex_map_; // mutex for has_received_map_ and map_ptr_
@@ -177,6 +186,12 @@ class BehaviorPathPlannerNode : public rclcpp::Node
177186
rclcpp::Publisher<AvoidanceDebugMsgArray>::SharedPtr debug_avoidance_msg_array_publisher_;
178187
rclcpp::Publisher<MarkerArray>::SharedPtr debug_turn_signal_info_publisher_;
179188

189+
/**
190+
* @brief publish remaining distance and ETA
191+
*/
192+
void publishRemainingDistanceETA(
193+
const double & remaining_distance, const route_handler::EstimatedTimeOfArrival & eta) const;
194+
180195
/**
181196
* @brief publish reroute availability
182197
*/

planning/behavior_path_planner/launch/behavior_path_planner.launch.xml

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<remap from="~/input/accel" to="/localization/acceleration"/>
3535
<remap from="~/input/scenario" to="/planning/scenario_planning/scenario"/>
3636
<remap from="~/output/path" to="path_with_lane_id"/>
37+
<remap from="~/output/remaining_distance_eta" to="/planning/remaining_distance_eta"/>
3738
<remap from="~/output/turn_indicators_cmd" to="/planning/turn_indicators_cmd"/>
3839
<remap from="~/output/hazard_lights_cmd" to="/planning/hazard_lights_cmd"/>
3940
<remap from="~/output/modified_goal" to="/planning/scenario_planning/modified_goal"/>

planning/behavior_path_planner/src/behavior_path_planner_node.cpp

+25
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ BehaviorPathPlannerNode::BehaviorPathPlannerNode(const rclcpp::NodeOptions & nod
6262

6363
// publisher
6464
path_publisher_ = create_publisher<PathWithLaneId>("~/output/path", 1);
65+
remaining_distance_eta_publisher_ = create_publisher<RemainingDistanceETA>("~/output/remaining_distance_eta", rclcpp::QoS(rclcpp::KeepLast(10)).durability_volatile().reliable());
6566
turn_signal_publisher_ =
6667
create_publisher<TurnIndicatorsCommand>("~/output/turn_indicators_cmd", 1);
6768
hazard_signal_publisher_ = create_publisher<HazardLightsCommand>("~/output/hazard_lights_cmd", 1);
@@ -385,6 +386,8 @@ void BehaviorPathPlannerNode::run()
385386
planner_manager_->reset();
386387
planner_data_->prev_modified_goal.reset();
387388
}
389+
390+
goal_pose_ = route_ptr->goal_pose;
388391
}
389392

390393
const auto controlled_by_autoware_autonomously =
@@ -394,6 +397,16 @@ void BehaviorPathPlannerNode::run()
394397
planner_manager_->resetRootLanelet(planner_data_);
395398
}
396399

400+
if (planner_data_->route_handler->isHandlerReady()) {
401+
remaining_distance_ = planner_data_->route_handler->getRemainingDistance(
402+
planner_data_->self_odometry->pose.pose, goal_pose_);
403+
404+
eta_ = planner_data_->route_handler->getEstimatedTimeOfArrival(
405+
remaining_distance_, planner_data_->self_odometry->twist.twist.linear);
406+
407+
publishRemainingDistanceETA(remaining_distance_, eta_);
408+
}
409+
397410
// run behavior planner
398411
const auto output = planner_manager_->run(planner_data_);
399412

@@ -529,6 +542,18 @@ void BehaviorPathPlannerNode::publish_reroute_availability() const
529542
reroute_availability_publisher_->publish(is_reroute_available);
530543
}
531544

545+
void BehaviorPathPlannerNode::publishRemainingDistanceETA(const double & remaining_distance, const route_handler::EstimatedTimeOfArrival & eta) const
546+
{
547+
RemainingDistanceETA remaining_distance_eta;
548+
remaining_distance_eta.remaining_distance = remaining_distance;
549+
remaining_distance_eta.hours = eta.hours;
550+
remaining_distance_eta.minutes = eta.minutes;
551+
remaining_distance_eta.seconds = eta.seconds;
552+
553+
remaining_distance_eta_publisher_->publish(remaining_distance_eta);
554+
555+
}
556+
532557
void BehaviorPathPlannerNode::publish_turn_signal_debug_data(const TurnSignalDebugData & debug_data)
533558
{
534559
MarkerArray marker_array;

planning/mission_planner/src/mission_planner/mission_planner.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ MissionPlanner::MissionPlanner(const rclcpp::NodeOptions & options)
9191

9292
void MissionPlanner::remaining_distance_timer_callback_()
9393
{
94-
planner_->calculateRemainingDistance(current_vehicle_pose, current_vehicle_velocity);
94+
//planner_->calculateRemainingDistance(current_vehicle_pose, current_vehicle_velocity);
9595
}
9696

9797
void MissionPlanner::check_initialization()

0 commit comments

Comments
 (0)