|
|
|
@ -296,14 +296,6 @@ bool AP_GPS_NMEA::_term_complete()
@@ -296,14 +296,6 @@ bool AP_GPS_NMEA::_term_complete()
|
|
|
|
|
|
|
|
|
|
#if HAL_WITH_UAVCAN |
|
|
|
|
uint8_t can_num_drivers = AP::can().get_num_drivers(); |
|
|
|
|
uint32_t tk1 = AP_HAL::micros(); |
|
|
|
|
Vector3f cam_pos_ned = camera_pos_rotation(); |
|
|
|
|
uint32_t tk2 = AP_HAL::micros(); |
|
|
|
|
|
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO, "mrk:%d, %d, %d, %d", gps_mark.week, gps_mark.second, (int32_t)(gps_mark.lat * (int32_t)10000000UL), (int32_t)(gps_mark.lon * (int32_t)10000000UL));
|
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"ant:%.2f,%.2f,%.2f,euler:%.2f,%.2f,%.2f",_cam_offset.x,_cam_offset.y,_cam_offset.z,euler_deg.x,euler_deg.y,euler_deg.z); |
|
|
|
|
|
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"rot:%dus,%.3f,%.3f,%.3f",tk2 - tk1,cam_pos_ned.x,cam_pos_ned.y,cam_pos_ned.z); |
|
|
|
|
|
|
|
|
|
for (uint8_t i = 0; i < can_num_drivers; i++) |
|
|
|
|
{ |
|
|
|
@ -330,16 +322,19 @@ bool AP_GPS_NMEA::_term_complete()
@@ -330,16 +322,19 @@ bool AP_GPS_NMEA::_term_complete()
|
|
|
|
|
|
|
|
|
|
if (logger != nullptr) |
|
|
|
|
{ |
|
|
|
|
// uint32_t tk1 = AP_HAL::micros();
|
|
|
|
|
Vector3f cam_pos_ned = camera_pos_rotation(); |
|
|
|
|
// uint32_t tk2 = AP_HAL::micros();
|
|
|
|
|
Vector3d llh = Vector3d(gps_mark.lat, gps_mark.lon, gps_mark.hgt); |
|
|
|
|
Vector3f sigma = Vector3f(gps_mark.lat_sigma, gps_mark.lon_sigma, gps_mark.hgt_sigma); |
|
|
|
|
AP::logger().Write_RTK_Mark_Pos( |
|
|
|
|
gps_mark.week, |
|
|
|
|
gps_mark.second, |
|
|
|
|
llh, |
|
|
|
|
gps_mark.undulation, |
|
|
|
|
sigma, |
|
|
|
|
gps_mark.diff_age, |
|
|
|
|
gps_mark.sol_age); |
|
|
|
|
cam_pos_ned); |
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO, "mrk:%d, %d, %d, %d", gps_mark.week, gps_mark.second, (int32_t)(gps_mark.lat * (int32_t)10000000UL), (int32_t)(gps_mark.lon * (int32_t)10000000UL));
|
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO,"rot:%dus,%.3f,%.3f,%.3f",(uint16_t)(tk2 - tk1),cam_pos_ned.x,cam_pos_ned.y,cam_pos_ned.z);
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -719,19 +714,9 @@ Vector3f AP_GPS_NMEA::camera_pos_rotation()
@@ -719,19 +714,9 @@ Vector3f AP_GPS_NMEA::camera_pos_rotation()
|
|
|
|
|
return cam_pos_ned; |
|
|
|
|
} |
|
|
|
|
const AP_AHRS &ahrs = AP::ahrs(); |
|
|
|
|
|
|
|
|
|
Tbn = ahrs.get_rotation_body_to_ned(); |
|
|
|
|
cam_pos_ned = Tbn * (_cam_offset); |
|
|
|
|
// Vector3f euler,euler_deg;
|
|
|
|
|
if(ahrs.get_secondary_attitude(euler)){ |
|
|
|
|
euler_deg.x = degrees(euler.x); |
|
|
|
|
euler_deg.y = degrees(euler.y); |
|
|
|
|
euler_deg.z = wrap_360(degrees(euler.z)); |
|
|
|
|
} |
|
|
|
|
// Vector3f cam_pos_delt = Tbn.mul_transpose(_cam_offset);
|
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO,"org:%.2f,%.2f,%.2f,euler:%.2f,%.2f,%.2f",_cam_offset.x,_cam_offset.y,_cam_offset.z,euler_deg.x,euler_deg.y,euler_deg.z);
|
|
|
|
|
return cam_pos_ned; |
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO,"del:%.2f,%.2f,%.2f",cam_pos_delt.x,cam_pos_delt.y,cam_pos_delt.z);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Calculate and return the CRC for usA binary buffer
|
|
|
|
|