4.6 KiB
4.6 KiB
编译运行环境配置
配置硬件环境
硬件连接
使用转接线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文件末尾
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 硬件运行环境配置
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 的内容替换为以下内容
# 默认注释了源码镜像以提高 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
替换完成之后执行
sudo apt update
安装ros 环境
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 安装依赖库
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
git clone https://github.com/dji-sdk/Onboard-SDK.git
cd Onboard-SDK
mkdir build && cd build
cmake ..
make -j4 && sudo make install
websocketpp
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/ 路径下
cd yolov5_plugin/build
cmake ..
make -j
编译运行 osdk_ros
编译 osdk_ros
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
source devel/setup.sh
roslaunch ah_osdk_ros mission.launch