2626#include " HEAR_ROS_BRIDGE/ROSUnit_RestNormSettingsClnt.hpp"
2727#include " HEAR_ROS_BRIDGE/ROSUnit_ControlOutputSubscriber.hpp"
2828
29- #define MRFT_POS_X
30- // #define MRFT_POS_Y
29+ // #define MRFT_POS_X
30+ #define MRFT_POS_Y
3131// #define MRFT_POS_Z
3232// //////////////////////////////////// increase relay amplitude in Y
3333#define MRFT_SLAM
3838const float SLAM_FREQ = 90.0 ;
3939const float KF_FREQ = 200.0 ;
4040const float OPTI_FREQ = 90.0 ;
41- const float TAKE_OFF_HEIGHT = 1.2 ;
41+ const float TAKE_OFF_HEIGHT = 1.3 ;
4242const float LAND_HEIGHT = -0.01 ;
4343
4444
@@ -105,6 +105,10 @@ int main(int argc, char** argv) {
105105 " kf_switch" );
106106#endif
107107
108+ ROSUnit* ros_rec_hover_thrust = ROSUnit_Factory_main.CreateROSUnit (ROSUnit_tx_rx_type::Client,
109+ ROSUnit_msg_type::ROSUnit_Bool,
110+ " record_hover_thrust" );
111+
108112 ROSUnit* ros_flight_command = ROSUnit_Factory_main.CreateROSUnit (ROSUnit_tx_rx_type::Server,
109113 ROSUnit_msg_type::ROSUnit_Empty,
110114 " flight_command" );// TODO: Change to user_command
@@ -118,6 +122,11 @@ int main(int argc, char** argv) {
118122 ROSUnit_msg_type::ROSUnit_Empty,
119123 " send_curr_pos_slam" );
120124
125+ ROSUnit* ros_adjust_act_gain = ROSUnit_Factory_main.CreateROSUnit (ROSUnit_tx_rx_type::Client,
126+ ROSUnit_msg_type::ROSUnit_Bool,
127+ " use_adjusted_act_gain" );
128+
129+
121130// //*****************Flight Elements*************
122131
123132 MissionElement* update_controller_pid_x = new UpdateController ();
@@ -181,6 +190,10 @@ int main(int argc, char** argv) {
181190 MissionElement* send_curr_slam_ref = new Arm ();
182191 MissionElement* send_curr_opti_ref = new Arm ();
183192
193+ MissionElement* rec_hover_thrust = new Arm ();
194+ MissionElement* adjust_act_gain = new Arm ();
195+ MissionElement* original_act_gain = new Disarm ();
196+
184197 // ******************Connections***************
185198 update_controller_pid_x->getPorts ()[(int )UpdateController::ports_id::OP_0]->connect (ros_updt_ctr->getPorts ()[(int )ROSUnit_UpdateControllerClnt::ports_id::IP_0_PID]);
186199 update_controller_pid_y->getPorts ()[(int )UpdateController::ports_id::OP_0]->connect (ros_updt_ctr->getPorts ()[(int )ROSUnit_UpdateControllerClnt::ports_id::IP_0_PID]);
@@ -242,6 +255,10 @@ int main(int argc, char** argv) {
242255 change_to_opti_rate->getPorts ()[(int )SwitchTrigger::ports_id::OP_0]->connect (ros_outer_rate_client->getPorts ()[(int )ROSUnit_SetFloatClnt::ports_id::IP_0]);
243256 #endif
244257
258+ rec_hover_thrust->getPorts ()[(int )Arm::ports_id::OP_0]->connect (ros_rec_hover_thrust->getPorts ()[(int )ROSUnit_SetBoolClnt::ports_id::IP_0]);
259+ adjust_act_gain->getPorts ()[(int )Arm::ports_id::OP_0]->connect (ros_adjust_act_gain->getPorts ()[(int )ROSUnit_SetBoolClnt::ports_id::IP_0]);
260+ original_act_gain->getPorts ()[(int )Disarm::ports_id::OP_0]->connect (ros_adjust_act_gain->getPorts ()[(int )ROSUnit_SetBoolClnt::ports_id::IP_0]);
261+
245262 // *************Setting Flight Elements*************
246263
247264 ((UpdateController*)update_controller_pid_x)->pid_data .kp = 9.28 ; // 0.583430204; //0.8786*0.5; //0.51639 * 0.8;
@@ -319,10 +336,10 @@ int main(int argc, char** argv) {
319336
320337#ifdef MRFT_POS_Y
321338 ((UpdateController*)update_controller_mrft_y)->mrft_data .beta = -0.735 ;
322- ((UpdateController*)update_controller_mrft_y)->mrft_data .relay_amp = 1.5 ;
339+ ((UpdateController*)update_controller_mrft_y)->mrft_data .relay_amp = 2.0 ;
323340 ((UpdateController*)update_controller_mrft_y)->mrft_data .bias = 0.0 ;
324341 ((UpdateController*)update_controller_mrft_y)->mrft_data .no_switch_delay_in_ms = 100 ;
325- ((UpdateController*)update_controller_mrft_y)->mrft_data .num_of_peak_conf_samples = 20 ;
342+ ((UpdateController*)update_controller_mrft_y)->mrft_data .num_of_peak_conf_samples = 24 ;
326343 ((UpdateController*)update_controller_mrft_y)->mrft_data .id = block_id::MRFT_Y;
327344#endif
328345
@@ -423,11 +440,18 @@ int main(int argc, char** argv) {
423440 mrft_pipeline.addElement ((MissionElement*)&wait_100ms);
424441 mrft_pipeline.addElement ((MissionElement*)set_vo_offset);
425442 mrft_pipeline.addElement ((MissionElement*)arm_motors);
426-
443+
427444 mrft_pipeline.addElement ((MissionElement*)user_command);
428445 mrft_pipeline.addElement ((MissionElement*)arm_motors);
429446 mrft_pipeline.addElement ((MissionElement*)take_off);
430447
448+ mrft_pipeline.addElement ((MissionElement*)user_command);
449+ mrft_pipeline.addElement ((MissionElement*)rec_hover_thrust);
450+ mrft_pipeline.addElement ((MissionElement*)&wait_100ms);
451+ mrft_pipeline.addElement ((MissionElement*)adjust_act_gain);
452+ mrft_pipeline.addElement ((MissionElement*)&wait_1s);
453+
454+
431455// mrft_pipeline.addElement((MissionElement*)&wait_5s);
432456
433457 #ifdef MRFT_POS_X
0 commit comments