当前位置: 首页 > 工具软件 > Manifold > 使用案例 >

大疆M100无人机 妙算Manifold 深度学习视觉伺服系统 学习历程(一)妙算Manifold环境配置

方宏富
2023-12-01

实验室有一架 DJI M100 无人机和若干台 DJI Manifold ,由于与我的研究方向有相关性,因此打算将其利用起来做一些深度学习视觉伺服的开发工作,本系列文章将一些我在学习和研究过程中经历的关键问题记录下来,旨在提醒自己,或者为有需要的同仁们提供一些参考。文章以笔记形式为主,难免有疏漏之处,大家如果发现有错误请指出,我会加以修改。

系列链接:
  1. 大疆M100无人机 妙算Manifold 深度学习视觉伺服系统 学习历程(一)妙算Manifold环境配置

本文为该系列文章的第一篇,记录一些妙算 Manifold 环境配置的方法,包括安装 ROS 、安装 DJI Onboard SDK ROS 、安装 CUDA 、安装 CUDNN 和 安装 Tensorflow。

安装 ROS

妙算 Manifold 的系统版本为 Ubuntu 14.04 ,所对应的 ROS 版本为 ROS-Indigo。

  1. 由于Boost 和一些 ROS 工具有时需要指定特定的语言地区,因此为了防止以后出现很多莫名其妙的问题,先进行Ubuntu系统语言区域设置。在终端中执行以下指令:
sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=POSIX
  1. 设置妙算能够接受来自 ARM 镜像 packages.ros.org 的软件。在终端中执行以下指令:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 设置秘钥。在终端中执行以下指令:
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
  1. 安装ROS之前先更新一下Ubuntu包管理器的索引。在终端中执行以下指令:
sudo apt update
  1. 开始安装ROS。根据所需的ROS模块不同,可以通过以下指令选择安装ros-indigo-ros-baseros-indigo-desktop以下指令二选一,不要都安装
sudo apt install ros-indigo-ros-base
sudo apt install ros-indigo-desktop
  1. 在使用 ROS 之前,需要安装并初始化 rosdep。rosdep 的作用是在编译代码的时候方便地安装系统依赖项,而且还用于在 ROS 中运行一些核心组件。执行以下指令安装并初始化 rosdep:
sudo apt install python-rosdep
sudo rosdep init
rosdep update
  1. ROS已经安装完毕了,此时每次打开新终端的时候都需要繁琐地source一下ROS的环境变量。如果每次启动一个新终端时,ROS 环境变量都能够自动添加到终端中,那就很方便了。执行以下指令将source命令写入.bashrc文件中:
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
  1. rosinstall 是 ROS 中经常使用的命令行工具,用于下载许多 ROS 组件包。执行以下指令来安装rosinstall:
sudo apt install python-rosinstall
  1. 以上步骤都完成则ROS安装完毕。
安装 DJI Onboard SDK ROS

经过我的尝试,3.2.2版本是在配置和使用上问题比较少的版本,本文以3.2.2版本为示例演示安装步骤,其他版本的安装步骤大同小异。

  1. 下载 Onboard-SDK-3.2.2 。推荐打开终端并执行以下指令下载一步到位,或者也可以从Onboard-SDK github下载 zip 压缩包并自行解压到任意目录下:
cd ~
git clone -b 3.2.2 https://github.com/dji-sdk/Onboard-SDK
  1. 编译 Onboard-SDK-3.2.2 。在终端中执行以下指令:
cd Onboard-SDK
mkdir build
cd build
cmake ..
make
  1. 新建一个 ROS 工作空间。在终端中执行以下指令,其中catkin_ws为新建的ROS工作空间命名,可以自己设定,不需要与我这里给出的一样:
cd ~
mkdir M100_zzm_ws
cd M100_zzm_ws
mkdir src
cd src
catkin_init_workspace
  1. 将 Onboard-SDK-ROS-3.2.2 下载到 ROS 工作空间中的 src 文件夹内。推荐直接执行以下指令下载一步到位,或者也可以从Onboard-SDK-ROS github下载 zip 压缩包并自行解压到ROS 工作空间中的 src 文件夹内:
git clone -b 3.2.2 https://github.com/dji-sdk/Onboard-SDK-ROS
  1. 回到 ROS 工作空间根目录下,并编译:
cd ..
catkin_make
  1. 以上步骤都完成则 DJI Onboard SDK ROS 安装成功。
安装 CUDA

妙算 Manifold 支持的 CUDA 版本为 CUDA 6.5 。

  1. 从这个链接下载 CUDA 包:cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb
  2. 在终端中执行以下指令,安装cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb
sudo dpkg -i cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb  
sudo apt update  
sudo apt install cuda-toolkit-6-5  
安装 CUDNN

CUDA 6.5 对应的 CUDNN 版本为 CUDNN v1 或 CUDNN v2 ,然而 v1 不兼容 tensorflow ,因此我们安装 CUDNN v2 。

  1. 从这里下载 CUDNN 包:cudnn-6.5-linux-ARMv7-v2.tgz 。第一次打开该链接可能需要登录英伟达Nvidia账号,登录后再次点击该链接即可下载。
  2. 下载完成后,在cudnn-6.5-linux-ARMv7-v2.tgz文件的同级目录中新建一个 sh 脚本文件,命名为 installcuDNNR2.sh,用文本编辑器打开该 sh 脚本文件并写入以下内容:
#!/bin/sh

if [ $(id -u) != 0 ]; then
  echo "This script requires root permissions"
  echo "$ sudo "$0""
  exit
fi

tar -zxvf cudnn-6.5-linux-ARMv7-v2.tgz
cd cudnn-6.5-linux-ARMv7-v2

cp cudnn.h /usr/local/cuda-6.5/include
cp libcudnn* /usr/local/cuda-6.5/lib
  1. 打开终端,并执行以下指令运行 sh 脚本来安装 CUDNN :
chmod +x installcuDNNR2.sh
./installcuDNNR2.sh
安装 Tensorflow

妙算 Manifold 支持 Tensorflow 0.8。

  1. 先安装一些 python 依赖包。打开终端并执行以下指令:
sudo apt update
sudo apt install python-py python-dev
  1. 安装 pip :
sudo apt install python-pip
  1. 下载 Tensorflow :
git clone https://github.com/dat-ai/tensorflow-on-nvidia-jetson/
  1. 开始安装 Tensorflow :
cd tensorflow-on-nvidia-jetson
sudo pip install tensorflow-0.8.0-py2-none-any.whl
  1. 测试一下 Tensorflow 是否安装成功:
python
import tensorflow as tf
  1. 以上步骤未出错则安装成功。
 类似资料: