diff --git a/msg/vision_position_estimate.msg b/msg/vision_position_estimate.msg new file mode 100644 index 0000000000..53e2b9c0f0 --- /dev/null +++ b/msg/vision_position_estimate.msg @@ -0,0 +1,14 @@ +uint32 id # ID of the estimator, commonly the component ID of the incoming message + +uint64 timestamp_boot # time of this estimate, in microseconds since system start +uint64 timestamp_computer # timestamp provided by the companion computer, in us + +float32 x # X position in meters in NED earth-fixed frame +float32 y # Y position in meters in NED earth-fixed frame +float32 z # Z position in meters in NED earth-fixed frame (negative altitude) + +float32 vx # X velocity in meters per second in NED earth-fixed frame +float32 vy # Y velocity in meters per second in NED earth-fixed frame +float32 vz # Z velocity in meters per second in NED earth-fixed frame + +float32[4] q # Estimated attitude as quaternion diff --git a/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_main.cpp b/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_main.cpp index fb7cda8c42..8eb34c49c6 100755 --- a/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_main.cpp +++ b/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_main.cpp @@ -290,7 +290,7 @@ int attitude_estimator_ekf_thread_main(int argc, char *argv[]) math::Matrix<3, 3> R_decl; R_decl.identity(); - struct vision_position_estimate vision {}; + struct vision_position_estimate_s vision {}; /* register the perf counter */ perf_counter_t ekf_loop_perf = perf_alloc(PC_ELAPSED, "attitude_estimator_ekf"); diff --git a/src/modules/position_estimator_inav/position_estimator_inav_main.c b/src/modules/position_estimator_inav/position_estimator_inav_main.c index f6d096cec0..7af3a355eb 100644 --- a/src/modules/position_estimator_inav/position_estimator_inav_main.c +++ b/src/modules/position_estimator_inav/position_estimator_inav_main.c @@ -325,7 +325,7 @@ int position_estimator_inav_thread_main(int argc, char *argv[]) memset(&local_pos, 0, sizeof(local_pos)); struct optical_flow_s flow; memset(&flow, 0, sizeof(flow)); - struct vision_position_estimate vision; + struct vision_position_estimate_s vision; memset(&vision, 0, sizeof(vision)); struct vehicle_global_position_s global_pos; memset(&global_pos, 0, sizeof(global_pos)); diff --git a/src/modules/uORB/topics/vision_position_estimate.h b/src/modules/uORB/topics/vision_position_estimate.h deleted file mode 100644 index 74c96cf2e0..0000000000 --- a/src/modules/uORB/topics/vision_position_estimate.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2014 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file vision_position_estimate.h - * Vision based position estimate - */ - -#ifndef TOPIC_VISION_POSITION_ESTIMATE_H_ -#define TOPIC_VISION_POSITION_ESTIMATE_H_ - -#include -#include -#include "../uORB.h" - -/** - * @addtogroup topics - * @{ - */ - -/** - * Vision based position estimate in NED frame - */ -struct vision_position_estimate { - - unsigned id; /**< ID of the estimator, commonly the component ID of the incoming message */ - - uint64_t timestamp_boot; /**< time of this estimate, in microseconds since system start */ - uint64_t timestamp_computer; /**< timestamp provided by the companion computer, in us */ - - float x; /**< X position in meters in NED earth-fixed frame */ - float y; /**< Y position in meters in NED earth-fixed frame */ - float z; /**< Z position in meters in NED earth-fixed frame (negative altitude) */ - - float vx; /**< X velocity in meters per second in NED earth-fixed frame */ - float vy; /**< Y velocity in meters per second in NED earth-fixed frame */ - float vz; /**< Z velocity in meters per second in NED earth-fixed frame */ - - float q[4]; /**< Estimated attitude as quaternion */ - - // XXX Add covariances here - -}; - -/** - * @} - */ - -/* register this as object request broker structure */ -ORB_DECLARE(vision_position_estimate); - -#endif /* TOPIC_VISION_POSITION_ESTIMATE_H_ */