Guidance SDK文档

目录

Guidance SDK综述... 1

Guidance SDK文件(document)... 1

1、     快速启动... 1

1.1启动... 1

1.1.1文件... 1

1.1.2结构... 2

1.1.3用法... 2

1.2 运行例程... 3

1.2.1用CMake编译USB实例... 3

1.2.2 Linux系统下运行USB例程... 3

1.2.3 Windows下运行USB例程... 4

1.2.4 Linux下运行UART例程... 6

1.2.5 Windows下运行UART例程... 7

2、介绍(Guidance SDK reference)... 8

2.1 背景... 8

2.2 简介... 8

2.3 数据结构... 12

2.4 API. 19

2.4.1 概述... 19

2.4.2 方法... 20

3、Guidance SDK开发者指南... 28

3.1 SDK包下载... 28

3.2 环境配置... 28

3.2.1 Windows. 28

3.2.2 Linux. 32

3.3  常见错误... 34

3.3.1 连接错误... 34

3.3.2 编译错误... 35

3.3.3 数据传输错误... 35

4、创建一个视觉跟踪工程... 36

4.2  Windows. 37

4.3  Linux. 51

5、FAQ.. 54

 

 

 

Guidance SDK综述

概述:通过授予对Guidance的完全控制权,Guidance SDK使您能够轻松地开发各种基于视觉的应用程序,您可以轻松地从所有主流系统的指南中访问所有输出数据。

支持平台:Windows、Linux、Embeded systems

特征:

1、机身状态:输出机身的三维速度与位置(世界坐标系?)、输出到最近障碍物的距离(图像和超声波数据)

2、传感器数据:输出机身IMU数据(三轴加速度计和陀螺仪(机体坐标系))、输出到最近障碍物的距离

3、图像:输出固定分辨率为3x240的8或16位灰度图像、

4、相机配置:有权获取双目相机标定参数、有权访问和修改相机曝光模式和参数

硬件接口:

  1. USB:以高数据速率传输所有数据并精确控制相机参数
  2. UART:传输除图像以外的所有数据,适用于所有具有串行通信的系统

Guidance SDK文件(document)

  1. 快速启动

1.1启动

    官方Guidance SDK包,用于通过USB和UART访问指南的丰富类别的输出数据,并根据需要配置Guidance。

1.1.1文件

    A、开发者指南

    B、运行例程

    C、建立视觉跟踪项目

    D、Guidance SDK参考

1.1.2结构

    A、demo:使用Guidance SDK的演示应用程序

B、doc:文件

C、examples:USB和UART的例程

D、include:Guidance SDK的头文件

E、lib:Windows的库文件

      2010/X64:使用Visual Studio 2010 64位生成

      2010/X86:使用Visual Studio 2010 32位生成

      2013/X64:使用Visual Studio 2013 64位生成

      2013/X86:使用Visual Studio 2013 32位生成

F、so:Linux的库文件

      X64:用g++在64位Linux系统上构建

      X86:用g++在32位Linux系统上构建

      XU3:用g++在XU3系统上构建

        arm:在嵌入式ARM系统上,用最新的arm-linux-gnueabi-g++构建,通过下面语句安装交叉编译工具链:sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

还要注意,为了使ROS用户能够快速下载,我们有一个单独的ROS报告,其规模要小得多:Guidance-SDK-ROS.

1.1.3用法

A、Windows

    USB和UART的例子在examples/usb_example、examples/uart_example,包括待编译的Makefile文件。请记住将相应的DjiGuang.dLL文件复制到输出二进制位置所在的相同目录。

B、Linux

    USB和UART的例子在examples/usb_example、examples/uart_example,包括待编译的Makefile文件。请记住将相应的DjiGuang.dLL文件复制到输出二进制位置所在的相同目录。

请注意,Linux中读写USB端口需要root权限,为了解决每次运行SDK应用程序时键入sudo的麻烦,建议将一个规则添加到/etc/udev/rules.d目录中,这可以在doc/51-guidance.rules中找到。或从终端输入以下行:

sudo sh -c 'echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"fff0\", ATTR{idProduct}==\"d009\", MODE=\"0666\"" > /etc/udev/rules.d/51-guidance.rules'

