diff --git a/.SimulinkProject/Root.type.ProjectPath/8c0fbc49-0f51-4ea3-994a-c68b17dc50bf.type.Reference.xml b/.SimulinkProject/Root.type.ProjectPath/ed3f4b69-c427-4cce-95e2-3f192b1dc65b.type.Reference.xml similarity index 100% rename from .SimulinkProject/Root.type.ProjectPath/8c0fbc49-0f51-4ea3-994a-c68b17dc50bf.type.Reference.xml rename to .SimulinkProject/Root.type.ProjectPath/ed3f4b69-c427-4cce-95e2-3f192b1dc65b.type.Reference.xml diff --git a/bus/Commander_In_Bus.m b/bus/Commander_In_Bus.m index a26c572..0775cba 100644 --- a/bus/Commander_In_Bus.m +++ b/bus/Commander_In_Bus.m @@ -23,6 +23,7 @@ {'sp_waypoint', 3, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... {'cur_waypoint', 3, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... {'offboard_psi_0', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('The psi value when offboard mode entered, \nwhich is used for FRAME_LOCAL_FRD')}; ... +{'set_speed', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('Set speed for cuise flight')}; ... } ... } ... }'; diff --git a/bus/Extended_States_Bus.m b/bus/Extended_States_Bus.m index bc149f1..ce2169a 100644 --- a/bus/Extended_States_Bus.m +++ b/bus/Extended_States_Bus.m @@ -14,81 +14,6 @@ end cellInfo = { ... - { ... - 'AirSpeed_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'diff_pressure', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('Pa'), ''}; ... -{'temperature', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('degC'), ''}; ... - } ... - } ... - { ... - 'Auto_Cmd_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'p_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('rate x command in body frame')}; ... -{'q_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('rate y command in body frame')}; ... -{'r_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('rate z command in body frame')}; ... -{'phi_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), sprintf('roll command')}; ... -{'theta_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), sprintf('pitch command')}; ... -{'psi_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'psi_rate_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('yaw rate command')}; ... -{'x_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'y_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'z_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'lat_cmd', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'lon_cmd', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'alt_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'u_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('velocity x command in control frame')}; ... -{'v_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('velocity y command in control frame')}; ... -{'w_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('velocity z command in control frame')}; ... -{'ax_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'ay_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'az_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'throttle_cmd', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('throttle command')}; ... -{'frame', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Coordinate Frame:\n0:FRAME_GLOBAL_NED\n1:FRAME_LOCAL_FRD\n2:FRAME_BODY_FRD')}; ... -{'reserved', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'cmd_mask', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Type mask for auto command:\n 1: p_cmd valid\n 2: q_cmd valid\n 3: r_cmd valid\n 4: phi_cmd valid\n 5: theta_cmd valid\n 6: psi__cmd_valid\n 7: psi_rate_cmd_valid\n 8: x_cmd valid\n 9: y_cmd valid\n10: z_cmd valid\n11: lat_cmd valid\n12: lon_cmd valid\n13: alt_cmd valid\n14: u_cmd valid\n15: v_cmd valid\n16: w_cmd valid\n17: ax_cmd valid\n18: ay_cmd valid\n19: ax_cmd valid\n20: throttle_cmd valid')}; ... - } ... - } ... - { ... - 'Barometer_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'pressure', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('Pa'), ''}; ... -{'temperature', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('deg'), ''}; ... - } ... - } ... - { ... - 'Commander_In_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'sp_waypoint', 3, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'cur_waypoint', 3, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'offboard_psi_0', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('The psi value when offboard mode entered, \nwhich is used for FRAME_LOCAL_FRD')}; ... - } ... - } ... - { ... - 'Control_Out_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'actuator_cmd', 16, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... - } ... - } ... { ... 'Extended_States_Bus', ... '', ... @@ -103,277 +28,6 @@ {'Va', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('Airspeed in body frame')}; ... } ... } ... - { ... - 'FMS_Out_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), sprintf('fms output timestamp')}; ... -{'p_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('roll rate command in body frame')}; ... -{'q_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('pitch rate command in body frame')}; ... -{'r_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('yaw rate command in body frame')}; ... -{'phi_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), sprintf('roll command in body frame')}; ... -{'theta_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), sprintf('pitch command in body frame')}; ... -{'psi_rate_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), sprintf('yaw rate command in body frame')}; ... -{'u_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('velocity x command in control frame')}; ... -{'v_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('velocity y command in control frame')}; ... -{'w_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), sprintf('velocity z command in control frame')}; ... -{'ax_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s^2'), sprintf('acceleration x command in control frame')}; ... -{'ay_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s^2'), sprintf('acceleration y command in control frame')}; ... -{'az_cmd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s^2'), sprintf('acceleration z command in control frame')}; ... -{'actuator_cmd', 16, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('actuator command')}; ... -{'throttle_cmd', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('throttle command')}; ... -{'cmd_mask', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Type mask for offboard mode:\n 1: p_cmd valid\n 2: q_cmd valid\n 3: r_cmd valid\n 4: phi_cmd valid\n 5: theta_cmd valid\n 6: psi_rate_cmd_valid\n 7: u_cmd valid\n 8: v_cmd valid\n 9: w_cmd valid\n10: ax_cmd valid\n11: ay_cmd valid\n12: ax_cmd valid\n13: throttle_cmd valid')}; ... -{'status', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('enum VehicleStatus\n\nvehicle status:\n0: None\n1: Disarm\n2: Standby\n3: Arm')}; ... -{'state', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('enum VehicleState\n\nvehicle state:\n0: None\n1: Disarm\n2: Standby\n3: Offboard\n4: Mission\n5: InvalidAutoMode\n6: Hold\n7: Acro\n8: Stabilize\n9: Altitude\n10: Position\n11: InvalidAssistMode\n12: Manual\n13: InvalidManualMode\n14: InvalidArmMode\n15: Land\n16: Return\n17: Takeoff')}; ... -{'ctrl_mode', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('enum ControlMode\n\ncontrol mode:\n0: None\n1: Manual\n2: Acro\n3: Stabilize\n4: ALTCTL\n5: POSCTL')}; ... -{'mode', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('enum PilotMode\n\npilot mode:\n0: None\n1: Manual\n2: Acro\n3: Stabilize\n4: Altitude\n5: Position\n6: Mission\n7: Offboard')}; ... -{'reset', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('reset the controller')}; ... -{'wp_consume', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('consumed waypoints')}; ... -{'wp_current', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('current waypoint')}; ... -{'reserved', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('enum of PilotMode')}; ... - } ... - } ... - { ... - 'GCS_Cmd_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'mode', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'cmd_1', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Operation channel 1')}; ... -{'cmd_2', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Operation channel 2')}; ... - } ... - } ... - { ... - 'GPS_uBlox_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'iTOW', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'year', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'month', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'day', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'hour', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'min', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'sec', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'valid', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'tAcc', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'nano', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'fixType', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'flags', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'reserved1', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'numSV', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'lon', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'lat', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'height', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'hMSL', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'hAcc', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'vAcc', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'velN', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'velE', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'velD', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'gSpeed', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'heading', 1, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'sAcc', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'headingAcc', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'pDOP', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'reserved2', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... - } ... - } ... - { ... - 'IMU_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'gyr_x', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'gyr_y', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'gyr_z', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'acc_x', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'acc_y', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'acc_z', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... - } ... - } ... - { ... - 'INS_Out_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'phi', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'theta', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'psi', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'quat', 4, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('unified'), ''}; ... -{'p', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'q', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'r', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'ax', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'ay', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'az', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'vn', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'ve', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'vd', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'airspeed', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'lat', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('degree'), ''}; ... -{'lon', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('degree'), ''}; ... -{'alt', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'lat_0', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('degree'), ''}; ... -{'lon_0', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('degree'), ''}; ... -{'alt_0', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'x_R', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'y_R', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'h_R', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'h_AGL', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'flag', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'status', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... - } ... - } ... - { ... - 'MAG_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'mag_x', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('gauss'), ''}; ... -{'mag_y', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('gauss'), ''}; ... -{'mag_z', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('gauss'), ''}; ... - } ... - } ... - { ... - 'Mission_Data_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'valid_items', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'reserved', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'seq', 8, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Start from 0')}; ... -{'command', 8, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'frame', 8, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'current', 8, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'autocontinue', 8, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'mission_type', 8, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'param1', 8, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'param2', 8, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'param3', 8, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'param4', 8, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'x', 8, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'y', 8, 'int32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'z', 8, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... - } ... - } ... - { ... - 'Optical_Flow_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'vx', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'vy', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'quality', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'reserved1', 1, 'uint8', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'reserved2', 1, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... - } ... - } ... - { ... - 'Pilot_Cmd_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'stick_yaw', 1, 'single', -1, 'real', 'Sample', 'Fixed', -1, 1, '', sprintf('Stick value of yaw channel')}; ... -{'stick_throttle', 1, 'single', -1, 'real', 'Sample', 'Fixed', -1, 1, '', sprintf('Stick value of throttle channel')}; ... -{'stick_roll', 1, 'single', -1, 'real', 'Sample', 'Fixed', -1, 1, '', sprintf('Stick value of roll chanel')}; ... -{'stick_pitch', 1, 'single', -1, 'real', 'Sample', 'Fixed', -1, 1, '', sprintf('Stick value of pitch channel')}; ... -{'mode', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'cmd_1', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Operation channel 1')}; ... -{'cmd_2', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Operation channel 2')}; ... - } ... - } ... - { ... - 'Plant_States_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'phi', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'theta', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'psi', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'rot_x_B', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'rot_y_B', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'rot_z_B', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad/s'), ''}; ... -{'acc_x_O', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'acc_y_O', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'acc_z_O', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s2'), ''}; ... -{'vel_x_O', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'vel_y_O', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'vel_z_O', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m/s'), ''}; ... -{'x_R', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'y_R', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'h_R', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'lat', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'lon', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'alt', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... -{'lat_0', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'lon_0', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('rad'), ''}; ... -{'alt_0', 1, 'double', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... - } ... - } ... - { ... - 'Rangefinder_Bus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ... -{'distance', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('m'), ''}; ... - } ... - } ... - { ... - 'StatesBus', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'V_body', [3 1], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'Omega_body', [3 1], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'Euler', [3 1], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'Accel_body', [3 1], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'dOmega_body', [3 1], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'V_ned', [3 1], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'X_ned', [3 1], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... -{'LLA', [1 3], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Latitude, Longitude, Altitude')}; ... -{'DCM_be', [3 3], 'double', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ... - } ... - } ... - { ... - 'mavlink_fmt_pilot_cmd_t', ... - '', ... - '', ... - 'Auto', ... - '-1', {... -{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('timestamp in milliseconds')}; ... -{'ls_lr', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Left stick left/right')}; ... -{'ls_ud', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Left stick up/down')}; ... -{'rs_lr', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Right stick left/right')}; ... -{'rs_ud', 1, 'single', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Right stick up/down')}; ... -{'mode', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Control Mode')}; ... -{'command_1', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Pilot command 1')}; ... -{'command_2', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], '', sprintf('Pilot command 2')}; ... - } ... - } ... }'; if ~suppressObject diff --git a/bus/enum/NAV_Cmd.m b/bus/enum/NAV_Cmd.m index 597673b..38eed58 100644 --- a/bus/enum/NAV_Cmd.m +++ b/bus/enum/NAV_Cmd.m @@ -6,6 +6,7 @@ Return(20) Land(21) Takeoff(22) + SetSpeed(178) end methods (Static) diff --git a/model/FMS/Base-FMS/FMS.slx b/model/FMS/Base-FMS/FMS.slx index c2836c2..5d3092f 100644 Binary files a/model/FMS/Base-FMS/FMS.slx and b/model/FMS/Base-FMS/FMS.slx differ diff --git a/model/FMS/Base-FMS/fms_model_init.m b/model/FMS/Base-FMS/fms_model_init.m index d781770..25a802d 100644 --- a/model/FMS/Base-FMS/fms_model_init.m +++ b/model/FMS/Base-FMS/fms_model_init.m @@ -26,7 +26,7 @@ FMS_PARAM_VALUE.YAW_P = single(2.5); FMS_PARAM_VALUE.YAW_RATE_LIM = single(pi/3); FMS_PARAM_VALUE.ROLL_PITCH_LIM = single(pi/6); -FMS_PARAM_VALUE.L1 = single(10); +FMS_PARAM_VALUE.L1 = single(15); FMS_PARAM_VALUE.CRUISE_SPEED = single(5); FMS_PARAM_VALUE.CRUISE_ACC = single(5); FMS_PARAM_VALUE.TAKEOFF_H = single(1.5); diff --git a/model/FMS/FW-FMS/FMS.slx b/model/FMS/FW-FMS/FMS.slx index f588b65..a3daff6 100644 Binary files a/model/FMS/FW-FMS/FMS.slx and b/model/FMS/FW-FMS/FMS.slx differ diff --git a/simulation/MILSIM.slx b/simulation/MILSIM.slx index 018d079..3234046 100644 Binary files a/simulation/MILSIM.slx and b/simulation/MILSIM.slx differ