Browse Source

mavlink: add gimbal mode to talk to gimbal device

release/1.12
Julian Oes 4 years ago committed by Daniel Agar
parent
commit
422bac4bfd
  1. 2
      ROMFS/px4fmu_common/init.d-posix/rcS
  2. 11
      src/modules/mavlink/mavlink_main.cpp
  3. 5
      src/modules/mavlink/mavlink_main.h
  4. 2
      src/modules/mavlink/module.yaml

2
ROMFS/px4fmu_common/init.d-posix/rcS

@ -261,7 +261,7 @@ else
mavlink start -x -u $udp_onboard_payload_port_local -r 4000 -f -m onboard -o $udp_onboard_payload_port_remote mavlink start -x -u $udp_onboard_payload_port_local -r 4000 -f -m onboard -o $udp_onboard_payload_port_remote
# Onboard link to gimbal # Onboard link to gimbal
mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -f -m onboard mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -f -m gimbal
fi fi
# execute autostart post script if any # execute autostart post script if any

11
src/modules/mavlink/mavlink_main.cpp

@ -1680,6 +1680,12 @@ Mavlink::configure_streams_to_default(const char *configure_single_stream)
break; break;
case MAVLINK_MODE_GIMBAL:
// Note: streams requiring low latency come first
configure_stream_local("AUTOPILOT_STATE_FOR_GIMBAL_DEVICE", 20.0f);
configure_stream_local("GIMBAL_DEVICE_SET_ATTITUDE", 20.0f);
break;
case MAVLINK_MODE_EXTVISION: case MAVLINK_MODE_EXTVISION:
configure_stream_local("HIGHRES_IMU", unlimited_rate); // for VIO configure_stream_local("HIGHRES_IMU", unlimited_rate); // for VIO
@ -2044,6 +2050,9 @@ Mavlink::task_main(int argc, char *argv[])
} else if (strcmp(myoptarg, "extvisionmin") == 0) { } else if (strcmp(myoptarg, "extvisionmin") == 0) {
_mode = MAVLINK_MODE_EXTVISIONMIN; _mode = MAVLINK_MODE_EXTVISIONMIN;
} else if (strcmp(myoptarg, "gimbal") == 0) {
_mode = MAVLINK_MODE_GIMBAL;
} else { } else {
PX4_ERR("invalid mode"); PX4_ERR("invalid mode");
err_flag = true; err_flag = true;
@ -3074,7 +3083,7 @@ $ mavlink stream -u 14556 -s HIGHRES_IMU -r 50
PRINT_MODULE_USAGE_PARAM_STRING('t', "127.0.0.1", nullptr, PRINT_MODULE_USAGE_PARAM_STRING('t', "127.0.0.1", nullptr,
"Partner IP (broadcasting can be enabled via MAV_BROADCAST param)", true); "Partner IP (broadcasting can be enabled via MAV_BROADCAST param)", true);
#endif #endif
PRINT_MODULE_USAGE_PARAM_STRING('m', "normal", "custom|camera|onboard|osd|magic|config|iridium|minimal|extvsision", PRINT_MODULE_USAGE_PARAM_STRING('m', "normal", "custom|camera|onboard|osd|magic|config|iridium|minimal|extvision|extvisionmin|gimbal",
"Mode: sets default streams and rates", true); "Mode: sets default streams and rates", true);
PRINT_MODULE_USAGE_PARAM_STRING('n', nullptr, "<interface_name>", "wifi/ethernet interface name", true); PRINT_MODULE_USAGE_PARAM_STRING('n', nullptr, "<interface_name>", "wifi/ethernet interface name", true);
#if defined(CONFIG_NET_IGMP) && defined(CONFIG_NET_ROUTE) #if defined(CONFIG_NET_IGMP) && defined(CONFIG_NET_ROUTE)

5
src/modules/mavlink/mavlink_main.h

@ -194,7 +194,7 @@ public:
MAVLINK_MODE_MINIMAL, MAVLINK_MODE_MINIMAL,
MAVLINK_MODE_EXTVISION, MAVLINK_MODE_EXTVISION,
MAVLINK_MODE_EXTVISIONMIN, MAVLINK_MODE_EXTVISIONMIN,
MAVLINK_MODE_GIMBAL,
MAVLINK_MODE_COUNT MAVLINK_MODE_COUNT
}; };
@ -243,6 +243,9 @@ public:
case MAVLINK_MODE_EXTVISIONMIN: case MAVLINK_MODE_EXTVISIONMIN:
return "ExtVisionMin"; return "ExtVisionMin";
case MAVLINK_MODE_GIMBAL:
return "Gimbal";
default: default:
return "Unknown"; return "Unknown";
} }

2
src/modules/mavlink/module.yaml

@ -44,6 +44,8 @@ parameters:
#6: Iridium # as the user does not need to configure this, hide it from the UI #6: Iridium # as the user does not need to configure this, hide it from the UI
7: Minimal 7: Minimal
8: External Vision 8: External Vision
#9: External Vision Minimal # hidden
10: Gimbal
reboot_required: true reboot_required: true
num_instances: *max_num_config_instances num_instances: *max_num_config_instances
default: [0, 2, 0] default: [0, 2, 0]

Loading…
Cancel
Save