Skip to content
Snippets Groups Projects
Commit 56ea4fa6 authored by ChristophTobler's avatar ChristophTobler Committed by Daniel Agar
Browse files

FlightTask StraighLine: check values before dividing

parent d3d549b8
No related branches found
No related tags found
No related merge requests found
......@@ -83,7 +83,11 @@ void StraightLine::generateSetpoints(matrix::Vector3f &position_setpoint, matrix
float speed_sp = dist_to_target > acc_dec_distance ? _desired_speed : _desired_speed_at_target;
float max_acc_dec = speed_sp > speed_sp_prev ? _desired_acceleration : -_desired_deceleration;
float acc_track = (speed_sp - speed_sp_prev) / _deltatime;
float acc_track = 0.0f;
if (_deltatime > FLT_EPSILON) {
acc_track = (speed_sp - speed_sp_prev) / _deltatime;
}
if (fabs(acc_track) > fabs(max_acc_dec)) {
// accelerate/decelerate with desired acceleration/deceleration towards target
......@@ -192,7 +196,7 @@ void StraightLine::setSpeed(const float &speed)
{
float vel_max = getMaxVel();
if (speed > 0 && speed < vel_max) {
if (speed > FLT_EPSILON && speed < vel_max) {
_desired_speed = speed;
} else if (speed > vel_max) {
......@@ -204,7 +208,7 @@ void StraightLine::setSpeedAtTarget(const float &speed_at_target)
{
float vel_max = getMaxVel();
if (speed_at_target > 0 && speed_at_target < vel_max) {
if (speed_at_target > FLT_EPSILON && speed_at_target < vel_max) {
_desired_speed_at_target = speed_at_target;
} else if (speed_at_target > vel_max) {
......@@ -216,7 +220,7 @@ void StraightLine::setAcceleration(const float &acc)
{
float acc_max = getMaxVel();
if (acc > 0 && acc < acc_max) {
if (acc > FLT_EPSILON && acc < acc_max) {
_desired_acceleration = acc;
} else if (acc > acc_max) {
......@@ -226,7 +230,7 @@ void StraightLine::setAcceleration(const float &acc)
void StraightLine::setDeceleration(const float &dec)
{
if (dec > 0 && dec < DECELERATION_MAX) {
if (dec > FLT_EPSILON && dec < DECELERATION_MAX) {
_desired_deceleration = dec;
} else if (dec > DECELERATION_MAX) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment