Moved navdata initialization to configureDrone() rather than happening the first time that navdata is sent
Esse commit está contido em:
@@ -31,11 +31,7 @@
|
|||||||
bool initialized_navdata_publishers;
|
bool initialized_navdata_publishers;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NAVDATA_STRUCTS_SOURCE
|
#ifdef NAVDATA_STRUCTS_INITIALIZE
|
||||||
void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t &n)
|
|
||||||
{
|
|
||||||
const ros::Time now = ros::Time::now();
|
|
||||||
|
|
||||||
if(!initialized_navdata_publishers)
|
if(!initialized_navdata_publishers)
|
||||||
{
|
{
|
||||||
initialized_navdata_publishers = true;
|
initialized_navdata_publishers = true;
|
||||||
@@ -61,38 +57,46 @@ void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t &n)
|
|||||||
|
|
||||||
% endfor
|
% endfor
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
% for item in structs:
|
#ifdef NAVDATA_STRUCTS_SOURCE
|
||||||
if(enabled_${item['struct_name']} && pub_${item['struct_name']}.getNumSubscribers()>0)
|
void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t &n)
|
||||||
|
{
|
||||||
|
const ros::Time now = ros::Time::now();
|
||||||
|
|
||||||
|
if(initialized_navdata_publishers)
|
||||||
{
|
{
|
||||||
${item['struct_name']}_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
% for item in structs:
|
||||||
${item['struct_name']}_msg.header.stamp = now;
|
if(enabled_${item['struct_name']} && pub_${item['struct_name']}.getNumSubscribers()>0)
|
||||||
${item['struct_name']}_msg.header.frame_id = droneFrameBase;
|
{
|
||||||
|
${item['struct_name']}_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
|
||||||
|
${item['struct_name']}_msg.header.stamp = now;
|
||||||
|
${item['struct_name']}_msg.header.frame_id = droneFrameBase;
|
||||||
|
|
||||||
% for member in item['members']:
|
% for member in item['members']:
|
||||||
% if member['array_size'] is None:
|
% if member['array_size'] is None:
|
||||||
{\
|
{\
|
||||||
${format_member(item, member, None)}
|
${format_member(item, member, None)}
|
||||||
${item['struct_name']}_msg.${member['name']} = m;
|
${item['struct_name']}_msg.${member['name']} = m;
|
||||||
}
|
}
|
||||||
|
|
||||||
% else:
|
% else:
|
||||||
${item['struct_name']}_msg.${member['name']}.clear();
|
${item['struct_name']}_msg.${member['name']}.clear();
|
||||||
for(int i=0; i<${member['array_size']}; i++)
|
for(int i=0; i<${member['array_size']}; i++)
|
||||||
{\
|
{\
|
||||||
${format_member(item, member, 'i')}
|
${format_member(item, member, 'i')}
|
||||||
${item['struct_name']}_msg.${member['name']}.push_back(m);
|
${item['struct_name']}_msg.${member['name']}.push_back(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
% endif
|
% endif
|
||||||
% endfor
|
% endfor
|
||||||
pub_${item['struct_name']}.publish(${item['struct_name']}_msg);
|
pub_${item['struct_name']}.publish(${item['struct_name']}_msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------
|
//-------------------------
|
||||||
|
|
||||||
% endfor
|
% endfor
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+1118
-1114
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -137,7 +137,7 @@ void ARDroneDriver::run()
|
|||||||
ardrone_control_config.num_version_soft,
|
ardrone_control_config.num_version_soft,
|
||||||
shared_raw_navdata.navdata_demo.vbat_flying_percentage);
|
shared_raw_navdata.navdata_demo.vbat_flying_percentage);
|
||||||
ROS_INFO("Navdata Publish Settings:");
|
ROS_INFO("Navdata Publish Settings:");
|
||||||
//ROS_INFO(" Legacy Mode: %s", enabled_legacy_navdata ? "On" : "Off"); //Bug: This is being inited after in the NavdataMessage*.h
|
ROS_INFO(" Legacy Mode: %s", enabled_legacy_navdata ? "On" : "Off"); //Bug: This is being inited after in the NavdataMessage*.h
|
||||||
ROS_INFO(" ROS Loop Rate: %d", looprate);
|
ROS_INFO(" ROS Loop Rate: %d", looprate);
|
||||||
ROS_INFO(" Instant New Navdata Publish: %s", fullspeed_navdata ? "On" : "Off");
|
ROS_INFO(" Instant New Navdata Publish: %s", fullspeed_navdata ? "On" : "Off");
|
||||||
// TODO: Enabled Navdata Demo
|
// TODO: Enabled Navdata Demo
|
||||||
@@ -225,6 +225,11 @@ void ARDroneDriver::configureDrone()
|
|||||||
#undef ARDRONE_CONFIG_KEY_IMM_a10
|
#undef ARDRONE_CONFIG_KEY_IMM_a10
|
||||||
#undef ARDRONE_CONFIG_KEY_REF_a10
|
#undef ARDRONE_CONFIG_KEY_REF_a10
|
||||||
#undef ARDRONE_CONFIG_KEY_STR_a10
|
#undef ARDRONE_CONFIG_KEY_STR_a10
|
||||||
|
|
||||||
|
|
||||||
|
#define NAVDATA_STRUCTS_INITIALIZE
|
||||||
|
#include "NavdataMessageDefinitions.h"
|
||||||
|
#undef NAVDATA_STRUCTS_INITIALIZE
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARDroneDriver::resetCaliberation()
|
void ARDroneDriver::resetCaliberation()
|
||||||
|
|||||||
Referência em uma Nova Issue
Bloquear um usuário