将Linux(Ubuntu 20.04为例https://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:
-
克隆仓库
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
本页教程适用于Tags
≥V2.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)
用户可根据这些信息分析可能存在的兼容性问题