7b8a651067
This update also includes a few speed improvements for the case where fullspeed_navdata==true.
2972 linhas
63 KiB
C
2972 linhas
63 KiB
C
// Autogenerated from source-files using the CreateNavdataFormat.py script
|
|
|
|
#ifdef NAVDATA_STRUCTS_INCLUDES
|
|
#include "ardrone_autonomy/navdata_demo.h"
|
|
#include "ardrone_autonomy/navdata_time.h"
|
|
#include "ardrone_autonomy/navdata_raw_measures.h"
|
|
#include "ardrone_autonomy/navdata_phys_measures.h"
|
|
#include "ardrone_autonomy/navdata_gyros_offsets.h"
|
|
#include "ardrone_autonomy/navdata_euler_angles.h"
|
|
#include "ardrone_autonomy/navdata_references.h"
|
|
#include "ardrone_autonomy/navdata_trims.h"
|
|
#include "ardrone_autonomy/navdata_rc_references.h"
|
|
#include "ardrone_autonomy/navdata_pwm.h"
|
|
#include "ardrone_autonomy/navdata_altitude.h"
|
|
#include "ardrone_autonomy/navdata_vision_raw.h"
|
|
#include "ardrone_autonomy/navdata_vision_of.h"
|
|
#include "ardrone_autonomy/navdata_vision.h"
|
|
#include "ardrone_autonomy/navdata_vision_perf.h"
|
|
#include "ardrone_autonomy/navdata_trackers_send.h"
|
|
#include "ardrone_autonomy/navdata_vision_detect.h"
|
|
#include "ardrone_autonomy/navdata_watchdog.h"
|
|
#include "ardrone_autonomy/navdata_adc_data_frame.h"
|
|
#include "ardrone_autonomy/navdata_video_stream.h"
|
|
#include "ardrone_autonomy/navdata_games.h"
|
|
#include "ardrone_autonomy/navdata_pressure_raw.h"
|
|
#include "ardrone_autonomy/navdata_magneto.h"
|
|
#include "ardrone_autonomy/navdata_wind_speed.h"
|
|
#include "ardrone_autonomy/navdata_kalman_pressure.h"
|
|
#include "ardrone_autonomy/navdata_hdvideo_stream.h"
|
|
#include "ardrone_autonomy/navdata_wifi.h"
|
|
#include "ardrone_autonomy/navdata_zimmu_3000.h"
|
|
#include <std_msgs/UInt16.h>
|
|
#include <std_msgs/UInt32.h>
|
|
#include <std_msgs/Float32.h>
|
|
#include <std_msgs/Int32.h>
|
|
#include <std_msgs/Int16.h>
|
|
#include <std_msgs/UInt8.h>
|
|
#include <ardrone_autonomy/vector31.h>
|
|
#include <ardrone_autonomy/vector21.h>
|
|
#include <ardrone_autonomy/matrix33.h>
|
|
#endif
|
|
|
|
#ifdef NAVDATA_STRUCTS_HEADER_PUBLIC
|
|
void PublishNavdataTypes(const navdata_unpacked_t &n, const ros::Time &received);
|
|
#endif
|
|
|
|
#ifdef NAVDATA_STRUCTS_HEADER_PRIVATE
|
|
ros::Publisher pub_navdata_demo;
|
|
bool enabled_navdata_demo;
|
|
ardrone_autonomy::navdata_demo navdata_demo_msg;
|
|
ros::Publisher pub_navdata_time;
|
|
bool enabled_navdata_time;
|
|
ardrone_autonomy::navdata_time navdata_time_msg;
|
|
ros::Publisher pub_navdata_raw_measures;
|
|
bool enabled_navdata_raw_measures;
|
|
ardrone_autonomy::navdata_raw_measures navdata_raw_measures_msg;
|
|
ros::Publisher pub_navdata_phys_measures;
|
|
bool enabled_navdata_phys_measures;
|
|
ardrone_autonomy::navdata_phys_measures navdata_phys_measures_msg;
|
|
ros::Publisher pub_navdata_gyros_offsets;
|
|
bool enabled_navdata_gyros_offsets;
|
|
ardrone_autonomy::navdata_gyros_offsets navdata_gyros_offsets_msg;
|
|
ros::Publisher pub_navdata_euler_angles;
|
|
bool enabled_navdata_euler_angles;
|
|
ardrone_autonomy::navdata_euler_angles navdata_euler_angles_msg;
|
|
ros::Publisher pub_navdata_references;
|
|
bool enabled_navdata_references;
|
|
ardrone_autonomy::navdata_references navdata_references_msg;
|
|
ros::Publisher pub_navdata_trims;
|
|
bool enabled_navdata_trims;
|
|
ardrone_autonomy::navdata_trims navdata_trims_msg;
|
|
ros::Publisher pub_navdata_rc_references;
|
|
bool enabled_navdata_rc_references;
|
|
ardrone_autonomy::navdata_rc_references navdata_rc_references_msg;
|
|
ros::Publisher pub_navdata_pwm;
|
|
bool enabled_navdata_pwm;
|
|
ardrone_autonomy::navdata_pwm navdata_pwm_msg;
|
|
ros::Publisher pub_navdata_altitude;
|
|
bool enabled_navdata_altitude;
|
|
ardrone_autonomy::navdata_altitude navdata_altitude_msg;
|
|
ros::Publisher pub_navdata_vision_raw;
|
|
bool enabled_navdata_vision_raw;
|
|
ardrone_autonomy::navdata_vision_raw navdata_vision_raw_msg;
|
|
ros::Publisher pub_navdata_vision_of;
|
|
bool enabled_navdata_vision_of;
|
|
ardrone_autonomy::navdata_vision_of navdata_vision_of_msg;
|
|
ros::Publisher pub_navdata_vision;
|
|
bool enabled_navdata_vision;
|
|
ardrone_autonomy::navdata_vision navdata_vision_msg;
|
|
ros::Publisher pub_navdata_vision_perf;
|
|
bool enabled_navdata_vision_perf;
|
|
ardrone_autonomy::navdata_vision_perf navdata_vision_perf_msg;
|
|
ros::Publisher pub_navdata_trackers_send;
|
|
bool enabled_navdata_trackers_send;
|
|
ardrone_autonomy::navdata_trackers_send navdata_trackers_send_msg;
|
|
ros::Publisher pub_navdata_vision_detect;
|
|
bool enabled_navdata_vision_detect;
|
|
ardrone_autonomy::navdata_vision_detect navdata_vision_detect_msg;
|
|
ros::Publisher pub_navdata_watchdog;
|
|
bool enabled_navdata_watchdog;
|
|
ardrone_autonomy::navdata_watchdog navdata_watchdog_msg;
|
|
ros::Publisher pub_navdata_adc_data_frame;
|
|
bool enabled_navdata_adc_data_frame;
|
|
ardrone_autonomy::navdata_adc_data_frame navdata_adc_data_frame_msg;
|
|
ros::Publisher pub_navdata_video_stream;
|
|
bool enabled_navdata_video_stream;
|
|
ardrone_autonomy::navdata_video_stream navdata_video_stream_msg;
|
|
ros::Publisher pub_navdata_games;
|
|
bool enabled_navdata_games;
|
|
ardrone_autonomy::navdata_games navdata_games_msg;
|
|
ros::Publisher pub_navdata_pressure_raw;
|
|
bool enabled_navdata_pressure_raw;
|
|
ardrone_autonomy::navdata_pressure_raw navdata_pressure_raw_msg;
|
|
ros::Publisher pub_navdata_magneto;
|
|
bool enabled_navdata_magneto;
|
|
ardrone_autonomy::navdata_magneto navdata_magneto_msg;
|
|
ros::Publisher pub_navdata_wind_speed;
|
|
bool enabled_navdata_wind_speed;
|
|
ardrone_autonomy::navdata_wind_speed navdata_wind_speed_msg;
|
|
ros::Publisher pub_navdata_kalman_pressure;
|
|
bool enabled_navdata_kalman_pressure;
|
|
ardrone_autonomy::navdata_kalman_pressure navdata_kalman_pressure_msg;
|
|
ros::Publisher pub_navdata_hdvideo_stream;
|
|
bool enabled_navdata_hdvideo_stream;
|
|
ardrone_autonomy::navdata_hdvideo_stream navdata_hdvideo_stream_msg;
|
|
ros::Publisher pub_navdata_wifi;
|
|
bool enabled_navdata_wifi;
|
|
ardrone_autonomy::navdata_wifi navdata_wifi_msg;
|
|
ros::Publisher pub_navdata_zimmu_3000;
|
|
bool enabled_navdata_zimmu_3000;
|
|
ardrone_autonomy::navdata_zimmu_3000 navdata_zimmu_3000_msg;
|
|
|
|
bool enabled_legacy_navdata;
|
|
|
|
bool initialized_navdata_publishers;
|
|
#endif
|
|
|
|
#ifdef NAVDATA_STRUCTS_INITIALIZE
|
|
if(!initialized_navdata_publishers)
|
|
{
|
|
initialized_navdata_publishers = true;
|
|
|
|
ros::param::param("~enable_legacy_navdata", enabled_legacy_navdata, true);
|
|
if(enabled_legacy_navdata)
|
|
{
|
|
navdata_pub = node_handle.advertise<ardrone_autonomy::Navdata>("ardrone/navdata", 25);
|
|
imu_pub = node_handle.advertise<sensor_msgs::Imu>("ardrone/imu", 25);
|
|
mag_pub = node_handle.advertise<geometry_msgs::Vector3Stamped>("ardrone/mag", 25);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_demo", enabled_navdata_demo, false);
|
|
if(enabled_navdata_demo)
|
|
{
|
|
pub_navdata_demo = node_handle.advertise<ardrone_autonomy::navdata_demo>("ardrone/navdata_demo", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_time", enabled_navdata_time, false);
|
|
if(enabled_navdata_time)
|
|
{
|
|
pub_navdata_time = node_handle.advertise<ardrone_autonomy::navdata_time>("ardrone/navdata_time", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_raw_measures", enabled_navdata_raw_measures, false);
|
|
if(enabled_navdata_raw_measures)
|
|
{
|
|
pub_navdata_raw_measures = node_handle.advertise<ardrone_autonomy::navdata_raw_measures>("ardrone/navdata_raw_measures", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_phys_measures", enabled_navdata_phys_measures, false);
|
|
if(enabled_navdata_phys_measures)
|
|
{
|
|
pub_navdata_phys_measures = node_handle.advertise<ardrone_autonomy::navdata_phys_measures>("ardrone/navdata_phys_measures", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_gyros_offsets", enabled_navdata_gyros_offsets, false);
|
|
if(enabled_navdata_gyros_offsets)
|
|
{
|
|
pub_navdata_gyros_offsets = node_handle.advertise<ardrone_autonomy::navdata_gyros_offsets>("ardrone/navdata_gyros_offsets", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_euler_angles", enabled_navdata_euler_angles, false);
|
|
if(enabled_navdata_euler_angles)
|
|
{
|
|
pub_navdata_euler_angles = node_handle.advertise<ardrone_autonomy::navdata_euler_angles>("ardrone/navdata_euler_angles", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_references", enabled_navdata_references, false);
|
|
if(enabled_navdata_references)
|
|
{
|
|
pub_navdata_references = node_handle.advertise<ardrone_autonomy::navdata_references>("ardrone/navdata_references", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_trims", enabled_navdata_trims, false);
|
|
if(enabled_navdata_trims)
|
|
{
|
|
pub_navdata_trims = node_handle.advertise<ardrone_autonomy::navdata_trims>("ardrone/navdata_trims", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_rc_references", enabled_navdata_rc_references, false);
|
|
if(enabled_navdata_rc_references)
|
|
{
|
|
pub_navdata_rc_references = node_handle.advertise<ardrone_autonomy::navdata_rc_references>("ardrone/navdata_rc_references", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_pwm", enabled_navdata_pwm, false);
|
|
if(enabled_navdata_pwm)
|
|
{
|
|
pub_navdata_pwm = node_handle.advertise<ardrone_autonomy::navdata_pwm>("ardrone/navdata_pwm", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_altitude", enabled_navdata_altitude, false);
|
|
if(enabled_navdata_altitude)
|
|
{
|
|
pub_navdata_altitude = node_handle.advertise<ardrone_autonomy::navdata_altitude>("ardrone/navdata_altitude", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_vision_raw", enabled_navdata_vision_raw, false);
|
|
if(enabled_navdata_vision_raw)
|
|
{
|
|
pub_navdata_vision_raw = node_handle.advertise<ardrone_autonomy::navdata_vision_raw>("ardrone/navdata_vision_raw", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_vision_of", enabled_navdata_vision_of, false);
|
|
if(enabled_navdata_vision_of)
|
|
{
|
|
pub_navdata_vision_of = node_handle.advertise<ardrone_autonomy::navdata_vision_of>("ardrone/navdata_vision_of", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_vision", enabled_navdata_vision, false);
|
|
if(enabled_navdata_vision)
|
|
{
|
|
pub_navdata_vision = node_handle.advertise<ardrone_autonomy::navdata_vision>("ardrone/navdata_vision", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_vision_perf", enabled_navdata_vision_perf, false);
|
|
if(enabled_navdata_vision_perf)
|
|
{
|
|
pub_navdata_vision_perf = node_handle.advertise<ardrone_autonomy::navdata_vision_perf>("ardrone/navdata_vision_perf", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_trackers_send", enabled_navdata_trackers_send, false);
|
|
if(enabled_navdata_trackers_send)
|
|
{
|
|
pub_navdata_trackers_send = node_handle.advertise<ardrone_autonomy::navdata_trackers_send>("ardrone/navdata_trackers_send", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_vision_detect", enabled_navdata_vision_detect, false);
|
|
if(enabled_navdata_vision_detect)
|
|
{
|
|
pub_navdata_vision_detect = node_handle.advertise<ardrone_autonomy::navdata_vision_detect>("ardrone/navdata_vision_detect", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_watchdog", enabled_navdata_watchdog, false);
|
|
if(enabled_navdata_watchdog)
|
|
{
|
|
pub_navdata_watchdog = node_handle.advertise<ardrone_autonomy::navdata_watchdog>("ardrone/navdata_watchdog", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_adc_data_frame", enabled_navdata_adc_data_frame, false);
|
|
if(enabled_navdata_adc_data_frame)
|
|
{
|
|
pub_navdata_adc_data_frame = node_handle.advertise<ardrone_autonomy::navdata_adc_data_frame>("ardrone/navdata_adc_data_frame", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_video_stream", enabled_navdata_video_stream, false);
|
|
if(enabled_navdata_video_stream)
|
|
{
|
|
pub_navdata_video_stream = node_handle.advertise<ardrone_autonomy::navdata_video_stream>("ardrone/navdata_video_stream", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_games", enabled_navdata_games, false);
|
|
if(enabled_navdata_games)
|
|
{
|
|
pub_navdata_games = node_handle.advertise<ardrone_autonomy::navdata_games>("ardrone/navdata_games", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_pressure_raw", enabled_navdata_pressure_raw, false);
|
|
if(enabled_navdata_pressure_raw)
|
|
{
|
|
pub_navdata_pressure_raw = node_handle.advertise<ardrone_autonomy::navdata_pressure_raw>("ardrone/navdata_pressure_raw", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_magneto", enabled_navdata_magneto, false);
|
|
if(enabled_navdata_magneto)
|
|
{
|
|
pub_navdata_magneto = node_handle.advertise<ardrone_autonomy::navdata_magneto>("ardrone/navdata_magneto", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_wind_speed", enabled_navdata_wind_speed, false);
|
|
if(enabled_navdata_wind_speed)
|
|
{
|
|
pub_navdata_wind_speed = node_handle.advertise<ardrone_autonomy::navdata_wind_speed>("ardrone/navdata_wind_speed", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_kalman_pressure", enabled_navdata_kalman_pressure, false);
|
|
if(enabled_navdata_kalman_pressure)
|
|
{
|
|
pub_navdata_kalman_pressure = node_handle.advertise<ardrone_autonomy::navdata_kalman_pressure>("ardrone/navdata_kalman_pressure", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_hdvideo_stream", enabled_navdata_hdvideo_stream, false);
|
|
if(enabled_navdata_hdvideo_stream)
|
|
{
|
|
pub_navdata_hdvideo_stream = node_handle.advertise<ardrone_autonomy::navdata_hdvideo_stream>("ardrone/navdata_hdvideo_stream", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_wifi", enabled_navdata_wifi, false);
|
|
if(enabled_navdata_wifi)
|
|
{
|
|
pub_navdata_wifi = node_handle.advertise<ardrone_autonomy::navdata_wifi>("ardrone/navdata_wifi", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
ros::param::param("~enable_navdata_zimmu_3000", enabled_navdata_zimmu_3000, false);
|
|
if(enabled_navdata_zimmu_3000)
|
|
{
|
|
pub_navdata_zimmu_3000 = node_handle.advertise<ardrone_autonomy::navdata_zimmu_3000>("ardrone/navdata_zimmu_3000", NAVDATA_QUEUE_SIZE);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
}
|
|
#endif
|
|
|
|
#ifdef NAVDATA_STRUCTS_SOURCE
|
|
void ARDroneDriver::PublishNavdataTypes(const navdata_unpacked_t &n, const ros::Time &received)
|
|
{
|
|
if(initialized_navdata_publishers)
|
|
{
|
|
if(enabled_navdata_demo && pub_navdata_demo.getNumSubscribers()>0)
|
|
{
|
|
navdata_demo_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_demo_msg.header.stamp = received;
|
|
navdata_demo_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_demo.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_demo.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_demo.ctrl_state;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.ctrl_state = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_demo.vbat_flying_percentage;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.vbat_flying_percentage = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_demo.theta;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.theta = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_demo.phi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.phi = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_demo.psi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.psi = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_demo.altitude;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.altitude = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_demo.vx;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.vx = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_demo.vy;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.vy = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_demo.vz;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.vz = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_demo.num_frames;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.num_frames = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_demo.detection_camera_type;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_demo_msg.detection_camera_type = m;
|
|
}
|
|
|
|
pub_navdata_demo.publish(navdata_demo_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_time && pub_navdata_time.getNumSubscribers()>0)
|
|
{
|
|
navdata_time_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_time_msg.header.stamp = received;
|
|
navdata_time_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_time.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_time_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_time.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_time_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_time.time;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_time_msg.time = m;
|
|
}
|
|
|
|
pub_navdata_time.publish(navdata_time_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_raw_measures && pub_navdata_raw_measures.getNumSubscribers()>0)
|
|
{
|
|
navdata_raw_measures_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_raw_measures_msg.header.stamp = received;
|
|
navdata_raw_measures_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.size = m;
|
|
}
|
|
|
|
navdata_raw_measures_msg.raw_gyros.clear();
|
|
for(int i=0; i<NB_GYROS; i++)
|
|
{
|
|
int16_t c = n.navdata_raw_measures.raw_gyros[i];
|
|
int16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.raw_gyros.push_back(m);
|
|
}
|
|
|
|
navdata_raw_measures_msg.raw_gyros_110.clear();
|
|
for(int i=0; i<2; i++)
|
|
{
|
|
int16_t c = n.navdata_raw_measures.raw_gyros_110[i];
|
|
int16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.raw_gyros_110.push_back(m);
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_raw_measures.vbat_raw;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.vbat_raw = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.us_debut_echo;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.us_debut_echo = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.us_fin_echo;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.us_fin_echo = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.us_association_echo;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.us_association_echo = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.us_distance_echo;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.us_distance_echo = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.us_courbe_temps;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.us_courbe_temps = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.us_courbe_valeur;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.us_courbe_valeur = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.us_courbe_ref;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.us_courbe_ref = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.flag_echo_ini;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.flag_echo_ini = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_raw_measures.nb_echo;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.nb_echo = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_raw_measures.sum_echo;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.sum_echo = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_raw_measures.alt_temp_raw;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.alt_temp_raw = m;
|
|
}
|
|
|
|
{
|
|
int16_t c = n.navdata_raw_measures.gradient;
|
|
int16_t m;
|
|
m = c;
|
|
|
|
navdata_raw_measures_msg.gradient = m;
|
|
}
|
|
|
|
pub_navdata_raw_measures.publish(navdata_raw_measures_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_phys_measures && pub_navdata_phys_measures.getNumSubscribers()>0)
|
|
{
|
|
navdata_phys_measures_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_phys_measures_msg.header.stamp = received;
|
|
navdata_phys_measures_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_phys_measures.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_phys_measures.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.size = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_phys_measures.accs_temp;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.accs_temp = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_phys_measures.gyro_temp;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.gyro_temp = m;
|
|
}
|
|
|
|
navdata_phys_measures_msg.phys_accs.clear();
|
|
for(int i=0; i<NB_ACCS; i++)
|
|
{
|
|
float32_t c = n.navdata_phys_measures.phys_accs[i];
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.phys_accs.push_back(m);
|
|
}
|
|
|
|
navdata_phys_measures_msg.phys_gyros.clear();
|
|
for(int i=0; i<NB_GYROS; i++)
|
|
{
|
|
float32_t c = n.navdata_phys_measures.phys_gyros[i];
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.phys_gyros.push_back(m);
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_phys_measures.alim3V3;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.alim3V3 = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_phys_measures.vrefEpson;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.vrefEpson = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_phys_measures.vrefIDG;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_phys_measures_msg.vrefIDG = m;
|
|
}
|
|
|
|
pub_navdata_phys_measures.publish(navdata_phys_measures_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_gyros_offsets && pub_navdata_gyros_offsets.getNumSubscribers()>0)
|
|
{
|
|
navdata_gyros_offsets_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_gyros_offsets_msg.header.stamp = received;
|
|
navdata_gyros_offsets_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_gyros_offsets.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_gyros_offsets_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_gyros_offsets.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_gyros_offsets_msg.size = m;
|
|
}
|
|
|
|
navdata_gyros_offsets_msg.offset_g.clear();
|
|
for(int i=0; i<NB_GYROS; i++)
|
|
{
|
|
float32_t c = n.navdata_gyros_offsets.offset_g[i];
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_gyros_offsets_msg.offset_g.push_back(m);
|
|
}
|
|
|
|
pub_navdata_gyros_offsets.publish(navdata_gyros_offsets_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_euler_angles && pub_navdata_euler_angles.getNumSubscribers()>0)
|
|
{
|
|
navdata_euler_angles_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_euler_angles_msg.header.stamp = received;
|
|
navdata_euler_angles_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_euler_angles.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_euler_angles_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_euler_angles.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_euler_angles_msg.size = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_euler_angles.theta_a;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_euler_angles_msg.theta_a = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_euler_angles.phi_a;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_euler_angles_msg.phi_a = m;
|
|
}
|
|
|
|
pub_navdata_euler_angles.publish(navdata_euler_angles_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_references && pub_navdata_references.getNumSubscribers()>0)
|
|
{
|
|
navdata_references_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_references_msg.header.stamp = received;
|
|
navdata_references_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_references.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_references.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.size = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_theta;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_theta = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_phi;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_phi = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_theta_I;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_theta_I = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_phi_I;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_phi_I = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_pitch;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_pitch = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_roll;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_roll = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_yaw;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_yaw = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ref_psi;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ref_psi = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.vx_ref;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.vx_ref = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.vy_ref;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.vy_ref = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.theta_mod;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.theta_mod = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.phi_mod;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.phi_mod = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.k_v_x;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.k_v_x = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.k_v_y;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.k_v_y = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_references.k_mode;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.k_mode = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.ui_time;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ui_time = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.ui_theta;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ui_theta = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.ui_phi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ui_phi = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.ui_psi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ui_psi = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_references.ui_psi_accuracy;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ui_psi_accuracy = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_references.ui_seq;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_references_msg.ui_seq = m;
|
|
}
|
|
|
|
pub_navdata_references.publish(navdata_references_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_trims && pub_navdata_trims.getNumSubscribers()>0)
|
|
{
|
|
navdata_trims_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_trims_msg.header.stamp = received;
|
|
navdata_trims_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_trims.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_trims_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_trims.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_trims_msg.size = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_trims.angular_rates_trim_r;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_trims_msg.angular_rates_trim_r = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_trims.euler_angles_trim_theta;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_trims_msg.euler_angles_trim_theta = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_trims.euler_angles_trim_phi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_trims_msg.euler_angles_trim_phi = m;
|
|
}
|
|
|
|
pub_navdata_trims.publish(navdata_trims_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_rc_references && pub_navdata_rc_references.getNumSubscribers()>0)
|
|
{
|
|
navdata_rc_references_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_rc_references_msg.header.stamp = received;
|
|
navdata_rc_references_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_rc_references.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_rc_references_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_rc_references.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_rc_references_msg.size = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_rc_references.rc_ref_pitch;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_rc_references_msg.rc_ref_pitch = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_rc_references.rc_ref_roll;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_rc_references_msg.rc_ref_roll = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_rc_references.rc_ref_yaw;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_rc_references_msg.rc_ref_yaw = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_rc_references.rc_ref_gaz;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_rc_references_msg.rc_ref_gaz = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_rc_references.rc_ref_ag;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_rc_references_msg.rc_ref_ag = m;
|
|
}
|
|
|
|
pub_navdata_rc_references.publish(navdata_rc_references_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_pwm && pub_navdata_pwm.getNumSubscribers()>0)
|
|
{
|
|
navdata_pwm_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_pwm_msg.header.stamp = received;
|
|
navdata_pwm_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_pwm.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_pwm.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.motor1;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.motor1 = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.motor2;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.motor2 = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.motor3;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.motor3 = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.motor4;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.motor4 = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.sat_motor1;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.sat_motor1 = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.sat_motor2;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.sat_motor2 = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.sat_motor3;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.sat_motor3 = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_pwm.sat_motor4;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.sat_motor4 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_pwm.gaz_feed_forward;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.gaz_feed_forward = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_pwm.gaz_altitude;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.gaz_altitude = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_pwm.altitude_integral;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.altitude_integral = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_pwm.vz_ref;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.vz_ref = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pwm.u_pitch;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.u_pitch = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pwm.u_roll;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.u_roll = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pwm.u_yaw;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.u_yaw = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_pwm.yaw_u_I;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.yaw_u_I = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pwm.u_pitch_planif;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.u_pitch_planif = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pwm.u_roll_planif;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.u_roll_planif = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pwm.u_yaw_planif;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.u_yaw_planif = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_pwm.u_gaz_planif;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.u_gaz_planif = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_pwm.current_motor1;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.current_motor1 = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_pwm.current_motor2;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.current_motor2 = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_pwm.current_motor3;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.current_motor3 = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_pwm.current_motor4;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.current_motor4 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_pwm.altitude_der;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_pwm_msg.altitude_der = m;
|
|
}
|
|
|
|
pub_navdata_pwm.publish(navdata_pwm_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_altitude && pub_navdata_altitude.getNumSubscribers()>0)
|
|
{
|
|
navdata_altitude_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_altitude_msg.header.stamp = received;
|
|
navdata_altitude_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_altitude.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_altitude.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.size = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_altitude.altitude_vision;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.altitude_vision = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_altitude.altitude_vz;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.altitude_vz = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_altitude.altitude_ref;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.altitude_ref = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_altitude.altitude_raw;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.altitude_raw = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_altitude.obs_accZ;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.obs_accZ = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_altitude.obs_alt;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.obs_alt = m;
|
|
}
|
|
|
|
{
|
|
vector31_t c = n.navdata_altitude.obs_x;
|
|
ardrone_autonomy::vector31 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
m.z = c.z;
|
|
|
|
navdata_altitude_msg.obs_x = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_altitude.obs_state;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.obs_state = m;
|
|
}
|
|
|
|
{
|
|
vector21_t c = n.navdata_altitude.est_vb;
|
|
ardrone_autonomy::vector21 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
|
|
navdata_altitude_msg.est_vb = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_altitude.est_state;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_altitude_msg.est_state = m;
|
|
}
|
|
|
|
pub_navdata_altitude.publish(navdata_altitude_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_vision_raw && pub_navdata_vision_raw.getNumSubscribers()>0)
|
|
{
|
|
navdata_vision_raw_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_vision_raw_msg.header.stamp = received;
|
|
navdata_vision_raw_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_raw.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_raw_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_raw.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_raw_msg.size = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_raw.vision_tx_raw;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_raw_msg.vision_tx_raw = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_raw.vision_ty_raw;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_raw_msg.vision_ty_raw = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_raw.vision_tz_raw;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_raw_msg.vision_tz_raw = m;
|
|
}
|
|
|
|
pub_navdata_vision_raw.publish(navdata_vision_raw_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_vision_of && pub_navdata_vision_of.getNumSubscribers()>0)
|
|
{
|
|
navdata_vision_of_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_vision_of_msg.header.stamp = received;
|
|
navdata_vision_of_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_of.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_of_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_of.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_of_msg.size = m;
|
|
}
|
|
|
|
navdata_vision_of_msg.of_dx.clear();
|
|
for(int i=0; i<5; i++)
|
|
{
|
|
float32_t c = n.navdata_vision_of.of_dx[i];
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_of_msg.of_dx.push_back(m);
|
|
}
|
|
|
|
navdata_vision_of_msg.of_dy.clear();
|
|
for(int i=0; i<5; i++)
|
|
{
|
|
float32_t c = n.navdata_vision_of.of_dy[i];
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_of_msg.of_dy.push_back(m);
|
|
}
|
|
|
|
pub_navdata_vision_of.publish(navdata_vision_of_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_vision && pub_navdata_vision.getNumSubscribers()>0)
|
|
{
|
|
navdata_vision_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_vision_msg.header.stamp = received;
|
|
navdata_vision_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_vision.vision_state;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.vision_state = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_vision.vision_misc;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.vision_misc = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.vision_phi_trim;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.vision_phi_trim = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.vision_phi_ref_prop;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.vision_phi_ref_prop = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.vision_theta_trim;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.vision_theta_trim = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.vision_theta_ref_prop;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.vision_theta_ref_prop = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_vision.new_raw_picture;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.new_raw_picture = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.theta_capture;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.theta_capture = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.phi_capture;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.phi_capture = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.psi_capture;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.psi_capture = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_vision.altitude_capture;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.altitude_capture = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_vision.time_capture;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.time_capture = m;
|
|
}
|
|
|
|
{
|
|
velocities_t c = n.navdata_vision.body_v;
|
|
ardrone_autonomy::vector31 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
m.z = c.z;
|
|
|
|
navdata_vision_msg.body_v = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.delta_phi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.delta_phi = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.delta_theta;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.delta_theta = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.delta_psi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.delta_psi = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_vision.gold_defined;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.gold_defined = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_vision.gold_reset;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.gold_reset = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.gold_x;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.gold_x = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision.gold_y;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_msg.gold_y = m;
|
|
}
|
|
|
|
pub_navdata_vision.publish(navdata_vision_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_vision_perf && pub_navdata_vision_perf.getNumSubscribers()>0)
|
|
{
|
|
navdata_vision_perf_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_vision_perf_msg.header.stamp = received;
|
|
navdata_vision_perf_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_perf.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_perf.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.size = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_perf.time_corners;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.time_corners = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_perf.time_compute;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.time_compute = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_perf.time_tracking;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.time_tracking = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_perf.time_trans;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.time_trans = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_vision_perf.time_update;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.time_update = m;
|
|
}
|
|
|
|
navdata_vision_perf_msg.time_custom.clear();
|
|
for(int i=0; i<NAVDATA_MAX_CUSTOM_TIME_SAVE; i++)
|
|
{
|
|
float32_t c = n.navdata_vision_perf.time_custom[i];
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_perf_msg.time_custom.push_back(m);
|
|
}
|
|
|
|
pub_navdata_vision_perf.publish(navdata_vision_perf_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_trackers_send && pub_navdata_trackers_send.getNumSubscribers()>0)
|
|
{
|
|
navdata_trackers_send_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_trackers_send_msg.header.stamp = received;
|
|
navdata_trackers_send_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_trackers_send.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_trackers_send_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_trackers_send.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_trackers_send_msg.size = m;
|
|
}
|
|
|
|
navdata_trackers_send_msg.locked.clear();
|
|
for(int i=0; i<DEFAULT_NB_TRACKERS_WIDTH * DEFAULT_NB_TRACKERS_HEIGHT; i++)
|
|
{
|
|
int32_t c = n.navdata_trackers_send.locked[i];
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_trackers_send_msg.locked.push_back(m);
|
|
}
|
|
|
|
navdata_trackers_send_msg.point.clear();
|
|
for(int i=0; i<DEFAULT_NB_TRACKERS_WIDTH * DEFAULT_NB_TRACKERS_HEIGHT; i++)
|
|
{
|
|
screen_point_t c = n.navdata_trackers_send.point[i];
|
|
ardrone_autonomy::vector21 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
|
|
navdata_trackers_send_msg.point.push_back(m);
|
|
}
|
|
|
|
pub_navdata_trackers_send.publish(navdata_trackers_send_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_vision_detect && pub_navdata_vision_detect.getNumSubscribers()>0)
|
|
{
|
|
navdata_vision_detect_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_vision_detect_msg.header.stamp = received;
|
|
navdata_vision_detect_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_detect.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_vision_detect.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.nb_detected;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.nb_detected = m;
|
|
}
|
|
|
|
navdata_vision_detect_msg.type.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.type[i];
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.type.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.xc.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.xc[i];
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.xc.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.yc.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.yc[i];
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.yc.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.width.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.width[i];
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.width.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.height.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.height[i];
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.height.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.dist.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.dist[i];
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.dist.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.orientation_angle.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
float32_t c = n.navdata_vision_detect.orientation_angle[i];
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.orientation_angle.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.rotation.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
matrix33_t c = n.navdata_vision_detect.rotation[i];
|
|
ardrone_autonomy::matrix33 m;
|
|
m.m11 = c.m11;
|
|
m.m12 = c.m12;
|
|
m.m13 = c.m13;
|
|
m.m21 = c.m21;
|
|
m.m22 = c.m22;
|
|
m.m23 = c.m23;
|
|
m.m31 = c.m31;
|
|
m.m32 = c.m32;
|
|
m.m33 = c.m33;
|
|
|
|
navdata_vision_detect_msg.rotation.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.translation.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
vector31_t c = n.navdata_vision_detect.translation[i];
|
|
ardrone_autonomy::vector31 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
m.z = c.z;
|
|
|
|
navdata_vision_detect_msg.translation.push_back(m);
|
|
}
|
|
|
|
navdata_vision_detect_msg.camera_source.clear();
|
|
for(int i=0; i<NB_NAVDATA_DETECTION_RESULTS; i++)
|
|
{
|
|
uint32_t c = n.navdata_vision_detect.camera_source[i];
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_vision_detect_msg.camera_source.push_back(m);
|
|
}
|
|
|
|
pub_navdata_vision_detect.publish(navdata_vision_detect_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_watchdog && pub_navdata_watchdog.getNumSubscribers()>0)
|
|
{
|
|
navdata_watchdog_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_watchdog_msg.header.stamp = received;
|
|
navdata_watchdog_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_watchdog.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_watchdog_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_watchdog.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_watchdog_msg.size = m;
|
|
}
|
|
|
|
pub_navdata_watchdog.publish(navdata_watchdog_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_adc_data_frame && pub_navdata_adc_data_frame.getNumSubscribers()>0)
|
|
{
|
|
navdata_adc_data_frame_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_adc_data_frame_msg.header.stamp = received;
|
|
navdata_adc_data_frame_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_adc_data_frame.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_adc_data_frame_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_adc_data_frame.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_adc_data_frame_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_adc_data_frame.version;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_adc_data_frame_msg.version = m;
|
|
}
|
|
|
|
navdata_adc_data_frame_msg.data_frame.clear();
|
|
for(int i=0; i<32; i++)
|
|
{
|
|
uint8_t c = n.navdata_adc_data_frame.data_frame[i];
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_adc_data_frame_msg.data_frame.push_back(m);
|
|
}
|
|
|
|
pub_navdata_adc_data_frame.publish(navdata_adc_data_frame_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_video_stream && pub_navdata_video_stream.getNumSubscribers()>0)
|
|
{
|
|
navdata_video_stream_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_video_stream_msg.header.stamp = received;
|
|
navdata_video_stream_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_video_stream.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_video_stream.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint8_t c = n.navdata_video_stream.quant;
|
|
uint8_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.quant = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_video_stream.frame_size;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.frame_size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_video_stream.frame_number;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.frame_number = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_video_stream.atcmd_ref_seq;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.atcmd_ref_seq = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_video_stream.atcmd_mean_ref_gap;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.atcmd_mean_ref_gap = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_video_stream.atcmd_var_ref_gap;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.atcmd_var_ref_gap = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_video_stream.atcmd_ref_quality;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.atcmd_ref_quality = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_video_stream.desired_bitrate;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.desired_bitrate = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_video_stream.data2;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.data2 = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_video_stream.data3;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.data3 = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_video_stream.data4;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.data4 = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_video_stream.data5;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.data5 = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_video_stream.fifo_queue_level;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_video_stream_msg.fifo_queue_level = m;
|
|
}
|
|
|
|
pub_navdata_video_stream.publish(navdata_video_stream_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_games && pub_navdata_games.getNumSubscribers()>0)
|
|
{
|
|
navdata_games_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_games_msg.header.stamp = received;
|
|
navdata_games_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_games.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_games_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_games.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_games_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_games.double_tap_counter;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_games_msg.double_tap_counter = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_games.finish_line_counter;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_games_msg.finish_line_counter = m;
|
|
}
|
|
|
|
pub_navdata_games.publish(navdata_games_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_pressure_raw && pub_navdata_pressure_raw.getNumSubscribers()>0)
|
|
{
|
|
navdata_pressure_raw_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_pressure_raw_msg.header.stamp = received;
|
|
navdata_pressure_raw_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_pressure_raw.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pressure_raw_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_pressure_raw.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_pressure_raw_msg.size = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pressure_raw.up;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pressure_raw_msg.up = m;
|
|
}
|
|
|
|
{
|
|
int16_t c = n.navdata_pressure_raw.ut;
|
|
int16_t m;
|
|
m = c;
|
|
|
|
navdata_pressure_raw_msg.ut = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pressure_raw.Temperature_meas;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pressure_raw_msg.Temperature_meas = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_pressure_raw.Pression_meas;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_pressure_raw_msg.Pression_meas = m;
|
|
}
|
|
|
|
pub_navdata_pressure_raw.publish(navdata_pressure_raw_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_magneto && pub_navdata_magneto.getNumSubscribers()>0)
|
|
{
|
|
navdata_magneto_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_magneto_msg.header.stamp = received;
|
|
navdata_magneto_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_magneto.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_magneto.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.size = m;
|
|
}
|
|
|
|
{
|
|
int16_t c = n.navdata_magneto.mx;
|
|
int16_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.mx = m;
|
|
}
|
|
|
|
{
|
|
int16_t c = n.navdata_magneto.my;
|
|
int16_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.my = m;
|
|
}
|
|
|
|
{
|
|
int16_t c = n.navdata_magneto.mz;
|
|
int16_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.mz = m;
|
|
}
|
|
|
|
{
|
|
vector31_t c = n.navdata_magneto.magneto_raw;
|
|
ardrone_autonomy::vector31 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
m.z = c.z;
|
|
|
|
navdata_magneto_msg.magneto_raw = m;
|
|
}
|
|
|
|
{
|
|
vector31_t c = n.navdata_magneto.magneto_rectified;
|
|
ardrone_autonomy::vector31 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
m.z = c.z;
|
|
|
|
navdata_magneto_msg.magneto_rectified = m;
|
|
}
|
|
|
|
{
|
|
vector31_t c = n.navdata_magneto.magneto_offset;
|
|
ardrone_autonomy::vector31 m;
|
|
m.x = c.x;
|
|
m.y = c.y;
|
|
m.z = c.z;
|
|
|
|
navdata_magneto_msg.magneto_offset = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_magneto.heading_unwrapped;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.heading_unwrapped = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_magneto.heading_gyro_unwrapped;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.heading_gyro_unwrapped = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_magneto.heading_fusion_unwrapped;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.heading_fusion_unwrapped = m;
|
|
}
|
|
|
|
{
|
|
char c = n.navdata_magneto.magneto_calibration_ok;
|
|
char m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.magneto_calibration_ok = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_magneto.magneto_state;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.magneto_state = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_magneto.magneto_radius;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.magneto_radius = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_magneto.error_mean;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.error_mean = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_magneto.error_var;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_magneto_msg.error_var = m;
|
|
}
|
|
|
|
pub_navdata_magneto.publish(navdata_magneto_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_wind_speed && pub_navdata_wind_speed.getNumSubscribers()>0)
|
|
{
|
|
navdata_wind_speed_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_wind_speed_msg.header.stamp = received;
|
|
navdata_wind_speed_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_wind_speed.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_wind_speed.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.size = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.wind_speed;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.wind_speed = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.wind_angle;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.wind_angle = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.wind_compensation_theta;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.wind_compensation_theta = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.wind_compensation_phi;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.wind_compensation_phi = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.state_x1;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.state_x1 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.state_x2;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.state_x2 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.state_x3;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.state_x3 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.state_x4;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.state_x4 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.state_x5;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.state_x5 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.state_x6;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.state_x6 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.magneto_debug1;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.magneto_debug1 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.magneto_debug2;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.magneto_debug2 = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_wind_speed.magneto_debug3;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_wind_speed_msg.magneto_debug3 = m;
|
|
}
|
|
|
|
pub_navdata_wind_speed.publish(navdata_wind_speed_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_kalman_pressure && pub_navdata_kalman_pressure.getNumSubscribers()>0)
|
|
{
|
|
navdata_kalman_pressure_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_kalman_pressure_msg.header.stamp = received;
|
|
navdata_kalman_pressure_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_kalman_pressure.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_kalman_pressure.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.size = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.offset_pressure;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.offset_pressure = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.est_z;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.est_z = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.est_zdot;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.est_zdot = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.est_bias_PWM;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.est_bias_PWM = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.est_biais_pression;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.est_biais_pression = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.offset_US;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.offset_US = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.prediction_US;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.prediction_US = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.cov_alt;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.cov_alt = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.cov_PWM;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.cov_PWM = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.cov_vitesse;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.cov_vitesse = m;
|
|
}
|
|
|
|
{
|
|
bool_t c = n.navdata_kalman_pressure.bool_effet_sol;
|
|
bool_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.bool_effet_sol = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.somme_inno;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.somme_inno = m;
|
|
}
|
|
|
|
{
|
|
bool_t c = n.navdata_kalman_pressure.flag_rejet_US;
|
|
bool_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.flag_rejet_US = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.u_multisinus;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.u_multisinus = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_kalman_pressure.gaz_altitude;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.gaz_altitude = m;
|
|
}
|
|
|
|
{
|
|
bool_t c = n.navdata_kalman_pressure.Flag_multisinus;
|
|
bool_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.Flag_multisinus = m;
|
|
}
|
|
|
|
{
|
|
bool_t c = n.navdata_kalman_pressure.Flag_multisinus_debut;
|
|
bool_t m;
|
|
m = c;
|
|
|
|
navdata_kalman_pressure_msg.Flag_multisinus_debut = m;
|
|
}
|
|
|
|
pub_navdata_kalman_pressure.publish(navdata_kalman_pressure_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_hdvideo_stream && pub_navdata_hdvideo_stream.getNumSubscribers()>0)
|
|
{
|
|
navdata_hdvideo_stream_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_hdvideo_stream_msg.header.stamp = received;
|
|
navdata_hdvideo_stream_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_hdvideo_stream.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_hdvideo_stream.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_hdvideo_stream.hdvideo_state;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.hdvideo_state = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_hdvideo_stream.storage_fifo_nb_packets;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.storage_fifo_nb_packets = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_hdvideo_stream.storage_fifo_size;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.storage_fifo_size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_hdvideo_stream.usbkey_size;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.usbkey_size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_hdvideo_stream.usbkey_freespace;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.usbkey_freespace = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_hdvideo_stream.frame_number;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.frame_number = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_hdvideo_stream.usbkey_remaining_time;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_hdvideo_stream_msg.usbkey_remaining_time = m;
|
|
}
|
|
|
|
pub_navdata_hdvideo_stream.publish(navdata_hdvideo_stream_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_wifi && pub_navdata_wifi.getNumSubscribers()>0)
|
|
{
|
|
navdata_wifi_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_wifi_msg.header.stamp = received;
|
|
navdata_wifi_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_wifi.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_wifi_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_wifi.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_wifi_msg.size = m;
|
|
}
|
|
|
|
{
|
|
uint32_t c = n.navdata_wifi.link_quality;
|
|
uint32_t m;
|
|
m = c;
|
|
|
|
navdata_wifi_msg.link_quality = m;
|
|
}
|
|
|
|
pub_navdata_wifi.publish(navdata_wifi_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
if(enabled_navdata_zimmu_3000 && pub_navdata_zimmu_3000.getNumSubscribers()>0)
|
|
{
|
|
navdata_zimmu_3000_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
|
navdata_zimmu_3000_msg.header.stamp = received;
|
|
navdata_zimmu_3000_msg.header.frame_id = droneFrameBase;
|
|
|
|
{
|
|
uint16_t c = n.navdata_zimmu_3000.tag;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_zimmu_3000_msg.tag = m;
|
|
}
|
|
|
|
{
|
|
uint16_t c = n.navdata_zimmu_3000.size;
|
|
uint16_t m;
|
|
m = c;
|
|
|
|
navdata_zimmu_3000_msg.size = m;
|
|
}
|
|
|
|
{
|
|
int32_t c = n.navdata_zimmu_3000.vzimmuLSB;
|
|
int32_t m;
|
|
m = c;
|
|
|
|
navdata_zimmu_3000_msg.vzimmuLSB = m;
|
|
}
|
|
|
|
{
|
|
float32_t c = n.navdata_zimmu_3000.vzfind;
|
|
float32_t m;
|
|
m = c;
|
|
|
|
navdata_zimmu_3000_msg.vzfind = m;
|
|
}
|
|
|
|
pub_navdata_zimmu_3000.publish(navdata_zimmu_3000_msg);
|
|
}
|
|
|
|
//-------------------------
|
|
|
|
}
|
|
}
|
|
#endif
|
|
|
|
|
|
|
|
|