Skip to content

Commit 9af2a01

Browse files
authoredJun 5, 2024··
feat: add option to use emergency brake commands from vehicle_cmd_gate and … (#79)
add option to use emergency brake commands from vehicle_cmd_gate and not set emergency brake Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
1 parent c48f031 commit 9af2a01

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed
 

‎pacmod_interface/config/pacmod.param.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
base_frame_id: "base_link"
44
command_timeout_ms: 1000
55
loop_rate: 30.0
6+
use_external_emergency_brake: false
67
emergency_brake: 0.7
78
max_throttle: 0.4
89
max_brake: 0.8

‎pacmod_interface/include/pacmod_interface/pacmod_interface.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ class PacmodInterface : public rclcpp::Node
136136
double brake_pedal_offset_; // offset of brake pedal value
137137

138138
double emergency_brake_; // brake command when emergency [m/s^2]
139+
bool use_external_emergency_brake_; // set to true to not use emergency_brake_
139140
double max_throttle_; // max throttle [0~1]
140141
double max_brake_; // max throttle [0~1]
141142
double max_steering_wheel_; // max steering wheel angle [rad]

‎pacmod_interface/src/pacmod_interface/pacmod_interface.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ PacmodInterface::PacmodInterface()
3737

3838
/* parameters for emergency stop */
3939
emergency_brake_ = declare_parameter("emergency_brake", 0.7);
40+
use_external_emergency_brake_ = declare_parameter("use_external_emergency_brake", false);
4041

4142
/* vehicle parameters */
4243
vgr_coef_a_ = declare_parameter("vgr_coef_a", 15.713);
@@ -408,7 +409,10 @@ void PacmodInterface::publishCommands()
408409
if (t_out >= 0 && (control_cmd_delta_time_ms > t_out || actuation_cmd_delta_time_ms > t_out)) {
409410
timeouted = true;
410411
}
411-
if (is_emergency_ || timeouted) {
412+
/* check emergency and timeout */
413+
const bool emergency_brake_needed =
414+
(is_emergency_ && !use_external_emergency_brake_) || timeouted;
415+
if (emergency_brake_needed) {
412416
RCLCPP_ERROR(
413417
get_logger(), "Emergency Stopping, emergency = %d, timeouted = %d", is_emergency_, timeouted);
414418
desired_throttle = 0.0;

0 commit comments

Comments
 (0)
Please sign in to comment.