首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ar.drone中传递用于取消AT命令的参数。

在ar.drone中传递用于取消AT命令的参数。
EN

Stack Overflow用户
提问于 2014-01-22 05:45:28
回答 2查看 1.3K关注 0票数 1

我正在编写一个使用C++程序来控制无人机的程序。我在用AT指令来控制无人机。我能够通过向端口5554发送一个小数据包来接收导航数据。但是这个程序被无人机起飞的功能卡住了:

sprintfAT*REF="%u,x",序列号。

现在我的问题是,x的值应该是多少?只有第八位必须设置为一个起飞。因此,在这种情况下,它的值应该是11540100。但是我发现了很多例子,其中它的值是290718208。我试着用这两种值把无人机起飞,但无人驾驶飞机没有起飞。应该使用什么价值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-24 10:20:02

来自arDrone api论坛的MAPGPS:https://projects.ardrone.org/boards/1/topics/show/852

问候: AT*CONFIG=1,\"control:altitude_max\",\“2000” Basic控件 起飞: AT*REF=101,290718208 着陆: AT*REF=102,290717696 悬停: AT*PCMD=201,1,0,0,0,0

当然,第一个参数(101,102,等等)应该用正确的序列号替换。

票数 1
EN

Stack Overflow用户

发布于 2015-04-26 18:36:35

来自AR.Drone开发人员指南关于AT*REF的章节

发送这个命令来控制无人机的基本行为。在SDK版本1.5中,在控制位字段中只使用位8和9.第18、20、22、24和28位应设置为1,其他位应设置为0。

这意味着如果位8和9为零,则仍在发送(使用Python):

代码语言:javascript
复制
>>> (1 << 18) | (1 << 20) | (1 << 22) | (1 << 24) | (1 << 28)
290717696

如果您希望无人机起飞,则也将bit 9(而不是像您在问题中所说的第8位)设置为1,然后得到:

代码语言:javascript
复制
>>> (1 << 18) | (1 << 20) | (1 << 22) | (1 << 24) | (1 << 28) | (1 << 9)
290718208

这就是数字290718208的来源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21275137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档