141 lines
4.6 KiB
Markdown
141 lines
4.6 KiB
Markdown
# 编译运行环境配置
|
||
|
||
## 配置硬件环境
|
||
|
||
### 硬件连接
|
||
|
||
*使用转接线typeC接口连接无人机OSDK接口,uart接口接入下图 Uart-TTL0,USB接口插入两个叠起来的USB口中的下面那一个*
|
||

|
||
|
||
|
||
|
||
### 硬件驱动配置
|
||
|
||
*将drivers路径下cdc-acm.ko、cdc_ether.ko、rndis_host.ko 三个驱动文件放入 /lib/modules路径下,并将以下内容写入到/etc/init.d/load_driver.sh文件末尾*
|
||
|
||
```bash
|
||
echo "load cdc acm"
|
||
insmod $LYNKOPATH/cdc-acm.ko
|
||
|
||
echo "loading cdc_ether driver"
|
||
insmod $LYNKOPATH/cdc_ether.ko
|
||
|
||
echo "loading rndis_host driver "
|
||
insmod $LYNKOPATH/rndis_host.ko
|
||
```
|
||
### osdk 硬件运行环境配置
|
||
|
||
```bash
|
||
|
||
echo "SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"" >> /etc/udev/rules.d/DJIDevice.rules # 添加dji usb 设备节点
|
||
|
||
sudo usermod -a -G dialout $USER # 添加uart 读取权限
|
||
|
||
```
|
||
## 配置软件环境
|
||
|
||
*由于ros无法使用sudo 权限启动程序,但是AI推理需要使用sudo 权限,所以下面操作都是使用root 用户执行*
|
||
### 换国内镜像源
|
||
将/etc/apt/sources.list 的内容替换为以下内容
|
||
|
||
```bash
|
||
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
|
||
deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
|
||
# deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
|
||
deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
|
||
# deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
|
||
deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
|
||
# deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
|
||
|
||
# deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
|
||
# # deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
|
||
|
||
deb http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse
|
||
# deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse
|
||
|
||
# 预发布软件源,不建议启用
|
||
# deb https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse
|
||
# # deb-src https://mirrors.bfsu.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse
|
||
```
|
||
替换完成之后执行
|
||
```bash
|
||
sudo apt update
|
||
```
|
||
### 安装ros 环境
|
||
|
||
```bash
|
||
|
||
sudo apt install gnupg1
|
||
|
||
sudo echo "deb https://mirrors.bfsu.edu.cn/ros/ubuntu/ focal main" >> /etc/apt/sources.list.d/ros-latest.list # 添加ros 源地址
|
||
|
||
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
||
|
||
sudo apt update
|
||
|
||
sudo apt install ros-noetic-ros-base ros-noetic-nmea-msgs ros-noetic-sensor-msgs ros-noetic-nav-msgs ros-noetic-tf # 安装ros 相关库
|
||
|
||
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc # 配置ros 环境变量
|
||
|
||
source ~/.bashrc
|
||
|
||
```
|
||
### apt 安装依赖库
|
||
|
||
```bash
|
||
|
||
sudo apt install libavformat-dev libavcodec-dev
|
||
|
||
sudo apt install libopencv-dev libopencv-contrib-dev
|
||
|
||
sudo apt install libsdl2-dev libusb-1.0-0-dev
|
||
|
||
sudo apt install build-essential
|
||
|
||
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-bad gstreamer1.0-plugins-rtp gstreamer1.0-plugins-ugly
|
||
|
||
sudo apt install libeigen3-dev
|
||
|
||
sudo apt install git
|
||
|
||
```
|
||
### 编译安装相关依赖库
|
||
#### osdk
|
||
```bash
|
||
git clone https://github.com/dji-sdk/Onboard-SDK.git
|
||
cd Onboard-SDK
|
||
mkdir build && cd build
|
||
cmake ..
|
||
make -j4 && sudo make install
|
||
```
|
||
#### websocketpp
|
||
```bash
|
||
git clone https://github.com/zaphoyd/websocketpp.git
|
||
cd websocketpp
|
||
mkdir build && cd build
|
||
cmake ..
|
||
make -j && sudo make install
|
||
```
|
||
### 编译yolov5 plugin
|
||
*编译产物在yolov5_plugin/obj/ 路径下*
|
||
|
||
```bash
|
||
cd yolov5_plugin/build
|
||
cmake ..
|
||
make -j
|
||
```
|
||
## 编译运行 osdk_ros
|
||
### 编译 osdk_ros
|
||
|
||
```bash
|
||
cd osdk_ros
|
||
catkin_make -j4 # 如果使用更多核心编译会导致编译过程中内存不足
|
||
```
|
||
### 运行项目
|
||
|
||
*运行之前要先打开osdk_ros/src/ah_osdk_ros/launch/mission.launch文件,检查pluginPath和modelPath的value是否正确,pluginPath是前面编译的yolov5 plugin产物的路径。 modelPath是算法模型的路径,在modules路径下有一个电力设备目标识别的模型yolov5s-6.1-device一个yolov5s基础模型yolov5s.6.1_110_abc*
|
||
|
||
```bash
|
||
source devel/setup.sh
|
||
roslaunch ah_osdk_ros mission.launch
|
||
``` |