实验室有一架 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/shif [ $(id -u) != 0 ]; thenecho "This script requires root permissions"echo "$ sudo "$0""exit
fitar -zxvf cudnn-6.5-linux-ARMv7-v2.tgz
cd cudnn-6.5-linux-ARMv7-v2cp 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. 以上步骤未出错则安装成功。

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

  1. 大疆TT无人机编程初体验,教你对拥抱开源的无人机为所欲为!

    先放个项目演示视频镇帖: 可能是大疆TT无人机的第一款DIY遥控器!大疆TT无人机编程试飞初体验! 认识我的朋友,大概都知道,我是一个"运气爆棚"的人,经常能"捡&quo ...

  2. 试玩系列 | 真香!大疆TT无人机编程初体验,教你对它为所欲为!

    先放个项目演示视频镇帖(点击小程序查看演示视频): 认识我的朋友,大概都知道,我是一个"运气爆棚"的人,经常能"捡"到一些好玩的东西.这不,前两天在家门口&qu ...

  3. 超级简单的大疆tello无人机视频实现(很少代码)

    大疆tello无人机出来有1年时间了,使用pc查看视频的功能也只是今年才开放,经过2天的摸索,终于用简单的方法实现,不敢独享,分享出来. 1.连接tello的wifi: 2.使用udp组件发送打开视频 ...

  4. tello通信_鸿蒙HarmonyOS and 大疆Tello 无人机 BUILD SUCCESS

    鸿蒙HarmonyOS and 大疆Tello 无人机 BUILD SUCCESS 发布于 2020-11-19 18:55 3028浏览 3收藏 利用鸿蒙Hispark WIFI IOT 套件控制大 ...

  5. ROS环境下大疆tello无人机源码安装驱动代码解读

    大疆tello无人机是一款微小型无人机,可以支持多种开发模式.这里用的是ROS1的kinetic版本进行开发.参考文档来自http://wiki.ros.org/tello_driver 1)kine ...

  6. 大疆从无人机中来,极飞到无人机中去

    配图来自Canva可画 目前来看,无论是无人机公司还是无人机服务公司,都或多或少地将自己的思路限制在了"无人机"这个框架内,但大疆在消费级无人机市场的统治力,又迫使其他无人机企业不 ...

  7. 大疆DJI无人机GoPro运动相机MOV或MP4视频文件恢复后花屏解决技术思路方法

    从事数据恢复的工作人员.航拍录像从业人员.摄影爱好者等有时会遇到视频文件损坏问题,下面分析的就是常见的情况:大疆DJI无人机GoPro运动相机MOV或MP4视频文件丢失之后(删除.病毒感染或者格式化等 ...

  8. 大疆Phantom无人机ios遥控软件Auotpilot

    大疆Phantom无人机ios遥控软件Auotpilot 参考:http://bbs.dji.com/thread-9662-1-1.html 大疆社区 一.用ios设备作为遥控器控制无人机介绍 图 ...

  9. 鸿蒙大疆无人机,鸿蒙HarmonyOS and 大疆Tello 无人机 BUILD SUCCESS

    利用鸿蒙Hispark WIFI IOT 套件控制大疆TELLO 无人机 第一步:查看无人机通信协议: 第二步:结合许老师的UDP网络编程--UDP demo 写入无人机的wifi名称,密码,ip地址 ...

最新文章

  1. 【数据结构总结1】-数据结构的自述
  2. 软件工程——理论、方法与实践⑨
  3. Tensorflow:interactivesession和session的区别。
  4. linux+crontab执行php,如何使用Linux的Crontab执行PHP脚本
  5. SpringBoot 接收 单个String入参之解决方案
  6. 恶意软件借手机游戏强行吸取流量,使用代码签名证书验明证身
  7. 02-body标签中相关标签
  8. Java程序员集合框架面试题
  9. 【超简单】用python写给女朋友的词云
  10. [洛谷P4118][Ynoi2016]炸脖龙I([洛谷P3934]Nephren Ruq Insania)
  11. DDR中的一些知识点说明(ODT,ZQ校准,OCT,TDQS)【转载】
  12. 课程列表和整合阿里云视频点播
  13. ubuntu 设置动态壁纸来美化桌面(Live Wallpaper)
  14. using声明和using编译指令
  15. N1盒子旁路由教程面向小白啰嗦版
  16. mysql int等字段括号里的数字含义和作用
  17. 【嵌入式系统开发15】STM32F103C8T6下通过定时器Timer方式实现时间的精准控制,实现串口通信并让LED等周期性地闪烁
  18. 1989-字符串分割
  19. android中的ImageView,ImageView加载网络图片
  20. 解决springboot自动重启问题

热门文章

  1. Qt界面美化自定义边框之QMainWindow边框
  2. @Autowired依赖注入
  3. Keycloak各种配置及API的使用
  4. 积分生活-积分体系的成熟
  5. tomcat9配置允许跨域访问
  6. 提取图像Alpha位图
  7. AI照骗恐怖如斯!美女刷屏真假难辨,网友:AI网恋诈骗时代开启
  8. IT圈的“年龄歧视”,android模拟器中文输入法
  9. phpqrcode 实现url转二维码
  10. vue-router路由懒加载