aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorRoman Bapst <romanbapst@yahoo.de>2014-09-24 09:11:44 +0200
committerRoman Bapst <romanbapst@yahoo.de>2014-09-24 09:11:44 +0200
commit77c823d3cd0f49014a33632ec9ef3efdd7d3dfa5 (patch)
tree991b0ec7fd12d7d5a8be23a5ae2bd81530abf2d5 /src/lib
parent5aefe11975c0fa04ec0a921ffb54d7cf8da5c39a (diff)
downloadpx4-firmware-77c823d3cd0f49014a33632ec9ef3efdd7d3dfa5.tar.gz
px4-firmware-77c823d3cd0f49014a33632ec9ef3efdd7d3dfa5.tar.bz2
px4-firmware-77c823d3cd0f49014a33632ec9ef3efdd7d3dfa5.zip
Adapted for sharded library use with ROS. Problems to solve: error library from PX4 does not work yet. math functions such as isfinite need to be shared as well. performance library needs to be shared as well (commented for now)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp2
-rw-r--r--src/lib/ecl/attitude_fw/ecl_roll_controller.cpp15
-rw-r--r--src/lib/ecl/attitude_fw/ecl_roll_controller.h5
-rw-r--r--src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp15
-rw-r--r--src/lib/ecl/attitude_fw/ecl_yaw_controller.h5
5 files changed, 31 insertions, 11 deletions
diff --git a/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp b/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp
index 0019ef94d..b840206d5 100644
--- a/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp
+++ b/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp
@@ -75,7 +75,7 @@ ECL_PitchController::ECL_PitchController() :
ECL_PitchController::~ECL_PitchController()
{
- perf_free(_nonfinite_input_perf);
+ //perf_free(_nonfinite_input_perf);
}
float ECL_PitchController::control_attitude(float pitch_setpoint, float roll, float pitch, float airspeed)
diff --git a/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp b/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp
index 94bd26f03..1b9925f63 100644
--- a/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp
+++ b/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp
@@ -45,7 +45,14 @@
#include <geo/geo.h>
#include <ecl/ecl.h>
#include <mathlib/mathlib.h>
+
+#ifdef CONFIG_ARCH_ARM
#include <systemlib/err.h>
+#else
+#include<ros_error.h>
+#include <cmath>
+#define isfinite std::isfinite
+#endif
ECL_RollController::ECL_RollController() :
_last_run(0),
@@ -60,20 +67,20 @@ ECL_RollController::ECL_RollController() :
_rate_error(0.0f),
_rate_setpoint(0.0f),
_bodyrate_setpoint(0.0f),
- _nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control roll nonfinite input"))
+ //_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control roll nonfinite input"))
{
}
ECL_RollController::~ECL_RollController()
{
- perf_free(_nonfinite_input_perf);
+ //perf_free(_nonfinite_input_perf);
}
float ECL_RollController::control_attitude(float roll_setpoint, float roll)
{
/* Do not calculate control signal with bad inputs */
if (!(isfinite(roll_setpoint) && isfinite(roll))) {
- perf_count(_nonfinite_input_perf);
+ //perf_count(_nonfinite_input_perf);
return _rate_setpoint;
}
@@ -101,7 +108,7 @@ float ECL_RollController::control_bodyrate(float pitch,
if (!(isfinite(pitch) && isfinite(roll_rate) && isfinite(yaw_rate) && isfinite(yaw_rate_setpoint) &&
isfinite(airspeed_min) && isfinite(airspeed_max) &&
isfinite(scaler))) {
- perf_count(_nonfinite_input_perf);
+ //perf_count(_nonfinite_input_perf);
return math::constrain(_last_output, -1.0f, 1.0f);
}
diff --git a/src/lib/ecl/attitude_fw/ecl_roll_controller.h b/src/lib/ecl/attitude_fw/ecl_roll_controller.h
index 0799dbe03..84e6e9fe4 100644
--- a/src/lib/ecl/attitude_fw/ecl_roll_controller.h
+++ b/src/lib/ecl/attitude_fw/ecl_roll_controller.h
@@ -51,7 +51,10 @@
#include <stdbool.h>
#include <stdint.h>
+
+#ifdef CONIG_ARCH_ARM
#include <systemlib/perf_counter.h>
+#endif
class __EXPORT ECL_RollController //XXX: create controller superclass
{
@@ -120,7 +123,7 @@ private:
float _rate_error;
float _rate_setpoint;
float _bodyrate_setpoint;
- perf_counter_t _nonfinite_input_perf;
+ //perf_counter_t _nonfinite_input_perf;
};
#endif // ECL_ROLL_CONTROLLER_H
diff --git a/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp b/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp
index fe03b8065..5b023fa8f 100644
--- a/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp
+++ b/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp
@@ -44,7 +44,14 @@
#include <geo/geo.h>
#include <ecl/ecl.h>
#include <mathlib/mathlib.h>
+
+#ifdef CONFIG_ARCH_ARM
#include <systemlib/err.h>
+#else
+#include<ros_error.h>
+#include <cmath>
+#define isfinite std::isfinite
+#endif
ECL_YawController::ECL_YawController() :
_last_run(0),
@@ -59,13 +66,13 @@ ECL_YawController::ECL_YawController() :
_rate_setpoint(0.0f),
_bodyrate_setpoint(0.0f),
_coordinated_min_speed(1.0f),
- _nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control yaw nonfinite input"))
+ //_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control yaw nonfinite input"))
{
}
ECL_YawController::~ECL_YawController()
{
- perf_free(_nonfinite_input_perf);
+ //perf_free(_nonfinite_input_perf);
}
float ECL_YawController::control_attitude(float roll, float pitch,
@@ -76,7 +83,7 @@ float ECL_YawController::control_attitude(float roll, float pitch,
if (!(isfinite(roll) && isfinite(pitch) && isfinite(speed_body_u) && isfinite(speed_body_v) &&
isfinite(speed_body_w) && isfinite(roll_rate_setpoint) &&
isfinite(pitch_rate_setpoint))) {
- perf_count(_nonfinite_input_perf);
+ //perf_count(_nonfinite_input_perf);
return _rate_setpoint;
}
// static int counter = 0;
@@ -120,7 +127,7 @@ float ECL_YawController::control_bodyrate(float roll, float pitch,
if (!(isfinite(roll) && isfinite(pitch) && isfinite(pitch_rate) && isfinite(yaw_rate) &&
isfinite(pitch_rate_setpoint) && isfinite(airspeed_min) &&
isfinite(airspeed_max) && isfinite(scaler))) {
- perf_count(_nonfinite_input_perf);
+ //perf_count(_nonfinite_input_perf);
return math::constrain(_last_output, -1.0f, 1.0f);
}
/* get the usual dt estimate */
diff --git a/src/lib/ecl/attitude_fw/ecl_yaw_controller.h b/src/lib/ecl/attitude_fw/ecl_yaw_controller.h
index a360c14b8..61657e95b 100644
--- a/src/lib/ecl/attitude_fw/ecl_yaw_controller.h
+++ b/src/lib/ecl/attitude_fw/ecl_yaw_controller.h
@@ -50,7 +50,10 @@
#include <stdbool.h>
#include <stdint.h>
+
+#ifdef CONFIG_ARCH_ARM
#include <systemlib/perf_counter.h>
+#endif
class __EXPORT ECL_YawController //XXX: create controller superclass
{
@@ -121,7 +124,7 @@ private:
float _rate_setpoint;
float _bodyrate_setpoint;
float _coordinated_min_speed;
- perf_counter_t _nonfinite_input_perf;
+ //perf_counter_t _nonfinite_input_perf;
};