技术标签: cuda manifold 安装环境 opencv jetson 要点初见
此文初写于2017.3.12,因为当时反复对妙算Manifold、Jetson TK1刷机因此总结出了一套套路……嗯,如今年末整理一波。
妙算是大疆无人机上的机载miniPC,其中的核心板是NVIDIA的嵌入式视觉板Jetson Tegra K1。网上关于妙算环境配置的博文特别少,TK1的比较多,本文中关于妙算的配置部分是笔者在参考网上TK1的配置方法摸索总结出来的。Jetson Tegra K1的环境安装有两种方法,一种是在一台装有Linux系统的X86电脑(不能在ARM平台)上运行对应Jetson TK1版本的Jetpack,将电脑与TK1连接到同一联网的路由器上,进行自动安装;另一种是在ubuntu中用命令手动安装配置这些环境。也许在TK1快过时,大疆半放弃manifold,大家都换装Jetson TX2的当下,TK1与manifold的配置不受关注,但笔者还是打算记录一下半年前的这套顺畅的两小时配置流程。
一、安装主要项
1、CUDA6.5
2、OpenCV3.1.0
3、ROS-Indigo
4、codeblocks和CUDA的nvcc编译器
二、环境配置须知
1、这是经过四台妙算和一台Jetson Tegra K1环境配置后得到的通用环境配置方法,大部分操作都可原样复制;
2、若出现此处未提到的问题,可通过简单的百度直接解决;
3、若遇到的问题较复杂,可猜测这台妙算(或Jetson TK1)之前进行过一些操作,考虑重新刷机后重新用此处的方法进行配置:
妙算刷机包官方下载链接:https://dl.djicdn.com/downloads/manifold/manifold_image_v1.0.tar.gz
Jetson TK1刷机包:用Jetpack3.0(推荐,注意不要用更新的版本的jetpack,因为里面不包含TK1)或者按这位博主写的操作:http://blog.csdn.net/deyili/article/details/51011836;
4、文件放到妙算或Jetson上后其中的中文很可能是乱码,火狐浏览器自带的必应搜索大概率提供国外论坛,所以还是学好英语(嗯……并使用百度网页翻译)最重要;
三、刷机流程
(需联网,熟练后时间大概只需两个小时)
1、更换妙算或Jetson中自带的更新源(自带的源居然不是ARM源,若更新会出错,更换成国内的ARM源后速度飞快):(1)在“终端”中输入:sudo gedit /etc/apt/sources.list
因为使用了sudo,系统会要求输入密码,妙算或Jetson的初始密码是ubuntu,输入密码的时候linux系统不会显示你输入了什么,仿佛什么都没输入一样。
如果保守也可以先 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup来备份原来的更新源;不想用gedit简单地编辑文本的话,也可用sudo vi /etc/apt/sources.list通过VIM编辑文本。(此处需自学Linux中vim的使用,之后的修改环境变量处也要用到;简单说就是光标移到需要修改的地方,按下o或者a进行修改,修改后按esc,再输入:wq完成保存退出返回到命令窗口)
(2)把打开的窗口中所有的内容删去,并替换成:
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main multiverse restricted universe
保存并关闭窗口,回到命令窗口。
(3)在“终端”中输入:sudo apt-get update
3、输入sudo apt-get install codeblocks codeblocks-contrib geany
(1)其中codeblocks(以上操作下载到的版本截至2017.3.12为13.12)是妙算编程中不得不使用的一个自动补全有BUG,添加编译器需要用sudo codeblocks打开并修改否则关闭后配置就无效的IDE(修改注释的颜色后,注释能够折叠;通过右键左侧项目名,选择build option来进行第三方库路径的添加(比如opencv));若想用QT,需要编译非常长的时间,同时也会被占用了非常大的空间,而且运行相同的程序速度比codeblocks要慢,环境变量不易输入。eclipse则没用过,也没见网上有人在arm上用过;
(2)codeblocks-contrib是codeblocks的扩展功能包,其中双击变量名或者API能够同时标红所有同名内容的功能特别好用;
(3)geany是仿造编译器文本的txt文档管理器,方便用codeblocks编程时查看其他的.cpp内容(codeblocks里同时打开两个codeblocks项目会很混乱)。
4、 安装CUDA6.5(20分钟)
++先介绍一个快速cd到某目录的简易方法:输入cd空格后,将对应目录的文件夹拖动到终端中,回车。妙算和jetson外的系统不一定有这个功能(比如笔者虚拟机里的ubuntu)
(1)cd到CUDA6.5下载包所在目录,在终端执行命令:sudo dpkg -i cuda-repo-l4t-r21.2-6-5-prod_6.5-34_armhf.deb(后部可按Tab自动补全,此功能妙算、Jetson自带);
(2)在终端执行命令:sudo apt-get update,若无此步,后几步很可能会出现谜之问题;
(3)在终端执行命令:sudo apt-get install cuda-toolkit-6-5(此步需要下载1G文件,请确保有足够空间且网络畅通)
在终端执行如下命令:5、 安装OpenCV3.1.0(40分钟)
OpenCV是一个当下非常火热的开源视觉库,大量地应用于工业领域。近来随着大数据、人工智能的火热,更是成为视觉算法的掌上明珠。
TK1可以使用Jetpack提供的TK1专用的OpenCV4Tegra2.4.10.2,但需要用Jetpack自动安装(且需勾选Jetpack中的所有选项),若自行用命令行安装OpenCV4Tegra,则会出现一修改摄像头分辨率就报错,且无法修改默认的640*480分辨率的问题(因为OpenCV4Tegra没有交叉编译V4L);
OpenCV3.0.0太原始且安装出错问题多;更高版本的OpenCV没试过。具体操作如下:
(1)在终端中输入:
sudo apt-get update(养成及时更新的好习惯)sudo apt-get install git checkinstall pkg-config libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libv4l-0 python-numpy libgtk2.0-dev v4l-utils libeigen3-dev libdc1394-22-dev(注意千万别在此处下载TBB的包,会出现无法自动添加IT的迷之问题,需要-Wa之类至今没搞懂,只有英文论坛资料的解决方法)
(2)漫长的编译时间
在终端中输入:cmake-gui(千万别sudo cmake-gui,不然cmake的全部文件都会带上权限……你会哭出来的)
若是万事俱备,在终端中输入:
make -j4(妙算或Jetson TK1就四核CPU,若输入make -j,你的ARM很可能会自动关机;此处需要至少30分钟)ROS是一个用于集成传感器信息的机器人系统,当下机器人、无人机、无人驾驶都会用到该系统,甚至深度学习的python模型也可以通过ROS实现与C++的关联,从而移交OpenCV进行后续处理。
此处主要参考http://www.jianshu.com/p/997ede860d74中所述的方式(绝不能照搬):
(1)在终端中输入:
sudo apt-get install gitcd installROS
(2)复制一份installROS.sh,并命名为installROSModified.sh。打开installROSModified.sh,千万不要更改源,仍使用默认源。在Environment Setup中添加:
#Using RVIZ添加在source ~/.bashrc前一行,保存关闭。
(3)在终端中的该目录下输入:./installROSModified.sh,若出现Pemission Denied的问题,则输入sudo chmod a+x installROSModified.sh给予权限后,./installROSModified.sh。(其他地方出现./*权限不足时也可用该方法解决)
(4)最后新打开一个终端(在终端上右键,New Teminal),输入roscore,若显示版本则表示安装成功。若显示Command no found,则说明你的内心不够虔诚……在~/.bashrc末行输入source /opt/ros/indigo/setup.bash,保存关闭source ~/.bashrc后再来一次roscore。
如果你的内心足够虔诚,你可以选择在ROS安装成功后,在终端中再输入sudo apt-get install ros-indigo-urdf ros-indigo-urdf-parser-plugin ros-indigo-urdf-tutorial ros-indigo-urdfdom-py ros-indigo-navigation ros-indigo-navigation-layers ros-indigo-depthimage-to-laserscan ros-indigo-openni* ros-indigo-kobuki* ros-indigo-turtlebot-bringup ros-indigo-turtlebot-create,绝对会有某三个库出错的,可惜笔者内心不够虔诚,,就一直没去找解决方法……
(5)ROS真的对你那么好?你输入sudo apt-get update也许就能发现 ROS可能破坏了你的更新源,那么你需要在终端中输入:方法主要源自http://blog.csdn.net/fdqw_sph/article/details/53787658,本文此处大部分搬运自原文。
请在sudo codeblocks下操作,否则你创建的新编译器活不过你下一次的codeblocks启动!(这一点全网一个字都没提到过,是某位大神的探索成果,配置者也如淋甘霖)
注意: 项目的Build Options中,一定要把编译器选择为新建的CUDA NVCC Compiler,否则将还是使用普通的C/C++编译器来编译项目。修改后,整个项目的所有代码将首先通过nvcc编译器,nvcc会作出判断该文件是C/C++文件还是cu文件,如果是C/C++代码文件,nvcc会自动将该文件转交给GCC处理,如果是cu文件,nvcc会按照nvcc编译规则,分离其中的host和device代码,然后进行编译。如果对nvcc编译过程的细则感兴趣,请参考NVIDIA的 《nvcc_版本号.pdf》,该文档在NVIDIA CUDA网站 有下载,也可以在安装的CUDA路径中的doc文件夹中找到。
等等。
欢迎指正!
压缩包 : AmbulanceEmergency.zip 列表AmbulanceEmergency/AmbulanceEmergency/.classpathAmbulanceEmergency/.projectAmbulanceEmergency/AndroidManifest.xmlAmbulanceEmergency/assets/AmbulanceEmergency/bin/Ambulan...
大一下学期的时候做的一个智能小车寻迹的项目,还是很成功的。当时我负责的是部分的焊接、硬件组装以及全部的代码改写工作,的确付出了很多心血。最后测评的时候老师给了优。总之还是很不错的,记录一下。一、基本功能描述:1、基本循迹功能(红外)2、基本避障功能(红外)3、改良横跨黑线的功能(用于十字路口或横向黑线干扰)4、改良转直角弯的功能(通过前后轮的差速顺畅通过直角弯)5、遥控转换模式功能6...
//The sum of the squares of the first ten natural numbers is, //12 + 22 + ... + 102 = 385 //The square of the sum of the first ten natural numbers is, //(1 + 2 + ... + 1
文章目录算术运算符赋值运算符比较运算符特殊的比较逻辑运算符not 逻辑-->⾮and 逻辑-->与or 逻辑-->或条件运算符条件判断:单向if双向if else多向判断if elif elseif条件嵌套算术运算符赋值运算符+= (x+= 3 相当于 x = x + 3 )-= (x -= 3 相当于 x= x - 3 )*= (x = 3 相当于 x = x 3 )**= (x **= 3 相当于 x = x ** 3 )/= (x /= 3 相当于 x = x/ 3
日常@尊师: Fu Xianjun. All Rights Reserved.1.首先我们还是需要一张帅气的图片:将它放入文件夹内用openCV将其打开然后就可以敲代码了: import cv2#导包 img=cv2.imread('shape.png')#读取图片 cv2.imshow('src',img)#显示图片 height,width,_=img.shape#获取宽和高 b,g,r=cv2.split(img)#进行颜色通道的拆分 for a in
接上次问题,这次使用事件系统SimpleEventSystem,因为项目使用的是MVP设计模式,并且使用了UniRx 发现更好用首先写一个事件类,此类可以携带参数也可以不携带参数//打开折线图的事件 public class OpenLineChartEvent { public PanelEnum panelEnum; }然后在MainPanel里面注册事件//注册打开折线图的事件SimpleEventSystem.GetEvent<OpenLin
项目源码:[email protected]:linshutu/login_register.git项目流程搭建项目环境设计数据模型admin后台url路由和视图前端页面设计登录视图Django表单(综合前面的步骤)图片验证码session会话注册视图邮箱注册确认重用app1搭建项目环境--Python3.6.6--Django1.11.9--Bootstrap4...
在所在文件夹,创建一个仓库repository 命令: git initsourcetree 中用creat 按钮创建2. 每一次文件有改动, 则 需要git add <文件名> 对应sourcetree 点击暂存文件, 右边显示文件更改内容git commit -m "备注内容“ 对应sourcetree 下面方框写入备注内容(若选中立即推送变更到 origin/main, 则 git push 一起操作 )3.git push / pul.
版本必须对应:win7 64bit、Oracle client 64bit、python2.7 64bit、cx_Oracle才能安装成功、1. 安装Oracle client 64bit、设置ORACLE_HOME(安装路径)、TNS_ADMIN(tns.ora路径)2.pip install cx_Oracle,如有超时等情况可以使用国内镜像 如:pip install --inde
1、如下图,由于数据过多,横坐标的名称有的没有显示。2、解决办法,给option中加上dataZoom(滚动条)基本配置项 // 底部Zoom dataZoom: [ { show: true, realtime: true, height: 24, //这里可以设置dataZoom的尺寸 bottom: 8, //滚动体距离底部的距离 star
06/19刷题记录BUU+WEB+[SUCTF 2019]EasyWeb概要php异或计算绕过preg_match()参考上传.htaccess来getshell绕过open_basedir参考复现流程:审计代码有危险函数eval但是有过滤发现可以利用异或绕过preg_match();python异或脚本:def finds(s): list = [i for i in range(0, 32)] + [i for i in range(127, 255)]
链接题意:求ai∣(aj&amp;ak)a_{i} | ( a_{j} \&amp; a_{k} )ai∣(aj&ak)最大,i<j<k思路:一开始一直没有想法,后来看了一篇博客,才知道有sosdp这个东西。我个人感觉这道题目的写法有点像字典树,从n到1记录某种状态的数量,并且能够直接查询一个状态作为最终状态的数量,如果数量大于1,就说明至少有两...