环境配置和依赖工具 - Ligcox/BTP_DM GitHub Wiki

概述

python的安装可以参考文档:Python Setup and Usage

BTPDM 基于Python3.x环境开发,只需要在目标平台上安装Python解释器和对应的第三方库即可运行。

快速开始

第三方库配置

在Jetson平台上使用numpy1.19以上版本实际测试会出现异常,请在安装完opencv-python及tensorflow后手动对NumPy降级
对于无GPU的设备请安装tensorflow 2.5.0版本

BTPDM主要依赖的第三方库及版本有:

  • numpy==1.18.5
  • opencv-python==4.5.1.48
  • pyserial==3.5
  • tensorflow-gpu==2.5.0

clone项目

通过clone BTP&DM可以快速使用BCP搭建机器人上位机系统。

>>> git clone https://github.com/Ligcox/BTP_DM.git
>>> cd birdiebot2021
>>> pip3 install -r requirements.txt
>>> python3 main.py

BCP使用UART/USART进行上下位机交互,通过设置UART/USART信息,能够快速的实现消息的收发。这些硬件设置在不同平台上可能有所不同,可以根据具体设备型号和下位机类型,进行收发和控制。

硬件设置位于BTP&DM/config/devConfig中,包括了输入源设置、COM设置、波特率设置、超时设置。

输入源设置

BTP&DM在设计中,考虑到真实比赛环境及调试需求,可以选择不同的图像输入源进行操作,目前BTP&DM支持一下的图像输入源:

视频文件:使用视频或文件作为输入源。将source设置为文件路径即可,例如:source=test.mp4
普通USB相机:使用USB相机作为输入源。将source设置为openCV中设备编号即可,例如:source=0
工业摄像机:使用工业摄像机作为输入源,目前,BTP&DM仅实现了对大恒工业相机的支持。将source设置为相机编号即可,例如:source="DAHENG0"

COM设置

Window设备配置

在NUC/普通X86设备的Windows系统下,UART/USART应使用USB to TTL模块进行转发(为保障数据的正确传输,推荐使用FT232芯片的转接模块,最好不要使用CH340芯片的模块)。安装驱动后,在命令行中使用mode命令,查看模块占用端口。

>>>mode

设备状态 COM23:
-----------
    波特率:     19200
    奇偶校验:   None
    数据位:     8
    停止位:     1
    超时:       OFF
    XON/XOFF:   OFF
    CTS 握手:  OFF
    DSR 握手:  OFF
    DSR 敏感度: OFF
    DTR 电路:  ON
    RTS 电路:  ON

设备状态 CON:
---------
    行:        9001
    列:       120
    键盘速度:   31
    键盘延迟:  1
    代码页:     936

例如,在该设备中,可配置PORTX = "COM23"

Jetson Ubuntu设备配置

在Manifold、Jetson AGX等开发套件中,能够通过开发套件中自带的引脚,完成相关COM设置,在Manifold2-G Ubuntu16.04条件下,UART0在系统内核中对应的设备是ttyS0,UART1对应的设备是ttyTHS2。Manifold 2-G的UART接口最大支持3M波特率。其中,921600波特率为标称值,实际为910000,在使用921600波特率进行传输时,这可能导致此UART接口无法与其他波特率亦有误差的设备(如一些OSDK设备)进行通讯。此时建议切换至其他波特率使用。 例如,在Maniflod2-G使用UART1口,可配置PORTX = "/dev/ttyTHS2"

波特率配置

BCT波特率指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。在使用BCT时,只需将波特率调整为与下位机匹配即可,默认为500000,但推荐不应小于115200。

超时设置

BCT在接收下位机时的等待操作时间,默认为0,可根据实际场景自行设置,None代表永远等待操作,0为立即返回请求结果,其他值为等待超时时间(单位为秒)。

运行环境说明

系统环境

BTPDM在加列环境中进行了运行测试,未发生异常,由于解释性语言的特性,理论能够在任何安装了Python解释器和第三方库的平台运行。

运行环境

机型 架构 系统版本
普通个人计算机 X86/X64 Windows 10.0.19043
Jetson arrch64 AGX Xavier:Ubuntu18.04
Jetson arrch64 Manifold2-G:Ubuntu18.04

视频输入源

更多视频流配置请参阅: OpenCV支持的VideoCapture()能够读取的对象。编码类型主要实现了V4L2_PIX_FMT_YUYVV4L2_PIX_FMT_H264V4L2_PIX_FMT_MJPEG

  • 大恒工业数字相机

这里主要介绍的是实际上场机器人使用了摄像头,具体请根据实际情况选型

型号 MER-039-860U3C
接口 USB3.0
分辨率 640(H) × 480(V)
帧率 860 fps
传感器 1/4" ,Global Shutter Onseni PYTHON 300 CMOS
像素尺寸 4.8 μm × 4.8 μm
光谱 20μs~1s
  • 大恒工业数字镜头
型号 HN-P-0628-6M-C1/1.8
靶面尺寸 1/1.8"
像元尺寸 2.4μm
焦距(mm) 6±5%
光学总长(mm) 49.5±0.2
法兰距(mm) 17.526±0.2
光圈范围(F数) F2.8-F16
视场角(H X V) 61.15° × 47.88°(74.96°)
工作距离(mm) 0.1m-∞
前螺纹(mm) M37.5×P0.5-7H
接口 C-mount
畸变率(%) ±0.2
尺寸(DXL)(mm) Φ39 × 32.3