DexCapSDK/
├── include/ # 对外头文件(按设备模块划分)
│ ├── configuration.h # 数采手套和外骨骼设备的配置读取
│ ├── exoskeleton.h # 数采手套和外骨骼集成控制接口
│ ├── typedef.h # DexCap SDK中所有数据类型的声明
├── libs/ # 动态库文件所在目录
│ ├── linux/ # Linux平台动态库文件的目录
│ | ├── libDexCap.so # DexCap SDK的动态库文件
│ | ├── libserial.so # 依赖库libserial的动态库文件
│ | ├── libusb-1.0.so # 依赖库libusb的动态库文件
│ | ├── libyaml.so # 依赖库libyaml的动态库文件
│ ├── windows/ # Windows平台动态库文件的目录
│ | ├── DexCap.dll # DexCap SDK的.dll文件
│ | ├── DexCap.lib # DexCap SDK的.lib文件
├── conf/ # 配置文件及脚本
│ | ├── config.yaml # DexCap手套及外骨骼设备的SDK配置文件
│ | ├── env_setup.sh # 环境配置文件,自动搜索系统中的串口设备并授予权限
├── examples/ # 动态库文件所在目录
│ ├── example.cpp # 示例代码
│ ├── CMakeLists.txt # 构建示例程序的cmake工程文件
文件 | 作用 | 依赖 |
---|---|---|
configuration.h |
用于获取设备配置信息的接口声明 | 依赖yaml库 |
exoskeleton.h |
DexCap SDK的核心API头文件, 数采手套和外骨骼设备的数据读取和控制接口均在该头文件中声明 | |
libDexCap.so |
DexCap SDK的Linux平台的动态库文件 | 依赖libserial等三方库 |
DexCap.dll , DexCap.lib |
DexCap SDK的Windows平台的动态库文件 | 依赖Windows SDK |
config.yaml |
数采设备配置信息,设备的串口名,波特率,数采串口适配器类型(USB有线或2.4G无线),等 | |
env_setup.sh |
Linux平台上的环境设置脚本,用于扫描系统中的USB串口设备并授予当前用户权限 | 需要sudo权限 |
example.cpp |
示例代码,展示DexCap SDK的基本用法 | DexCapSDK头文件和动态库 |
声明位于头文件configuration.h中,用于读取config.yaml文件中数采手套和外骨骼的配置信息,以及DexCap遥操系统服务端的网络配置信息。该类不支持公开显示构造,只能通过静态成员函数Load()来构造该类对象的shared_ptr.
传入一个yaml配置文件的完整路径,用于构造一个该类对象,并返回该对象的智能指针std::shared_ptr.
获取yaml配置文件中的DexCap遥操服务器的IP地址.
获取yaml配置文件中的DexCap遥操服务器的端口号.
获取yaml配置文件中的DexCap遥操服务器的通讯协议类型,返回值为NetProtocolType::TCP或NetProtocolType::UDP.
获取yaml配置文件中配置的左手数采手套设备的USB串口名称,该串口名称应由操作系统自动分配。在Linux系统上,通常为/dev/ttyUSB*. 在Windows系统上,通常为COM*.
获取yaml配置文件中配置的右手数采手套设备的USB串口名称.
获取yaml配置文件中配置的上半身外骨骼设备的USB串口名称. 在Linux系统上,通常为/dev/ttyACM*. 在Windows系统上,通常为COM*.
获取yaml配置文件中配置的连接左手数采手套设备的USB串口适配器类型,返回值可能为AdapterType::WIREDUSB或者AdapterType::WIRELESS,分别代表USB直连和2.4G无线接受器.
获取yaml配置文件中配置的连接右手数采手套设备的USB串口适配器类型.
获取yaml配置文件中配置的连接上身外骨骼设备的USB串口适配器类型.
获取yaml配置文件中配置的左手数采手套的设备ID,该ID出厂默认为1,使用该SDK在单套DexCap数采外骨骼套装上执行数采任务时,可不区分左右手手套及外骨骼的设备ID.
获取yaml配置文件中配置的右手数采手套的设备ID,该ID出厂默认为1.
获取yaml配置文件中配置的上身外骨骼的设备ID,该ID出厂默认为1.
获取yaml配置文件中关于是否在左手数采手套上开启调试的设置. 当调试开启时,数采手套上各关节的角度数据将打印在标准输出上.
获取yaml配置文件中关于是否在右手数采手套上开启调试的设置. 当调试开启时,数采手套上各关节的角度数据将打印在标准输出上.
获取yaml配置文件中关于是否在上身外骨骼设备上开启调试的设置. 当调试开启时,外骨骼上各关节的角度数据将打印在标准输出上.
获取yaml配置文件中关于是否连接DexCap遥操系统网络服务器的设置,一旦启用该设置,使用DexCap SDK启动的应用程序将自动使用配置文件中的配置信息启动与遥操系统服务器端的网络连接.
获取yaml配置文件中关于是启用上身外骨骼数采设备的设置,使用该SDK的应用程序可以根据该设置项主动选择是否连接外骨骼数采设备.
获取yaml配置文件中关于是启用左手数采手套设备的设置,使用该SDK的应用程序可以根据该设置项主动选择是否连接左手数采手套设备.
获取yaml配置文件中关于是启用右手数采手套设备的设置,使用该SDK的应用程序可以根据该设置项主动选择是否连接右手数采手套设备.
获取yaml配置文件中上身外骨骼数采设备的波特率设置,使用该SDK的应用程序使用该波特率连接上身外骨骼数采设备并与之通讯.
获取yaml配置文件中左手数采手套设备的波特率设置,使用该SDK的应用程序使用该波特率连接左手数采手套设备并与之通讯.
获取yaml配置文件中右手数采手套设备的波特率设置,使用该SDK的应用程序使用该波特率连接右手数采手套设备并与之通讯.
获取yaml配置文件中上身外骨骼数采设备的数据采样率,单位Hz. 使用该采样率连接并初始化上身外骨骼数采设备后,设备将以该采样率向应用程序反馈实时数据.
获取yaml配置文件中左手数采手套设备的数据采样率设置,单位Hz.
获取yaml配置文件中右手数采手套设备的数据采样率,单位Hz.
声明位于头文件exoskeleton.h中,提供了DexCap数采系统的所有核心功能,如连接和初始化手套或外骨骼数采设备,对数采设备进行初时位姿标定,连接DexCap遥操系统网络服务器,读取或更改设备ID,启动实时数采任务,向DexCap遥操系统发送实时关节位姿数据等.
该类不支持默认构造函数,构造该类的对象时,必须说明使用的何种网络通讯方式(TCP或UDP)与DexCap遥操系统的网络服务器进行通讯,以及与设备进行通讯的默认波特率.
构造一个ExoSkeleton类的实例,默认使用921600的波特率与手套和外骨骼设备进行连接并初始化设备. 参数protoType指明使用哪种网络通讯方式与DexCap遥操系统的网络服务器进行通讯. 设备连接并初始化完成后,可以通过SwitchBaudRate接口对单个设备的波特率进行更改.
初始化网络设置并与发起与DexCap遥操系统服务器的连接. 成功返回true, 失败返回false.
bool InitBody(AdapterType adapterType, const char * portName, uint8_t deviceId, uint32_t timeout=3000)
使用给定的adapterType(值为WIREDUSB或WIRELESS),串口号portName, 以及deviceId, 与上半身外骨骼数采设备发起连接,并将其初始化. 若给定的deviceId与设备的真实ID不匹配,将会导致连接失败. 成功返回true, 失败返回false. 若超过timeout指定的超时时间,即便设备已成功连接,但初始化未完成,同样会返回false.
bool InitLeftHand(AdapterType adapterType, const char * portName, uint8_t deviceId, uint32_t timeout=3000)
使用给定的adapterType(值为WIREDUSB或WIRELESS),串口号portName, 以及deviceId, 与左手数采手套设备发起连接,并将其初始化. 若给定的deviceId与设备的真实ID不匹配,将会导致连接失败. 成功返回true, 失败返回false. 若超过timeout指定的超时时间,即便设备已成功连接,但初始化未完成,同样会返回false.
bool InitRightHand(AdapterType adapterType, const char * portName, uint8_t deviceId, uint32_t timeout=3000)
使用给定的adapterType(值为WIREDUSB或WIRELESS),串口号portName, 以及deviceId, 与右手数采手套设备发起连接,并将其初始化. 若给定的deviceId与设备的真实ID不匹配,将会导致连接失败. 成功返回true, 失败返回false. 若超过timeout指定的超时时间,即便设备已成功连接,但初始化未完成,同样会返回false.
获取当前ExoSkeleton实例中已成功连接的左手数采手套的设备ID.
获取当前ExoSkeleton实例中已成功连接的右手数采手套的设备ID.
获取当前ExoSkeleton实例中已成功连接的上半身外骨骼的设备ID.
为当前ExoSkeleton实例中指定的单体设备设置新的设备ID,指定的设备由参数apptus说明,该参数取值可为ExoApparatus::LGlove, ExoApparatus::RGlove,以及ExoApparatus::UpBody,分别代表左手手套,右手手套,以及上身外骨骼. 参数newDeviceId为需要写入的新设备ID. 若指定的设备未连接,则该调用将直接返回,设置不生效.
为当前ExoSkeleton实例中的左手数采手套设置日志级别. 当前仅支持DEBUG和非DEBUG两个级别。当级别设置为DEBUG时,设备上的关节位姿角度数据将打印在标准输出上.
为当前ExoSkeleton实例中的右手数采手套设置日志级别. 当前仅支持DEBUG和非DEBUG两个级别。当级别设置为DEBUG时,设备上的关节位姿角度数据将打印在标准输出上.
为当前ExoSkeleton实例中的上身外骨骼设置日志级别. 当前仅支持DEBUG和非DEBUG两个级别。当级别设置为DEBUG时,设备上的关节位姿角度数据将打印在标准输出上.
为当前ExoSkeleton实例中所有设备设置是否开启自动数据反馈,以及设置采样间隔(单位毫秒). 参数enable指明是否开启. 若某个单体设备未连接,则设置不生效.
为当前ExoSkeleton实例中指定的单体设备设置是否开启自动数据反馈,以及设置采样间隔(单位毫秒). 参数enable指明是否开启. 若指定的设备未连接,则设置不生效.
在当前ExoSkeleton实例中的所有设备上启动数采任务. 任务启动后,开启了自动数据反馈的设备将按照设置的采样间隔,不间断的上报各关节的角度数据. 如果与DexCap遥操系统的网络服务器已建立连接,则上报的角度数据将会实时发送给服务器.
暂停当前ExoSkeleton实例中的所有设备的数采任务.
暂停当前ExoSkeleton实例中指定的单体设备的数采任务.
恢复当前ExoSkeleton实例中的所有设备的数采任务.
恢复当前ExoSkeleton实例中指定的单体设备的数采任务.
停止当前ExoSkeleton实例中的所有设备的数采任务,并关闭设备连接.
停止当前ExoSkeleton实例中指定的单体的数采任务,并关闭该设备的连接.
重新连接当前ExoSkeleton实例被关闭的单体设备.
将当前ExoSkeleton实例中的指定的单体设备恢复出厂设置.
对当前ExoSkeleton实例中的指定的单体设备执行单次采集,收到指令的设备将反馈当前时刻所有关节的角度传感器读数.
获取当前ExoSkeleton实例中的指定的单体设备的电池剩余电量(百分比). 仅数采手套支持该指令,对外骨骼执行该指令始终返回0.
对当前ExoSkeleton实例中的指定的数采手套设备发送震动指令,收到指令的手套设备按照vibeData中对应位的数值触发指尖的震动电机进行震动,vibeData长度要求为5,分别代表5根手指.