1.2 运行例程

    Guidance SDK提供了从Guidance系统获得数据的例子。本节将指导您如何执行这些示例。我们使用OpenCV来查看从Guidance传输的图像,因此建议在系统上安装OpenCV。但是,如果没有OpenCV,也可以获得除图像以外的所有数据。

    我们提供Linux和Windows系统的CMAKLIST.TXT,它自动检测是否安装了OpenCV。

1.2.1用CMake编译USB实例

    注:CMake是必需的。在Windows上,也需要VisualStudio(2010或2013)。

    A、cd Guidance-SDK\examples\usb_example\DJI_guidance_example

B、mkdir build

C、cd build

D、cmake ..

E、build:

   a、Linux系统:make

   b、Windows系统:您将看到生成一个解决方案文件。打开它并建立项目dji_guidance_usb

1.2.2 Linux系统下运行USB例程

A、设置环境

       Guidance SDK使用libusb-1.0.9库从Guidance系统读取数据。请参考 http://www.libusb.org/编译并安装源代码的LUBSB-1.0.9库。

B、复制相关文件

     提供Makefile且已测试过。 用户无需更改任何内容即可运行示例代码。要在自己的项目中使用Guidance,用户可以按照以下说明操作:

  1. 复制libDJI_guidance.so到自己项目的库文件路径
  2. 复制DJI_guidance.h到头文件路径
  3. 在项目的Makefile中添加库,如下所示:

LDFLAGS = -Wl,-rpath,./ -lpthread -lrt -L./ -L/usr/local/lib/ -l **DJI\_guidance** -lusb-1.0

C、编译例程

    进入项目目录并输入:Make -f Makefile_noOpenCV

注意:这里我们假设您没有安装OpenCV并使用Makefile_noOpenCV。 您可以根据自己的情况在make期间指定makefile。 例如,如果安装了OpenCV,请使用其他makefile:make –f Makefile

D、通过USB连接Guidance并运行

     如果尚未按照开发人员指南中的说明将51-guidance.rules文件添加到/etc/udev/rules.d/目录,则需要root权限才能运行此示例。

     sudo ./guidance_example

       运行结果如下所示:

   https://devcn.djicdn.com/images/run-example/Guidance_SDK_API9567-5b28084290.png

1.2.3 Windows下运行USB例程

A、配置环境

     Guidance SDK使用libusb库从Guidance系统读取数据。 请确保正确安装Guidance Assistant软件,其中包括用于指导的DJI USB驱动程序。

B、安装Visual studio

      提供并测试了不同版本的Visual Studio的解决方案。 用户无需更改任何内容即可运行示例代码。

要在自己的项目中使用Guidance,建议使用examples \ usb_example文件夹中提供的属性表文件。 用户只需要更改属性表文件中的头文件和库文件的目录。

或者,用户可以直接复制文件并按如下方式配置Visual Studio:

  1. 复制DJI_guidance.dll 、DJI_guidance.lib到自己项目的库文件路径
  2. 复制DJI_guidance.h到头文件路径
  3. 将DJI_guidance.lib添加到Visual Studio项目的其他依赖项中

https://devcn.djicdn.com/images/run-example/Guidance_SDK_API11350-425ae307d4.png

C、编译

    使用Microsoft Visual Studio编译示例项目。

如果安装了OpenCV,还可以通过在源文件main.cpp中或在Visual Studio的预处理设置中定义HAVE_OPENCV来将Visual Studio配置为使用OpenCV。

D、连接Guidance系统并进行测试

结果如下所示

https://devcn.djicdn.com/images/run-example/Guidance_SDK_API11483-6c519eb0fd.png

 

1.2.4 Linux下运行UART例程

A、订阅UART数据

   参考2.1.2激活UART

B、编译

    进入uart_example目录并make:

https://devcn.djicdn.com/images/run-example/Guidance_SDK_API11655-b44182f502.png

C、连接Guidance系统并进行测试

https://devcn.djicdn.com/images/run-example/Guidance_SDK_API11699-8aaafa7cec.png

1.2.5 Windows下运行UART例程

A、订阅UART数据

   参考2.1.2激活UART

B、编译

       使用VS编译

  1. 连接Guidance系统并测试

https://devcn.djicdn.com/images/run-example/Guidance_SDK_API11973-3b0c95e0f5.png

 

