G1吊舱使用流程(C++ & python)

将Linux(Ubuntu 20.04为例icon-default.png?t=O83Ahttps://wiki.amovlab.com/public/gimbalwiki/G1/doc/G1%E5%90%8A%E8%88%B1%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8.html#linuxubuntu-2004为例

硬件连接

检查USB转串口模块连接
  • 打开终端,输入 ls /dev/ttyUSB* 输出 /dev/ttyUSB0 字样则为连接成功 注意:仅吊舱使用USB接口的情况下,如有其他设备同时使用USB接口,端口号可能会改变
配置网络
  • 连接网线

  • 打开设置->网络,点击对应网卡的小齿轮图标

  • 选择IPv4选项页,固定ip为192.168.2.8,子网掩码为255.255.255.0,默认网关为192.168.2.1,完成后点击应用。

  • 打开终端,输入 ping 192.168.2.64 ,检测吊舱是否连接成功

使用地面站
  • 打开AmovGimbalStudio软件,可以控制吊舱及获取采集到的图像

(没必要用AmovGimbalStudio软件)

软件搭建:

下载SDK:

  1. 克隆仓库

    git clone https://gitee.com/amovlab/amov-gimbal-libs.git

2.软件依赖
查看是否需要更新:
GLIBC (2.34 or later)
CMake (version 3.0 or later)
指令:

getconf GNU_LIBC_VERSION
cmake --version

1.GLIBC (2.34 or later)依赖版本:

getconf GNU_LIBC_VERSION

2.查CPU及系统架构:

uname -m



本页教程适用于TagsV2.0.0的版本 由于库将根据实际情况进行更新,本文档仅作参照,最终以Gitee仓库的readme.md为准

sudo cp lib/<对应CPU及系统架构>/libAMOV_Gimbal.so /usr/lib/     #库文件
sudo cp -r inc/amovGimbal /usr/include/                        #头文件

以我系统x86_64-linux为例:

sudo cp lib/x86_64-linux/libAMOV_Gimbal.so /usr/lib/     #库文件
sudo cp -r inc/amovGimbal /usr/include/                        #头文件

C++ 例程

正确安装AmovGimbal库后即可尝试对例程进行编译。

cmake -B build
cmake --build build

运行例程

sudo cp build/example/serial/libserial.so /usr/lib/     #安装串口库
chmod 777 /dev/ttyUSB0                                  #赋予串口权限
./build/example_test /dev/ttyUSB0 G1                    #以运行G1吊舱,使用/dev/ttyUSB0端口为例 
  • 运行成功云台将间隔约2S向正方向与初始点间摆动并在控制台输出如下所示姿态信息
GIMBAL_CMD_RCV_POS
=============================================
HALL_yaw: 0.00
HALL_roll: 0.00
HALL_pitch: 0.00
GYRO_yaw: 0.00
GYRO_roll: 0.00
GYRO_pitch: 0.00

python 例程

  • python例程通过调用ctypes中间层/example/2py.cpp中实现,该文件在构建C++例程时构建
  • 因此使用python例程前必须完成C++例程的构建

修改云台种类及使用端口

修改example/example.py文件的以下位置

# 运行的设备名
defname = b'G1'                                   #设备类型为 G1

# 装载接口库
if (sys.platform == "linux"):
    gimbal = CDLL("libAMOV_Gimbal_python.so")
    defport = b'/dev/ttyUSB0'                       #使用/dev/ttyUSB0端口 linux下有效 根据实际情况修改
else:
    gimbal = CDLL("libAMOV_Gimbal_python")
    defport = b'COM3'                               #使用COM3端口 windos下有效 根据实际情况修改

启动云台控制 python 例程

sudo cp build/libAMOV_Gimbal_python.so /usr/lib/
chmod 777 /dev/ttyUSB0                                  #赋予串口权限
sudo chmod +x example/example.py                        #赋予可执行权限
python3 example/example.py

这个例程实现了云台在20°(roll),30°(pitch),40°(yaw)姿态与初始姿态往复运动

构建中间层

  • 下面提供一个用于构建AMOV_Gimbal_python库的CMakeList.txt实现参考(位于根目录):
#构建前需正确安装库
add_subdirectory(example/serial)                                    #添加串口子模块
add_library(AMOV_Gimbal_python SHARED example/2py.cpp)              #指定构建目标
target_link_libraries(AMOV_Gimbal_python serial AMOV_Gimbal)        #链接串口库、AMOV_Gimbal库   
target_include_directories(AMOV_Gimbal_python                       #指定头文件
    PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}
)

启动图像获取 python 例程

  • 安装 opencv-python
  • 替换 example/example_stream_cam_image.py 中的以下部分为控制器中的码流地址
pipline_str = "rtsp://192.168.2.64:/H264?W=1920&H=1080&FPS=30&BR=4900000"
  • 运行
python3 example/example_stream_cam_image.py

关闭该python例程需要通过Ctrl+c的方式关闭终端

补充说明

库及构建信息

该库编译采用C++11标准,使用pthread

该库采用交叉编译技术于 Ubuntu 20.04.6 LTS 系统中进行构建 下面是针对不同的平台采用的编译器信息

  • x86_64-linux/i386-linux: gcc/g++ (version 9.3.0)
  • x86_64-Windows/i386-Windows: w64-mingw32-gcc-posix/w64-mingw32-g++-posix (gcc version 9.3.0)
  • arrch64-linux: aarch64-linux-gnu-gcc/aarch64-linux-gnu-g++ (gcc version 9.3.0)
  • arm-hf-linux: arm-linux-gnu-gcc-hf/arm-linux-gnu-g++-hf (gcc version 9.3.0)
  • arm-sf-linux: arm-linux-gnu-gcc-sf/arm-linux-gnu-g++-sf (gcc version 9.3.0)

用户可根据这些信息分析可能存在的兼容性问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值