在Manifold上通过ROS系统控制DJI无人机的Onboard SDK

  最主要的文件是client.cpp,在该节点中完成具体功能,该文件所在目录为:

  ROS编译方式如下:

  编译过程中出现了函数重名问题,解决方法的链接如下,要注意定义函数名和变量名的时候不能使用关键字distance

  http://www.cocoachina.com/bbs/read.php?tid=170655

  代码重构后,将client.cpp文件分成了许多库文件,方便进行处理,那么如何修改CMake文件让它能编译通过呢,方法如下:

  1. 所有的.h文件要存放在/home/sdk/src/dji_sdk/include/目录下,include的时候直接include改目录下的目录地址,例如在该目录下新建文件夹dronecode_lib,文件夹中有dada.h头文件,则在client.cpp文件前面加上该指令:

  2. 对应的dada.cpp文件应该放在与client.cpp相同的文件路径下,即/home/sdk/src/dji_sdk_demo/目录下,我在该目录下新建了一个文件夹名为drone_lib,在该文件夹里面放了dada.cpp,即dad.cpp的地址为:

  3. 添加好之后,需要修改/home/sdk/src/dji_sdk_demo/目录下的CMakeList.txt文件,在该文件中的add_executable添加cpp文件的相对地址,比如原来没有dada.cpp的时候为:

  改为:

  然后正常编译即可,所有添加库文件都用这种方式进行