Skip to content

Commit

Permalink
SITL: Glider improvements
Browse files Browse the repository at this point in the history
Fixed balloon going below ground.
Enabled glider torque logging.
  • Loading branch information
Georacer committed Jul 19, 2024
1 parent 5a54d9a commit c24e212
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion libraries/SITL/SIM_Aircraft.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ void Aircraft::update_position(void)
uint32_t now = AP_HAL::millis();
if (now - last_one_hz_ms >= 1000) {
// shift origin of position at 1Hz to current location
// this prevents sperical errors building up in the GPS data
// this prevents spherical errors building up in the GPS data
last_one_hz_ms = now;
Vector2d diffNE = origin.get_distance_NE_double(location);
position.xy() -= diffNE;
Expand Down
8 changes: 4 additions & 4 deletions libraries/SITL/SIM_Glider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Vector3f Glider::getTorque(float inputAileron, float inputElevator, float inputR
float Mz = Cn * qPa * m.Sref * m.refSpan;


#if 0
#if HAL_LOGGING_ENABLED
AP::logger().Write("GLT", "TimeUS,Alpha,Beta,Cl,Cm,Cn", "Qfffff",
AP_HAL::micros64(),
degrees(alpharad),
Expand Down Expand Up @@ -231,7 +231,7 @@ void Glider::calculate_forces(const struct sitl_input &input, Vector3f &rot_acce
float aileron = 0.5*(filtered_servo_angle(input, 1) + filtered_servo_angle(input, 4));
float elevator = filtered_servo_angle(input, 2);
float rudder = filtered_servo_angle(input, 3);
float balloon = filtered_servo_range(input, 5);
float balloon = MAX(0.0f, filtered_servo_range(input, 5)); // Don't let the balloon receive downwards commands.
float balloon_cut = filtered_servo_range(input, 9);

// Move balloon upwards using balloon velocity from channel 6
Expand All @@ -241,7 +241,7 @@ void Glider::calculate_forces(const struct sitl_input &input, Vector3f &rot_acce
balloon_velocity = Vector3f(-wind_ef.x, -wind_ef.y, -wind_ef.z -balloon_rate * balloon);
balloon_position += balloon_velocity * (1.0e-6 * (float)frame_time_us);
const float height_AMSL = 0.01f * (float)home.alt - position.z;
// release at burst height or when channel 9 goes high
// release at burst height or when balloon cut output goes high
if (hal.scheduler->is_system_initialized() &&
(height_AMSL > balloon_burst_amsl || balloon_cut > 0.8)) {
GCS_SEND_TEXT(MAV_SEVERITY_INFO, "pre-release at %i m AMSL\n", (int)height_AMSL);
Expand Down Expand Up @@ -380,7 +380,7 @@ bool Glider::update_balloon(float balloon, Vector3f &force, Vector3f &rot_accel)
// NED unit vector pointing from tether attachment on plane to attachment on balloon
Vector3f tether_unit_vec_ef = relative_position.normalized();

// NED velocity of attahment point on plane
// NED velocity of attachment point on plane
Vector3f attachment_velocity_ef = velocity_ef + dcm * (gyro % tether_pos_bf);

// NED velocity of attachment point on balloon as seen by observer on attachemnt point on plane
Expand Down

0 comments on commit c24e212

Please sign in to comment.