2、介绍(Guidance SDK reference)

2.1 背景

此文档提供了关于SDK的结构和API函数的详细解释。我们假设你有:

1、一个Guidance系统,

2、一台安装了OpenCV的计算机

并且你:

1、熟悉Linux编程,

2、或者熟悉Windows编程和Microsoft Visual Studio使用。

2.2 简介

本节介绍指导SDK的结构。该SDK分为三个层次:

https://devcn.djicdn.com/images/guidance-sdk-api/Guidance_SDK_API3987-bff5c67626.png

应用: 该层处理由HAL层传来的数据,由开发者编写。

HAL: 硬件抽象层。该层打包/解析从驱动层传来的数据,由示例代码实现(串口)SDK库(用于USB)实现,例如libDJI_guidance.so。

驱动: 该层通过USB或者串口从Guidance接收数据,由操作系统或第三方库(如_libusb_)实现。

 

接口:

Guidance SDK支持两种通信协议:USB和串口。

1. USB

支持的数据类型包括速度数据,障碍物距离数据,IMU数据,超声波数据,灰度图像和深度图像。有两种方法可以通过USB订阅数据。

I、Guidance Assist软件

用户可以使用Guidance Assist软件中的“DIY-> API - > USB”选项卡来订阅数据。

A、使用USB线连接Guidance和PC,将Guidance上电

B、选择“启用”复选框

C、根据您的需求选择数据

注: 可用带宽是受制于选择的图像数据和输出频率。订阅图像数据和输出频率的选择将被保存在Guidance系统上,并在Guidance下一次启动时生效。

https://devcn.djicdn.com/images/guidance-sdk-api/Guidance_SDK_API5146-5d855bebcd.png

II、Guidance API

用户可以通过Guidance API订阅数据,这些API函数的名字都以"select"开头。

注: 如果用户通过Guidance API函数来订阅图像数据和输出频率,它只会在Guidance上电期间临时生效,Guidance断电后将恢复到Guidance Assist设置的状态。

2、串口

串口的输出数据类型包括速度数据,障碍物距离数据,IMU数据和超声波数据。由于带宽限制,图像数据不通过UART输出。

注: Guidance串口目前只支持115200波特率。

A、订阅数据

您只能使用Guidance Assist软件订阅UART数据。从“DIY-> API - > UART”页面启用串口。与USB相同,该配置将被保存在Guidance系统上,除非你在“UART”选项卡中取消选择“启用”选项。

https://devcn.djicdn.com/images/guidance-sdk-api/Guidance_SDK_API6086-4a7f7946f2.png

B、协议说明

协议帧格式:

SOF       LEN       VER       RES       SEQ CRC16  DATA    CRC32

协议帧解释:

名称

字节索引

大小(位)

说明

SOF

0

8

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分类器引导是指使用用户提供的反馈来调整和优化机器学习算法中的分类器。在训练一个分类器的过程中,我们往往需要大量的标记数据来训练,但有时我们可能无法获得足够的可靠标记数据。而分类器引导可以通过与用户的交互来解决这个问题。 分类器引导的基本思想是,通过与用户进行交互,使用户为分类器提供一些对样本的标记或者反馈。比如,当一个未标记的样本被分类器所预测时,用户可以告诉分类器这个预测结果是否正确,或者提供正确的标记。通过不断与用户的交互,分类器可以根据用户的反馈来优化自己的分类能力。 分类器引导可以应用在许多领域,比如文本分类、图像识别等。在文本分类中,我们可以使用用户的反馈来调整分类器对某些特定文本的分类结果。比如,在情感分析中,可以请用户告诉分类器某个句子的情感是积极、消极还是中性,从而让分类器对这类句子有更好的理解和判断。 在图像识别中,我们可以使用用户的反馈来指导分类器对某些图像的分类结果。当分类器对某个图像的分类结果不确定时,可以请用户告诉分类器正确的分类标签,从而帮助分类器学习更准确的分类规则。 总之,分类器引导是一种利用用户反馈来指导和优化分类器的方法。通过与用户的交互,分类器可以不断根据用户的反馈调整自己的分类能力,从而使其在没有足够标记数据的情况下也能够取得较好的分类效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值