最近本人不慎在折腾妙算的过程中走火入魔,将妙算刷死了。。。结果只好从头开始,从最原始的妙算装上Onboard SDK。不多说废话了,开始干活~
系统没毛病的能正常使用的请跳过此步骤!
上文提到,本人的妙算已死,需要先救回来……
好吧,我们先看下官网的Manifold用户手册。
神马?用Linux?
好吧,那么首先先找个Linux吧!
这里,我用了某ROS教程的Linux镜像,装在了VMwareWorkstation里
关于怎么使用VM虚拟机以及VM的破解、Ubuntu的安装,不懂的自行百度,这里不详述。
根据用户手册的信息,从官网可以下载,即直接点击它的链接。然而,对于我们这些“后来者”,官网的链接早就挂了……可能是妙算太依托于TK1的缘故吧,看知乎说可能是怕侵权所以下架了。当然这些都和我们没多大关系,感谢官方论坛里的前辈早已共享,我就厚颜无耻得拿过来用吧!在附件中找到相应文件既可。
安装包“manifold_ image_v1.0.tar.gz”
打开终端,输入一下命令:
mkdir ~/manifold
cd ~/manifold
sudo tar -xvpzf /manifold_image_v1.0.tar.gz
注意,别光急着复制命令,在第三条命令里
同使用手册,按需操作。本人按照方法2操作。
终端中输入
lsusb
同理先看手册:
这一步,参照使用手册时会发现一个坑——路径似乎对不上。打开我们得到的文件,你会发现没有manifold_images这个目录,取而代之的是Linux_for_Tegra这个目录。可能是前辈给的文件有一定出入吧。不管怎样,如果用附件里的安装包的话,参照使用手册时将manifold_images替换为Linux_for_Tegra既可。
其次,在删除system.img之后的步骤也似乎不太对:
来来来我们从文档里将这句命令后半截复制出来:
–go
而实际上这里应该是
--go
似乎长短差不多。其实一个是一个字符一个是两个字符。不管它是怎么敲出来的吧,总之猜也猜出来应该和前面的—read xxx一种操作才对。故这两行指令应该如下:
cd ~/manifold/Linux_for_Tegra/bootloader
sudo ./nvflash --read APP system.img --bl ardbeg/fastboot.bin –go
接下来就是漫长的等待,估测得5个多小时,建议睡觉前操作,睡一觉就制作好了(我相信能到这一步的大多都是平均睡眠时长5小时左右的夜猫子,不然还在IT行业混啥)
还是看手册,问题依旧——路径。
不过按照手册的意思,这里有两种选择:恢复至默认的系统,恢复到之前做过的镜像。而差别仅仅是多了一个“-r”。本人小白一只,还是那种特白的,实在不清楚有啥区别,反正效果都一样,那就随便选一种吧!
这里如果是按照上文做下来的话路径应该是在~/manifold/Linux_for_Tegra/bootloader下,所以没必要非得cd~/manifold/ Linux_for_Tegra,只要返回上层目录就好,即cd ..
cd ..
sudo ./flash.sh –r jetson-tk1 mmcblk0p
此步骤需要安装2个软件和一个系统,同样参照官方使用手册。
软件cuda是英伟达的显卡驱动,好像不安装的话后面的OpenCV装不上。
软件OpenCV4tegra跟OpenCV有关,大概是基于2.4版本吧。
ROS机器人系统是我们在妙算中使用Onboard SDK的环境,必须保证前两者正常安装才能确保ROS环境搭建成功,故马虎不得。
所以,在安装的过程中,会涉及到从网上更新软件,也就是在apt-get update之后的apt-get install,一定要注意是否成功!如果有error出现请不断重复尝试update然后再install,直到成功为止。本人在这里郁闷了好几天,中途换了好多源都不行,还是官方源在凌晨3点左右才勉强成功了,全靠人品。一定要坚信,别人能做出来,自己也能做到,坚持就是胜利!
顺便参照kaka的博客将opencv和qt配置好以便以后操作。
所用的安装包直接点击官方使用手册的链接下载既可,或者在附件中寻找。。
同官方,不解释
1.下载安装包cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb
2.执行以下命令进行安装
sudo dpkg -i cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb
sudo apt-get update
sudo apt-get install cuda-toolkit-6-5
同官方,不解释。
1.下载安装包libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb
2.执行以下命令进行安装
sudo dpkg -i libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb
sudo apt-get update
sudo apt-get install libopencv4tegra libopencv4tegradevlibopencv4tegra-python
OpenCV与Qt安装请跳转至kaka的博客,链接:http://blog.csdn.net/u012348655/article/details/50564223
这里,就是要跳转到ROS.org考验我们基础英语水平的时候了。这里简要翻译(参照google浏览器翻译功能)下步骤。
链接:http://wiki.ros.org/indigo/Installation/UbuntuARM
首先我们看到的是它支持的平台
可以看到它支持DJI Manifold,也就是说我们要坚信一定可以安装成功的。
2.1 配置Ubuntu存储库
表示……然并卵。
2.2 区域设置
sudo update-locale LANG = C LANGUAGE = C LC_ALL = C LC_MESSAGES = POSIX
如果失败请尝试如下命令(其他语言支持)。反正我设置成功了没管这个。
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
2.3 设置sources.list
Ubuntu 14.04(Trusty armhf)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
2.4 设置Key
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
也可以用下面这个:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
2.5 安装
首先更新,其次再装ROS-Base和desktop,其他的可选安装。
ROS-Base:(Bare Bones) ROS包,构建和通信库。没有GUI工具。
桌面安装: ROS,rqt,rviz和robot-generic库
sudo apt-get update
sudo apt-get install ros-indigo-ros-base
sudo apt-get install ros-indigo-desktop
可选包的安装为:sudo apt-get install ros-indigo-PACKAGE
其中PACKAGE为安装包的名称,查询可用安装包指令如下指令:
apt-cache search ros-indigo
2.6 初始化rosdep
sudo apt-get install python-rosdep
sudo rosdep init
rosdep update
2.7 环境设置
因为我们只安装了一个ROS发行版,所以不用考虑其他的,只需要执行如下命令:
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
2.8 获取rosinstall
rosinstall是ROS中经常使用的命令行工具,它分开分发。它使您能够通过一个命令轻松下载许多ROS包的源代码树。
sudo apt-get install python-rosinstall
2.9 验证操作系统名称
必须确保系统信息是如下信息。本人小白没看明白,我的做法是直接复制到终端执行。。
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04"
至此,ROS安装告一段落。想要看教程的话参考官网,剩下的步骤都是开发ROS的教程了,这里不再献丑。
本人按照老师的需求,需要在妙算上安装OnboardSDK来控制M600 Pro实现一些功能,做二次开发。其中Onboard SDK最近刚升级到了3.3,但是3.3目前还未支持A3的API,故只能下载安装之前的版本。看到知乎上有人说妙算自带SDK无需安装,我看了白天也没整明白此话何出?很迷。。。无奈咨询学长,学长跟我说,开发这个,全在ROS上,故需要先进行上述操作。然后再安装Onboard SDK 3.2 。其中所需文件从github上既可得到,我建议大家从github上面取得。作为备份我亦备份在附件一份以备不测。教程还是从DJI官网取得,还是很迷啊,中国厂商只给英文资料,只能硬着头皮翻译了。
由于3.2版本的文档我看的不是很明白,所以就结合3.3一起操作。至于文档中的介绍部分这里不献丑了,这里只罗列一些必要操作。
想要用Onboard SDK做开发,首先要了解ROS。本人也没有经验,只能从各大网站寻求教程。
其次是基础的C/C++基础。相信电子信息类专业基础素养大家都比我要强了。
然后,就是要参照官方文档了。这里给出3.3和3.2版本的链接。其实在github上下载的SDKReadme.md里面提供了相应说明的网址。
V3.3:http://developer.dji.com/onboard-sdk/documentation/introduction/homepage.html
V3.2:https://developer.dji.com/onboard-sdk/documentation/quick-start/index.html
要开发应用,需要APPID和App Key两个信息。这就需要先在developer上新建一个app来获取了。
以M600与妙算连接为例,请允许我盗官方几张图。
首先是官方提供的API接口,实际上就是UART而已。
需要注意的是,线头的连接方式是一一对应的
接下来是与妙算进行连接:
(1)下载必需工具
妙算:OnboardSDK
Windows/mac:DJI PC Assistant 2
Mobile:DJI GO App
(2)升级固件
将飞机(M600)USB连接PC/Mac升级固件。
(3)使能SDK API
请允许我盗张图。
(1)下载OESKhere
(2)解压并进入文件夹,执行一下命令:
mkdir build
cd build
cmake ..
make djiosdk-core
(3)安装osdk-core library
sudo make install djiosdk-core
(4)建立catkin工作区间
mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
catkin_init_workspace
(5)将DJI OSDK-ROS复制到src目录下here
(6)Build
cd ..
catkin_make
(7)一定要先source setup.bash
source devel/setup.bash
(8)编辑App ID、波特率、Key和端口名称
rosed dji_sdk sdk_manifold.launch
或者直接gedit目录下dji_sdk/launch/sdk_manifold.launch
其中,App ID与Key在准备工作中新建的App里查询。
波特率因为Ubuntu有一些版本有Bug无法设置115200故采用230400.
端口名称参照使用手册
我们用到的是UART1故名称应该为ttyTHS0.
(9)运行样例
注意每次运行时都要在现在的目录下执行一遍(7)
要启动dji_sdk需要先启动sdk_manifold
roslaunch dji_sdk sdk_manifold.launch
然后打开新的终端输入如下指令:
source devel/setup.bash
roslaunch dji_sdk dji_sdk_client.launch
至此,开始体验样例的效果吧!
参考资料:
http://blog.csdn.net/u012348655/article/details/50564223
http://wiki.ros.org/indigo/Installation/UbuntuARM
http://developer.dji.com/onboard-sdk/documentation/introduction/homepage.html
https://developer.dji.com/onboard-sdk/documentation/quick-start/index.html
附件:
onboard sdk:
链接:http://pan.baidu.com/s/1pLTvigr密码:fc7u
论坛资源分享:
链接:https://pan.baidu.com/s/1pKQrLhT密码:14t8