@@ -30,8 +30,6 @@ void Raptor::reset(){
3030 for (TI action_i=0 ; action_i < EXECUTOR_SPEC::OUTPUT_DIM; action_i++){
3131 this ->previous_action [action_i] = RESET_PREVIOUS_ACTION_VALUE;
3232 }
33- // rl_tools_inference_applications_l2f_reset();
34-
3533 rlt::reset (device, executor, policy, rng);
3634}
3735
@@ -47,6 +45,7 @@ bool Raptor::test_policy(FILE *f, TI input_offset, TI output_offset){
4745#endif
4846 using namespace rl_tools ::inference::applications::l2f;
4947#ifndef RL_TOOLS_DISABLE_TEST
48+ // This tests the policy using a known input output pair that has been saved into the policy checkpoint to verify that it has been loaded correctly
5049 EXECUTOR_CONFIG::POLICY_TEST::template Buffer<false > buffers_test;
5150 EXECUTOR_CONFIG::POLICY_TEST::State<false > policy_state_test;
5251 rl_tools::Tensor<rl_tools::tensor::Specification<EXECUTOR_CONFIG::TYPE_POLICY::DEFAULT, TI, rl_tools::tensor::Shape<TI, 1 , decltype (policy)::OUTPUT_SHAPE::LAST>, false >> test_output;
@@ -86,20 +85,20 @@ bool Raptor::test_policy(FILE *f, TI input_offset, TI output_offset){
8685 }
8786 }
8887 float abs_diff = acc / num_values;
89- PX4_INFO (" Checkpoint test diff: %f" , abs_diff);
88+ PX4_INFO (" Checkpoint test diff: %f" , ( double ) abs_diff);
9089 for (TI output_i = 0 ; output_i < EXECUTOR_CONFIG::OUTPUT_DIM; output_i++){
91- PX4_INFO (" output[%d]: %f" , output_i, action.action [output_i]);
90+ PX4_INFO (" output[%d]: %f" , ( int ) output_i, ( double ) action.action [output_i]);
9291 }
9392
9493 constexpr float EPSILON = 1e-5 ;
9594
9695 bool healthy = abs_diff < EPSILON;
9796 if (!healthy){
98- PX4_ERR (" Checkpoint test failed with diff %.10f" , abs_diff);
97+ PX4_ERR (" Checkpoint test failed with diff %.10f" , ( double ) abs_diff);
9998 return false ;
10099 }
101100 else {
102- PX4_INFO (" Checkpoint test passed with diff %.10f" , abs_diff);
101+ PX4_INFO (" Checkpoint test passed with diff %.10f" , ( double ) abs_diff);
103102 return true ;
104103 }
105104#else
@@ -182,11 +181,11 @@ bool Raptor::init()
182181 TI input_offset = 0 ;
183182 TI input_size = 0 ;
184183 rlt::persist::backends::tar::seek (device, reader_group.data , " example/input/data" , input_offset, input_size);
185- PX4_INFO (" Input offset: %d" , input_offset);
184+ PX4_INFO (" Input offset: %d" , ( int ) input_offset);
186185 TI output_offset = 0 ;
187186 TI output_size = 0 ;
188187 rlt::persist::backends::tar::seek (device, reader_group.data , " example/output/data" , output_offset, output_size);
189- PX4_INFO (" Output offset: %d" , output_offset);
188+ PX4_INFO (" Output offset: %d" , ( int ) output_offset);
190189 if (!test_policy (f, input_offset, output_offset)){
191190 PX4_ERR (" Checkpoint test failed" );
192191 return false ;
@@ -225,14 +224,14 @@ bool Raptor::init()
225224
226225 int32_t imu_gyro_ratemax = _param_imu_gyro_ratemax.get ();
227226 if (imu_gyro_ratemax % POLICY_CONTROL_FREQUENCY_TRAINING != 0 ){
228- PX4_WARN (" IMU_GYRO_RATEMAX=%d Hz is not a multiple of the training frequency (%d Hz)" , imu_gyro_ratemax, POLICY_CONTROL_FREQUENCY_TRAINING);
227+ PX4_WARN (" IMU_GYRO_RATEMAX=%d Hz is not a multiple of the training frequency (%d Hz)" , ( int ) imu_gyro_ratemax, ( int ) POLICY_CONTROL_FREQUENCY_TRAINING);
229228 }
230229 int32_t force_sync_native = imu_gyro_ratemax / POLICY_CONTROL_FREQUENCY_TRAINING;
231230 executor.executor .force_sync_native = force_sync_native;
232231 executor.executor .force_sync_native_initialized = true ;
233- PX4_INFO (" IMU_GYRO_RATEMAX=%d Hz" , imu_gyro_ratemax);
234- PX4_INFO (" POLICY_CONTROL_FREQUENCY_TRAINING=%d Hz" , POLICY_CONTROL_FREQUENCY_TRAINING);
235- PX4_INFO (" Setting force_sync_native = %d Hz / %d Hz = %d" , imu_gyro_ratemax, POLICY_CONTROL_FREQUENCY_TRAINING, force_sync_native);
232+ PX4_INFO (" IMU_GYRO_RATEMAX=%d Hz" , ( int ) imu_gyro_ratemax);
233+ PX4_INFO (" POLICY_CONTROL_FREQUENCY_TRAINING=%d Hz" , ( int ) POLICY_CONTROL_FREQUENCY_TRAINING);
234+ PX4_INFO (" Setting force_sync_native = %d Hz / %d Hz = %d" , ( int ) imu_gyro_ratemax, ( int ) POLICY_CONTROL_FREQUENCY_TRAINING, ( int ) force_sync_native);
236235
237236 return true ;
238237}
@@ -300,10 +299,10 @@ void Raptor::observe(rl_tools::inference::applications::l2f::Observation<EXECUTO
300299 // diff = q2 - FRD2FLU * q * transpose(FRD2FLU)
301300 // @assert sum(abs.(diff)) < 1e-10
302301 T q_target[4 ];
303- q_target[0 ] = cos (0.5 * _trajectory_setpoint.yaw ); // minus because the setpoint yaw is in NED
302+ q_target[0 ] = cosf (0 .5f * _trajectory_setpoint.yaw ); // minus because the setpoint yaw is in NED
304303 q_target[1 ] = 0 ;
305304 q_target[2 ] = 0 ;
306- q_target[3 ] = sin (0.5 * _trajectory_setpoint.yaw );
305+ q_target[3 ] = sinf (0 .5f * _trajectory_setpoint.yaw );
307306
308307 T qt[4 ], qtc[4 ], qr[4 ];
309308 qt[0 ] = +q_target[0 ]; // conjugate to build the difference between setpoint and current
@@ -466,17 +465,22 @@ void Raptor::Run(){
466465 }
467466
468467 bool angular_velocity_update = false ;
469- if (status.subscription_update_angular_velocity = _vehicle_angular_velocity_sub.update (&_vehicle_angular_velocity)){
468+ status.subscription_update_angular_velocity = _vehicle_angular_velocity_sub.update (&_vehicle_angular_velocity);
469+ if (status.subscription_update_angular_velocity ){
470470 timestamp_last_angular_velocity = current_time;
471471 timestamp_last_angular_velocity_set = true ;
472472 angular_velocity_update = true ;
473473 }
474474 status.timestamp_sample = _vehicle_angular_velocity.timestamp_sample ;
475- if (status.subscription_update_local_position = _vehicle_local_position_sub.update (&_vehicle_local_position)){
475+
476+ status.subscription_update_local_position = _vehicle_local_position_sub.update (&_vehicle_local_position);
477+ if (status.subscription_update_local_position ){
476478 timestamp_last_local_position = current_time;
477479 timestamp_last_local_position_set = true ;
478480 }
479- if (status.subscription_update_visual_odometry = _vehicle_visual_odometry_sub.update (&_vehicle_visual_odometry)){
481+
482+ status.subscription_update_visual_odometry = _vehicle_visual_odometry_sub.update (&_vehicle_visual_odometry);
483+ if (status.subscription_update_visual_odometry ){
480484 if (timestamp_last_visual_odometry_set){
481485 odometry_dts[odometry_dt_index] = current_time - timestamp_last_visual_odometry;
482486 odometry_dt_index = (odometry_dt_index + 1 ) % NUM_ODOMETRY_DTS;
@@ -506,7 +510,8 @@ void Raptor::Run(){
506510 status.visual_odometry_dt_mean /= NUM_ODOMETRY_DTS;
507511 status.visual_odometry_dt_std = sqrt (status.visual_odometry_dt_std / NUM_ODOMETRY_DTS - status.visual_odometry_dt_mean * status.visual_odometry_dt_mean );
508512
509- if (status.subscription_update_attitude = _vehicle_attitude_sub.update (&_vehicle_attitude)){
513+ status.subscription_update_attitude = _vehicle_attitude_sub.update (&_vehicle_attitude);
514+ if (status.subscription_update_attitude ){
510515 timestamp_last_attitude = current_time;
511516 timestamp_last_attitude_set = true ;
512517 }
@@ -543,7 +548,7 @@ void Raptor::Run(){
543548 return ;
544549 }
545550
546- bool timestamp_last_odometry_set = Raptor::ODOMETRY_SOURCE == Raptor::OdometrySource::LOCAL_POSITION && timestamp_last_local_position_set || Raptor::ODOMETRY_SOURCE == Raptor::OdometrySource::VISUAL_ODOMETRY && timestamp_last_visual_odometry_set;
551+ bool timestamp_last_odometry_set = ( Raptor::ODOMETRY_SOURCE == Raptor::OdometrySource::LOCAL_POSITION && timestamp_last_local_position_set) || ( Raptor::ODOMETRY_SOURCE == Raptor::OdometrySource::VISUAL_ODOMETRY && timestamp_last_visual_odometry_set) ;
547552 if (!timestamp_last_angular_velocity_set || !timestamp_last_odometry_set || !timestamp_last_attitude_set){
548553 status.exit_reason = raptor_status_s::EXIT_REASON_NOT_ALL_OBSERVATIONS_SET;
549554 if constexpr (PUBLISH_NON_COMPLETE_STATUS){
@@ -600,7 +605,7 @@ void Raptor::Run(){
600605 tune_control.frequency = 1000 ;
601606 tune_control.duration = 10000 ;
602607 _tune_control_pub.publish (tune_control);
603- PX4_WARN (" VISUAL ODOMETRY STALE: Begin " );
608+ PX4_WARN (" Visual odometry stale: begin " );
604609 }
605610 timestamp_last_visual_odometry_stale = timestamp_last_visual_odometry;
606611 timestamp_last_visual_odometry_stale_set = true ;
@@ -629,7 +634,7 @@ void Raptor::Run(){
629634 tune_control.frequency = 2000 ;
630635 tune_control.duration = min (10000000 , diff);
631636 _tune_control_pub.publish (tune_control);
632- PX4_WARN (" VISUAL ODOMETRY STALE: End %llu uS" , diff);
637+ PX4_WARN (" Visual odometry stale: end %llu uS" , ( unsigned long long ) diff);
633638 }
634639 timestamp_last_visual_odometry_stale_set = false ;
635640 if (Raptor::ODOMETRY_SOURCE == Raptor::OdometrySource::VISUAL_ODOMETRY){
@@ -691,7 +696,7 @@ void Raptor::Run(){
691696 if (!timestamp_last_trajectory_setpoint_set || (current_time - timestamp_last_trajectory_setpoint) > TRAJECTORY_SETPOINT_TIMEOUT){
692697 status.trajectory_setpoint_stale = true ;
693698 if (!previous_trajectory_setpoint_stale){
694- PX4_WARN (" trajectory_setpoint turned stale at: %f %f %f" , position[0 ], position[1 ], position[2 ]);
699+ PX4_WARN (" trajectory_setpoint turned stale at: %f %f %f" , ( double ) position[0 ], ( double ) position[1 ], ( double ) position[2 ]);
695700 _trajectory_setpoint.position [0 ] = position[0 ];
696701 _trajectory_setpoint.position [1 ] = position[1 ];
697702 _trajectory_setpoint.position [2 ] = position[2 ];
@@ -705,7 +710,7 @@ void Raptor::Run(){
705710 }
706711 else {
707712 if (previous_trajectory_setpoint_stale){
708- PX4_WARN (" trajectory_setpoint turned non-stale at: %f %f %f" , position[0 ], position[1 ], position[2 ]);
713+ PX4_WARN (" trajectory_setpoint turned non-stale at: %f %f %f" , ( double ) position[0 ], ( double ) position[1 ], ( double ) position[2 ]);
709714 previous_trajectory_setpoint_stale = false ;
710715 }
711716 status.trajectory_setpoint_stale = false ;
@@ -715,7 +720,6 @@ void Raptor::Run(){
715720 rl_tools::inference::applications::l2f::Observation<EXECUTOR_SPEC> observation;
716721 rl_tools::inference::applications::l2f::Action<EXECUTOR_SPEC> action;
717722 observe (observation);
718- // auto executor_status = rl_tools_inference_applications_l2f_control(current_time * 1000, &observation, &action);
719723 TI nanoseconds = current_time * 1000 ;
720724 auto executor_status = rl_tools::control (device, executor, nanoseconds, policy, observation, action, rng);
721725
@@ -727,8 +731,8 @@ void Raptor::Run(){
727731 return ;
728732 }
729733
730-
731- if (status.subscription_update_vehicle_status = _vehicle_status_sub. updated () ) {
734+ status. subscription_update_vehicle_status = _vehicle_status_sub. updated ();
735+ if (status.subscription_update_vehicle_status ) {
732736 _vehicle_status_sub.copy (&_vehicle_status);
733737 }
734738 bool next_active = _vehicle_status.nav_state == ext_component_mode_id;
@@ -764,7 +768,7 @@ void Raptor::Run(){
764768 _raptor_input_pub.publish (input_msg);
765769 _raptor_status_pub.publish (status);
766770
767- actuator_motors_s actuator_motors = {}; // zero initialize to set e.g. the reversible_flags to all 0
771+ actuator_motors_s actuator_motors{};
768772 actuator_motors.timestamp = hrt_absolute_time ();
769773 actuator_motors.timestamp_sample = _vehicle_angular_velocity.timestamp_sample ;
770774 for (TI action_i=0 ; action_i < actuator_motors_s::NUM_CONTROLS; action_i++){
@@ -813,7 +817,7 @@ void Raptor::Run(){
813817 if (this ->timestamp_last_policy_frequency_check_set ){
814818 if (last_intermediate_status_set){
815819 if (!this ->last_intermediate_status .timing_bias .OK || !this ->last_intermediate_status .timing_jitter .OK ){
816- PX4_WARN (" Raptor: INTERMEDIATE: BIAS %fx JITTER %fx" , this ->last_intermediate_status .timing_bias .MAGNITUDE , this ->last_intermediate_status .timing_jitter .MAGNITUDE );
820+ PX4_WARN (" Raptor: INTERMEDIATE: BIAS %fx JITTER %fx" , ( double ) this ->last_intermediate_status .timing_bias .MAGNITUDE , ( double ) this ->last_intermediate_status .timing_jitter .MAGNITUDE );
817821 }
818822 else {
819823 if (this ->policy_frequency_check_counter % POLICY_FREQUENCY_INFO_INTERVAL == 0 ){
@@ -823,7 +827,7 @@ void Raptor::Run(){
823827 }
824828 if (last_native_status_set){
825829 if (!this ->last_native_status .timing_bias .OK || !this ->last_native_status .timing_jitter .OK ){
826- PX4_WARN (" Raptor: NATIVE: BIAS %fx JITTER %fx" , this ->last_native_status .timing_bias .MAGNITUDE , this ->last_native_status .timing_jitter .MAGNITUDE );
830+ PX4_WARN (" Raptor: NATIVE: BIAS %fx JITTER %fx" , ( double ) this ->last_native_status .timing_bias .MAGNITUDE , ( double ) this ->last_native_status .timing_jitter .MAGNITUDE );
827831 }
828832 else {
829833 if (this ->policy_frequency_check_counter % POLICY_FREQUENCY_INFO_INTERVAL == 0 ){
0 commit comments