Skip to content

Commit cb8c2a0

Browse files
committed
feat(lane_departure_checker): add parameter of footprint_extra_margin
Signed-off-by: Yuma Nihei <yuma.nihei@tier4.jp>
1 parent 8d261d7 commit cb8c2a0

File tree

6 files changed

+15
-1
lines changed

6 files changed

+15
-1
lines changed

control/lane_departure_checker/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ This package includes the following features:
4343

4444
2. Expand footprint based on the standard deviation multiplied with `footprint_margin_scale`.
4545

46+
### How to extend footprint by constant
47+
48+
Expand footprint based on the constant defined with `footprint_extra_margin`.
49+
4650
## Interface
4751

4852
### Input
@@ -72,6 +76,7 @@ This package includes the following features:
7276
| Name | Type | Description | Default value |
7377
| :------------------------- | :----- | :--------------------------------------------------------------------------------- | :------------ |
7478
| footprint_margin_scale | double | Coefficient for expanding footprint margin. Multiplied by 1 standard deviation. | 1.0 |
79+
| footprint_extra_margin | double | Coefficient for expanding footprint margin. When checking for lane departure. | 0.0 |
7580
| resample_interval | double | Minimum Euclidean distance between points when resample trajectory.[m] | 0.3 |
7681
| max_deceleration | double | Maximum deceleration when calculating braking distance. | 2.8 |
7782
| delay_time | double | Delay time which took to actuate brake when calculating braking distance. [second] | 1.3 |

control/lane_departure_checker/config/lane_departure_checker.param.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
# Core
88
footprint_margin_scale: 1.0
9+
footprint_extra_margin: 0.0
910
resample_interval: 0.3
1011
max_deceleration: 2.8
1112
delay_time: 1.3

control/lane_departure_checker/include/lane_departure_checker/lane_departure_checker.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ using TrajectoryPoints = std::vector<TrajectoryPoint>;
5050
struct Param
5151
{
5252
double footprint_margin_scale;
53+
double footprint_extra_margin;
5354
double resample_interval;
5455
double max_deceleration;
5556
double delay_time;

control/lane_departure_checker/include/lane_departure_checker/util/create_vehicle_footprint.hpp

+5
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,9 @@ inline FootprintMargin calcFootprintMargin(
8989
return FootprintMargin{Cov_xy_vehicle(0, 0) * scale, Cov_xy_vehicle(1, 1) * scale};
9090
}
9191

92+
inline FootprintMargin operator+(FootprintMargin fm, const double margin)
93+
{
94+
return FootprintMargin{fm.lon + margin, fm.lat + margin};
95+
}
96+
9297
#endif // LANE_DEPARTURE_CHECKER__UTIL__CREATE_VEHICLE_FOOTPRINT_HPP_

control/lane_departure_checker/src/lane_departure_checker_node/lane_departure_checker.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ std::vector<LinearRing2d> LaneDepartureChecker::createVehicleFootprints(
219219
const Param & param)
220220
{
221221
// Calculate longitudinal and lateral margin based on covariance
222-
const auto margin = calcFootprintMargin(covariance, param.footprint_margin_scale);
222+
const auto margin = calcFootprintMargin(covariance, param.footprint_margin_scale) + param.footprint_extra_margin;
223223

224224
// Create vehicle footprint in base_link coordinate
225225
const auto local_vehicle_footprint = createVehicleFootprint(*vehicle_info_ptr_, margin);

control/lane_departure_checker/src/lane_departure_checker_node/lane_departure_checker_node.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ LaneDepartureCheckerNode::LaneDepartureCheckerNode(const rclcpp::NodeOptions & o
128128
vehicle_length_m_ = vehicle_info.vehicle_length_m;
129129

130130
param_.footprint_margin_scale = declare_parameter("footprint_margin_scale", 1.0);
131+
param_.footprint_extra_margin = declare_parameter("footprint_extra_margin", 0.0);
131132
param_.resample_interval = declare_parameter("resample_interval", 0.3);
132133
param_.max_deceleration = declare_parameter("max_deceleration", 3.0);
133134
param_.delay_time = declare_parameter("delay_time", 0.3);
@@ -352,6 +353,7 @@ rcl_interfaces::msg::SetParametersResult LaneDepartureCheckerNode::onParameter(
352353

353354
// Core
354355
update_param(parameters, "footprint_margin_scale", param_.footprint_margin_scale);
356+
update_param(parameters, "footprint_extra_margin", param_.footprint_extra_margin);
355357
update_param(parameters, "resample_interval", param_.resample_interval);
356358
update_param(parameters, "max_deceleration", param_.max_deceleration);
357359
update_param(parameters, "delay_time", param_.delay_time);

0 commit comments

Comments
 (0)