环境要求:
Ubuntu14.4(TK1自动刷新版本)
CUDA 6.5
Opencv 2.4.10.1
妙算装机参考:
参考 :
http://blog.csdn.net/u011619535/article/details/76100631 //妙算初始过程
http://blog.csdn.net/u012348655/article/details/50564223 //cuda、opencv以及qt的配置
http://blog.csdn.net/yuyangyg/article/details/60777488 //安装ros indigo
由于妙算其实就是用TK1核心板做的面向大疆的gpu处理器,所以很多配置与TK1相同。
需要的安装包:链接:http://pan.baidu.com/s/1hr3bECk 密码:w2to
TK1:
参考 :
http://blog.csdn.net/FRD2009041510/article/details/42042807 //平台搭建
http://blog.csdn.net/FRD2009041510/article/category/2774057 //教程
监控GPU:
参考 :
https://devtalk.nvidia.com/default/topic/928386/gpu-usage-monitoring-on-tx1/?offset=2
http://www.rthpc.com/View?id=418
http://colabug.com/244504.html
http://s1nh.org/post/tx-1-zero-copy/
http://blog.csdn.net/nnnnnnnnnnnny/article/details/52823440
sudo ~/tegrastats
妙算装机过程
步骤一、二、三按照博主@凡人就行操作,博客链接:http://blog.csdn.net/u011619535/article/details/76100631。步骤四基本按照官方文档操作。
一、安装CUDA
同官方文档一致即可。
1.下载大疆提供的cuda安装包。
2.执行以下命令进行安装
sudo dpkg -i cuda-repo-l4t-r21.3
sudo apt-get update
二、安装Opencv
同官方文档一致即可。
1.下载大疆提供的Opencv安装包。
2.执行以下命令进行安装
sudo dpkg -i libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb
sudo apt-get update
sudo apt-get install libopencv4tegra libopencv4tegra-devlibopencv4tegra-python
安装过程中,只是成功安装libopencv4tegra,libopencv4tegra-devlibopencv4tegra-python没有成功安装,
三、安装ROS
1、参照 ROS.org进行操作。
链接:http://wiki.ros.org/indigo/Installation/UbuntuARM
2、配置ubuntu存储库,这一步我略过,没出现问题。
3、区域设置
4、设置sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
5、设置key
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
6、执行安装命令
首先进行安装更新,再进行ROS-base和desktop安装,其他包可以自由选择安装。在此之前一定先进行安装更新!!!
ROS-Base包:(Bare Bones) ROS包,构建和通信库。没有GUI工具。
desktop包 : 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
妙算属于TK1定制板子,所以安装包及软件属于特定版本,不能轻易更新系统、软件的版本。所以谨慎使用sudo apt-get upgrade 指令,此指令会更新软件、包、系统等到最新版本。参考博主所解释:http://www.baiyuxiong.com/?p=529
7、初始化rosdep
sudo apt-get install python-rosdep
sudo rosdep fix-permissions //使用此命令来进行初始化操作而不要使用 sudo rosdep init
rosdep update //命令前不要加sudo,会造成执行ros时无权限报错
8、环境设置
因为我们只安装了一个ROS发行版,所以不用考虑其他的,只需要执行如下命令:
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
9、获取rosinstall
rosinstall是ROS中经常使用的命令行工具,它分开分发。它使您能够通过一个命令轻松下载许多ROS包的源代码树。
sudo apt-get install python-rosinstall
10、验证操作系统名称
参考链接:https://www.cnblogs.com/yhlx125/p/5138317.html
新建终端输入:roscore
再新建终端输入:rosrun turtlesim turtlesim_node,此时会出现新的视图界面,只有一只小乌龟。
再新建终端输入:rosrun turtlesim turtle_telelop_key,此时小乌龟可以使用键盘上下左右按键控制移动。
再新建终端输入:rosnode list,即可查看运行的节点。
测试结束,可以按下Alt+f4快捷键关闭各终端。
验证ROS是否安装成功尽量使妙算本机连接显示屏。
制作系统镜像
1、一台linux计算机,我使用了VM下ubuntu16的虚拟机进行操作。
2、硬盘剩余空间大于16GB。请一定确保硬盘有足够的剩余空间,否则将会导致失败。
1、在虚拟机进行制作镜像时,首先需要将妙算的USB连接到虚拟机下,连接方法是首先安装vm tools,当妙算进入恢复模式后点击虚拟机右下方的USB小图标,将NVidia Corp 连接到虚拟机内。此时使用
lsusb
命令可查看是否成功连接。
2、在进行镜像制作之前使用sudo df -h
命令查看磁盘剩余空间,确保大于16GB,最好大于30GB。在进行镜像制作时最好将连接电脑和妙算的USB插口插到主机电脑的USB2.0的机箱后置接口上,确保连接。
3、进入恢复模式
方法1
方法2
在主机终端输入lsusb
查看USB是否成功连接。
4、制作系统镜像
进入bootLoader文件夹:
cd ~/Linux_for_Tegra/bootloader
若文件夹内存在system.img
先删除。
执行如下命令开始制作:
sudo ./nvflash --read APP system.img --bl ardbeg/fastboot.bin --go
制作镜像大概需要四五个小时,执行命令后可以去干别的去了。另外一定注意自己主机电脑和虚拟机不要设置休眠时间,万一半小时后电脑休眠···你只能重新了。
在官方给的文档中进入
/manifold/manifold_images/bootloader
目录,但是实际是/Linux_for_Tegra/bootloader
目录。另外官方给出的命令中-go
实际为--go
,此命令其他位置与此相同。
恢复系统镜像
系统需求:
1、一台linux计算机,我使用了VM下ubuntu14的虚拟机进行操作。务必使用ubuntu14的上位机进行镜像恢复工作,在使用ubuntu16的上位机进行恢复操作时开机之后妙算显示会有闪屏以及sudo
权限问题。
2、先进入恢复模式,操作参考制作镜像时操作。
3、若想要将系统恢复至出厂系统则进入/Linux_for_Tegra/bootloader
路径下,若文件夹内存在system.img
先删除,使用如下命令:
sudo ./flash.sh jetson-tk1 mmcb1k0p1
4、若想要将系统恢复到先前制作的镜像版本,则将镜像文件system.img
复制到/Linux_for_Tegra/bootloader
路径下,使用如下命令:
sudo ./flash.sh -r jetson-tk1 mmcb1k0p1
安装caffe
参考TK1 caffe安装方式,进行妙算caffe安装。
以上步骤CUDA、opencv安装完成。
1、安装caffe依赖库
sudo apt-get install libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install--no-install-recommends libboost-all-dev
sudoapt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2、安装openBLAS
首先下载BLAS安装包,解压、安装。
tar -xzvf
sudo make -j4
sudo make install -j4
在实际安装过程中,使用4个核心比较合适,有一次使用全部核心进行编译时报错,后面查到说是内存不够,于是慢慢尝试,4个核心进行编译不会出现此类问题,速度也可以接受。
安装完成后在/etc/ld.so.conf.d文件夹中添加opencv.conf
文件,并将openBLAS的lib路径/etc/ld.so.conf
文件写到opencv.conf
文件内,并执行sudo ldconfig
更新。
5、开始安装caffe
下载caffe安装包,复制Makefile.config.example为Makefile.config,并修改Makefile.config
将下列代码中最后三行注释即可。
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
6、在Makefile.config
文件内,修改BLAS 值为open、修改BLAS_INCLUDE和BLAS_LIB的路径
BLAS_INCLUDE:=/opt/OpenBLAS/include
BLAS_LIB:=/opt/OpenBLAS/lib
7、在/caffe_master
目录下进行编译操作:
sudo make all -j4
sudo make pycaffe -j4
sudo make test -j4
sudo make runtest -j4
8、caffe安装错误集锦:
1、在执行sudo make all -j4
命令时,出现如下错误:
/usr/bin/ld: cannot find -lcblas
/usr/bin/ld: cannot find -latlas
问题是缺少atlas库文件,所以执行sudo apt-get install libatlas-base-dev
,问题解决。
2、执行sudo make runtest -j4
命令时出现错误:
error while loading shared libraries: libcudart.so.6.5: cannot open shared object file: No such file
执行如下命令即可解决:
sudo cp /usr/local/cuda-6.5/lib/libcudart.so.6.5 /usr/local/lib/libcudart.so.6.5
sudo ldconfig
sudo cp /usr/local/cuda-6.5/lib/libcublas.so.6.5 /usr/local/lib/libcublas.so.6.5
sudo ldconfig
sudo cp /usr/local/cuda-6.5/lib/libcurand.so.6.5 /usr/local/lib/libcurand.so.6.5
sudo ldconfig
最后进行caffe测试操作。
安装测试Onboard SDK
硬件连接
以M100为例,使用M100串口(本次使用UART_CAN2)与妙算相连,使用原装6p线。使用USB数据线将电脑与M100连接。
软件操作
一、准备工作
1、首先在大疆开发者模块上新建一个APP获取APP ID 和 APP key。
2、安装大疆模拟器DJI PC Assistant 2及驱动。
3、先进行APP仿真测试。
二、安装OSDK(Onboard SDK)
1、下载OSDK.
2、解压并进入解压文件夹,执行命令如下:
unzip Onboard-SDK-3.2.zip
cd ~/Onboard-SDK
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目录下。
unzip Onboard-SDK-ROS-3.2.zip
6、build
cd ..
catkin_make
7、source一下(十分重要,每次运行样例前都要先进行一下此命令)。
source devel/setup.bash
8、
编辑App ID、波特率、Key和端口名称
rosed dji_sdk sdk_manifold.launch
或者直接在dji_sdk/launch/ 目录下编辑sdk_manifold.launch文件。
9、运行样例
要启动dji_sdk需要先启动sdk_manifold
roslaunch dji_sdk sdk_manifold.launch
然后打开新的终端输入:
source devel/setup.bash
roslaunch dji_sdk dji_sdk_client.launch
over!!!
1、回退版本
2、从回复模式可以启动
3、UUID冲突
4、执行命令fsck -> 回车 -> y
妙算新系统配置
mkdir mcc
sudo mount /dev/mmcblk1p1 /home/ubuntu/mcc
sudo chmod -R 777 /mcc
cp -r mcc/package Download/
cd Download/package
python logout.py
python login.py
sudo apt-get update
sudo apt-get dist-upgrade
sudo ./install.sh
sudo apt-get install python-rosdep
sudo rosdep fix-permissions //使用此命令来进行初始化操作而不要使用 sudo rosdep init
rosdep update //命令前不要加sudo,会造成执行ros时无权限报错
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall //rosinstall命令是一个使用的非常频繁的命令,使用这个命令可以轻松的下载许多ROS软件包。
具体解释见妙算安装文档
闲杂问题:
ubuntu software updater 意外关闭
在终端输入以下命令即可:
sudo apt-get update
sudo apt-get dist-upgrade
ubuntu 中 rc.local文件中命令开机不执行
在Ubuntu中配置开机启动的命令,有很多方式,在rc.local中配置是比较简单方便的一种,但是配置完后,却发现配置的sh脚本始终不执行,开始怀疑是rc.local没执行,用echo打印了些信息,发现都执行了。网上查询诸多解决方案,最终发现是有shell的问题造成的。有些命令需要在bash shell中运行,而不能在dash中运行。
因为从Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNUBourne-Again Shell). 但Login Shell还是bash。使用SHELL
命令查了下,看到/bin/sh链接到了/bin/dash,而/etc/rc.local脚本中用的正是/bin/sh,导致命令无法运行。
解决方案:
1.将/etc/rc.local的命令改成更加兼容的模式,将"#!/bin/sh"改为"#!/bin/bash"
2.将/bin/sh重新链接到/bin/bash,方法如下:
方法一:终端执行 sudo dpkg-reconfigure dash,然后选择 no.
方法二:重新进行软链接,执行以下命令:
sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh
这样就将/bin/sh链接到了/bin/bash。reboot系统后,命令正常执行。
参考链接:http://blog.csdn.net/benbenxiongyuan/article/details/58597036
Ubuntu find命令查找磁盘大文件用法
全盘查找大于1G的文件
sudo find / -type f -size +1024000k -exec du -h {} ;
查找当前目录下大于10MB的文件
find . -type f -size +10000k -exec ls -lh {} ; | awk ‘{ print $8 “: ” $5 }’