mavros的常用服务介绍

喜你入骨 提交于 2020-01-30 13:33:27

在mavros中,最常用的服务就两个,一个是解锁,还有一个就是模式切换。当然还有其他的服务,比如通过mavros修改航点信息,但是不常用,所以下面只介绍解锁和模式切换,这在前面的博客offboard源码解析里面已经介绍了。


这两种服务的用法参考之前的博客,这里不再赘述,这里补充一下模式切换服务里面可以切换哪些模式,除了offboard模式外还有那些模式。

这里需要用到mavros的源码:位置:

/home/zouxu/mavros_ws/src/mavros/mavros/src/lib

当然,这个位置的前提是你在安装mavros时用到了源码安装方式,在电脑上存在mavros的工作空间mavros_ws,如果你没有这个,可以在github上下载源码也还是可以的。

我们打开目录下的:uas_stringify.cpp

它里面有针对apm固件的模式,我们只看px4的固件部分:

//! PX4 custom mode -> string
static const cmode_map px4_cmode_map{{
	{ px4::define_mode(px4::custom_mode::MAIN_MODE_MANUAL),           "MANUAL" },
	{ px4::define_mode(px4::custom_mode::MAIN_MODE_ACRO),             "ACRO" },
	{ px4::define_mode(px4::custom_mode::MAIN_MODE_ALTCTL),           "ALTCTL" },
	{ px4::define_mode(px4::custom_mode::MAIN_MODE_POSCTL),           "POSCTL" },
	{ px4::define_mode(px4::custom_mode::MAIN_MODE_OFFBOARD),         "OFFBOARD" },
	{ px4::define_mode(px4::custom_mode::MAIN_MODE_STABILIZED),       "STABILIZED" },
	{ px4::define_mode(px4::custom_mode::MAIN_MODE_RATTITUDE),        "RATTITUDE" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_MISSION), "AUTO.MISSION" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_LOITER),  "AUTO.LOITER" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_RTL),     "AUTO.RTL" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_LAND),    "AUTO.LAND" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_RTGS),    "AUTO.RTGS" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_READY),   "AUTO.READY" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_TAKEOFF), "AUTO.TAKEOFF" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_FOLLOW_TARGET), "AUTO.FOLLOW_TARGET" },
	{ px4::define_mode_auto(px4::custom_mode::SUB_MODE_AUTO_PRECLAND), "AUTO.PRECLAND" },
}};

后面所列出来的就是可以切换的模式。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!