感谢guoming0000的博客和相关资源
http://blog.csdn.net/guoming0000/article/details/7075292
对于刚开是接触ARDrone开发的朋友建议看一下,本人刚刚接触AR,适逢实验室新购进的AR,研究了一番……
在下就说一些关于自己跑SDK遇到的一些问题和心得吧。
本人测试的是官方的 SDK_1.8 ,不可理喻的存在很多Bug,可用的是本文开头引用的博客中提到的源文件,正确配置后正常操控AR。
必须要有的库:(引自官方开发文档指导)
1.关于 项目解决方案.(sln) 文件的问题,官方的英语guide直接打开 your_SDK\Examples\Win32\VCProjects\ARDrone\ARDrone.sln但是对于Visual Studio 版本是有要求的,如果不对是不会打开的,可以用以下方法。
用.txt方式打开ARDrone.sln,更改第二行代码到本地的# Visual Studio版本,保存在双击打开,Visual会提示你是否更新,而后你就得到适合本地Visual版本的项目了。
2.进行过上面步骤后,你可能回去尝试打卡项目内的.cpp文件或者.h文件,但是会提示不能打开,这是因为并不能按照默认的路径找到相关文件,需要在环境里更改默认的路径配置,配置方法请看本文开头处的连接博客。而后便可以打开各个文件了。
3.宏 选项在ARDroneLib中的vp_os_signal_dep.h文件中,有如下两个关于选择编译的宏定义
#define USE_WINDOWS_CONDITION_VARIABLES 是使用windows SDK 同步线程的,即你的系统要是Vista以上的。
#defineUSE_PTHREAD_FOR_WIN32 是应用在XP或者更在版本的……(几率不大)
这两个宏只能存在一个,即只能编译一个相关。所以基本情况(WIN7、Vista)要注释掉第二个。
以上步骤,加上开头博客的连接中的步骤都无误的话,就能生成可执行文件了。
4.但是关于控制端即PC,和受控端AR。的IP要有以下注意事项。
AR的IP默认是192.168.1.1,特殊情况比如多个AR共用一个WIFI网段(几率不大),AR就会生成不相同的IP。而在环境中的win32_custom.h文件中涉及AR和PC端的IP地址。连接的话,打卡笔记本无线网设置自己的IP 192.168.1.2(要与 win32_custom.h 中的IP相对应),打开AR(直到四角的LED变色),连接ardrone_XXXXX,在控制台下ping 192.168.1.1如果正常ping通,说明连接AR成功,而后运生成的.exe文件,按控制台提示和控制说明进行控制。
常见问题:
Q:.exe文件运行了,可是现实“Connection timeout”
A:连接速度慢,如果还是不能连接,ping 一下试试,如果还是不行,重开应用程序
Q:打不开任何源文件,.cpp或者.h都打不开
A:确保你的ARDroneLibDir 和Win32ClientDir 宏已经在属性管理器中设置好了
Q:编译时候出现“windows.h:no such file or directory”
A:确保你的Windows SDK 正确安装,
Q:编译时候出现“Cannot open input file ‘dxguid.lib’ ”
A:确保你的DirectX SDK 安装正确。
Q:编译时候提示“Error spawning mt.exe ”
A:Windows SDK安装错误,重新安装。
Q:编译时# include <XXX.h>出错,导致随后程序很多相关错误。
A:没能够正确关联外部的依赖项,最简单方法是把缺少的<XXX.h>直接添加到,VS 的lib文件夹中,但对于<XXXX.c>,添加到VS的source文件夹中。