Skip to content

Commit edc8182

Browse files
author
Gabriel Alcantara Costa Silva
committed
guard dt negative case and break the controller
1 parent 9bbdedd commit edc8182

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

ackermann_steering_controller/src/ackermann_steering_controller.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,12 @@ namespace ackermann_steering_controller{
322322

323323
// Limit velocities and accelerations:
324324
const double cmd_dt(period.toSec());
325+
if(cmd_dt < 0)
326+
{
327+
ROS_ERROR("Invalid time interval, delta time cannot be negative");
328+
curr_cmd.lin = 0.0;
329+
curr_cmd.ang = 0.0;
330+
}
325331

326332
limiter_lin_.limit(curr_cmd.lin, last0_cmd_.lin, last1_cmd_.lin, cmd_dt);
327333
limiter_ang_.limit(curr_cmd.ang, last0_cmd_.ang, last1_cmd_.ang, cmd_dt);

diff_drive_controller/src/diff_drive_controller.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,12 @@ namespace diff_drive_controller{
470470

471471
// Limit velocities and accelerations:
472472
const double cmd_dt(period.toSec());
473+
if(cmd_dt < 0)
474+
{
475+
ROS_ERROR("Invalid time interval, delta time cannot be negative");
476+
curr_cmd.lin = 0.0;
477+
curr_cmd.ang = 0.0;
478+
}
473479

474480
limiter_lin_.limit(curr_cmd.lin, last0_cmd_.lin, last1_cmd_.lin, cmd_dt);
475481
limiter_ang_.limit(curr_cmd.ang, last0_cmd_.ang, last1_cmd_.ang, cmd_dt);

four_wheel_steering_controller/src/four_wheel_steering_controller.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,16 @@ namespace four_wheel_steering_controller{
362362
}
363363

364364
const double cmd_dt(period.toSec());
365+
if(cmd_dt < 0)
366+
{
367+
ROS_ERROR("Invalid time interval, delta time cannot be negative");
368+
curr_cmd_twist.lin_x = 0.0;
369+
curr_cmd_twist.lin_y = 0.0;
370+
curr_cmd_twist.ang = 0.0;
371+
curr_cmd_4ws.lin = 0.0;
372+
curr_cmd_4ws.front_steering = 0.0;
373+
curr_cmd_4ws.rear_steering = 0.0;
374+
}
365375

366376
const double angular_speed = odometry_.getAngular();
367377
const double steering_track = track_-2*wheel_steering_y_offset_;

0 commit comments

Comments
 (0)