aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/mavlink/mavlink.c15
-rw-r--r--apps/px4/attitude_estimator_bm/attitude_estimator_bm.c12
-rw-r--r--apps/sensors/Makefile3
3 files changed, 16 insertions, 14 deletions
diff --git a/apps/mavlink/mavlink.c b/apps/mavlink/mavlink.c
index 1ac3f907a..653a41090 100644
--- a/apps/mavlink/mavlink.c
+++ b/apps/mavlink/mavlink.c
@@ -474,7 +474,7 @@ static int set_mavlink_interval_limit(int mavlink_msg_id, int min_interval)
break;
case MAVLINK_MSG_ID_ATTITUDE:
/* attitude sub triggers attitude */
- orb_set_interval(att_sub, 100);
+ orb_set_interval(att_sub, min_interval);
break;
default:
/* not found */
@@ -527,6 +527,7 @@ static void *uorb_receiveloop(void *arg)
/* --- ATTITUDE VALUE --- */
/* subscribe to ORB for attitude */
att_sub = orb_subscribe(ORB_ID(vehicle_attitude));
+ orb_set_interval(att_sub, 100);
fds[fdsc_count].fd = att_sub;
fds[fdsc_count].events = POLLIN;
fdsc_count++;
@@ -1324,17 +1325,17 @@ int mavlink_thread_main(int argc, char *argv[])
/* all subscriptions are now active, set up initial guess about rate limits */
if (baudrate >= 921600) {
- /* set no limit */
/* 500 Hz / 2 ms */
- //set_mavlink_interval_limit(MAVLINK_MSG_ID_SCALED_IMU, 2);
+ set_mavlink_interval_limit(MAVLINK_MSG_ID_SCALED_IMU, 2);
+ set_mavlink_interval_limit(MAVLINK_MSG_ID_ATTITUDE, 2);
} else if (baudrate >= 460800) {
/* 250 Hz / 4 ms */
- set_mavlink_interval_limit(MAVLINK_MSG_ID_SCALED_IMU, 4);
- set_mavlink_interval_limit(MAVLINK_MSG_ID_ATTITUDE, 4);
+ set_mavlink_interval_limit(MAVLINK_MSG_ID_SCALED_IMU, 5);
+ set_mavlink_interval_limit(MAVLINK_MSG_ID_ATTITUDE, 5);
} else if (baudrate >= 115200) {
/* 50 Hz / 20 ms */
- set_mavlink_interval_limit(MAVLINK_MSG_ID_SCALED_IMU, 20);
- set_mavlink_interval_limit(MAVLINK_MSG_ID_ATTITUDE, 20);
+ set_mavlink_interval_limit(MAVLINK_MSG_ID_SCALED_IMU, 50);
+ set_mavlink_interval_limit(MAVLINK_MSG_ID_ATTITUDE, 50);
} else if (baudrate >= 57600) {
/* 10 Hz / 100 ms */
set_mavlink_interval_limit(MAVLINK_MSG_ID_SCALED_IMU, 100);
diff --git a/apps/px4/attitude_estimator_bm/attitude_estimator_bm.c b/apps/px4/attitude_estimator_bm/attitude_estimator_bm.c
index c917ff7b2..feaed6695 100644
--- a/apps/px4/attitude_estimator_bm/attitude_estimator_bm.c
+++ b/apps/px4/attitude_estimator_bm/attitude_estimator_bm.c
@@ -87,14 +87,14 @@ int attitude_estimator_bm_update(struct sensor_combined_s *raw, float_vect3 *eul
gyro_values.z = raw->gyro_rad_s[2];
float_vect3 accel_values;
- accel_values.x = raw->accelerometer_m_s2[0] * 9.81f;
- accel_values.y = raw->accelerometer_m_s2[1] * 9.81f;
- accel_values.z = raw->accelerometer_m_s2[2] * 9.81f;
+ accel_values.x = raw->accelerometer_m_s2[0] * 9.81f * 9.0f;
+ accel_values.y = raw->accelerometer_m_s2[1] * 9.81f * 9.0f;
+ accel_values.z = raw->accelerometer_m_s2[2] * 9.81f * 9.0f;
float_vect3 mag_values;
- mag_values.x = raw->magnetometer_ga[0]*100.0f;
- mag_values.y = raw->magnetometer_ga[1]*100.0f;
- mag_values.z = raw->magnetometer_ga[2]*100.0f;
+ mag_values.x = raw->magnetometer_ga[0]*510.0f;
+ mag_values.y = raw->magnetometer_ga[1]*510.0f;
+ mag_values.z = raw->magnetometer_ga[2]*510.0f;
attitude_blackmagic(&accel_values, &mag_values, &gyro_values);
diff --git a/apps/sensors/Makefile b/apps/sensors/Makefile
index 125839bb3..f8dc64ed1 100644
--- a/apps/sensors/Makefile
+++ b/apps/sensors/Makefile
@@ -37,6 +37,7 @@
APPNAME = sensors
PRIORITY = SCHED_PRIORITY_MAX-5
-STACKSIZE = 4096
+# Reduce to 4096 on next occasion
+STACKSIZE = 8000
include $(APPDIR)/mk/app.mk