自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 2、找sci文献

如找中科院二区以上的通信或网络领域的文献①先找期刊方向

2021-10-06 10:26:39 477

原创 1、CST2020安装注意

一、license.dat的修改①DESKTOP-(英文字母)+数字或者其他字母,注意总长和是否与其他计算机同名,重启计算机;②将该修改后的计算机名复制到license.dat替换SERVER后面的计算机名。二、不能正常执行CST2020_Patch.bat的命令有时不能直接执行该命令,那么可以选择在cmd中手动进入该文件所在的路径然后再手动执行该命令。然后如果仍旧不能执行成功,就做如下的检查。①检查编码格式是否正确②检查路径写法是否正确...

2021-04-10 09:25:12 4635 1

原创 14、TX2上运行YOLO5

一、下载yolov5、tensorrtx,yolov5s.pt预备基础环境:python3torch1.7或者更高1、生成权重文件(可以在pc上或者是在TX2上生成都可以)1、在TX2的终端直接输入下面的命令git clone https://github.com/wang-xinyu/tensorrtx.gitgit clone https://github.com/ultralytics/yolov5.git2、下载yolov5s.pthttps://github.com/ultra

2021-03-24 21:23:38 1950 1

原创 13、TX2安装ROS和ORB-SLAM2

文章目录一、安装ROS1、安装工具2、换源处理3、安装ros4、配置ros环境(1)添加ros功能包(2)切换Python版本(3)初始化ros(4)设置环境变量,添加启动项(5)安装其他依赖包5、测试ros是否安装成功二、配置ORB-SLAM2运行环境1、创建ROS工作空间2、安装Pangolin3、安装OpenCV,TX2不需要安装,刷机自带。4、安装Eigen3三、安装ORB-SLAM21、安装和修改2、编译一、安装ROS1、安装工具因为TX2上缺少一些工具,下面安装一些必要的工具。sudo

2021-02-26 19:53:22 306

原创 12、TX2(ARM架构)平台换源

关于换源的教程可参考一下其他博主的两篇文章:ARM架构换源Ubuntu 国内源介绍针对本机的换源操作如下:①进入配置目录cd /etc/apt②备份sources.listsudo cp sources.list sources.list.baksudo vi source.list把之前的内容删除掉,然后添加清华源。# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ub

2021-02-26 11:58:27 513

原创 1、文献引用(用NoteExpress)

一、软件下载下载地址此处本人选择的是个人版,似乎刚注册完有一个月的会员可以送二、NoteExpress的使用1、导入本地文献文件,并且更新题录1、新建数据库2、然后右击题录,导入文件3、导入文件后,选中所有文件,然后更新题录,更新有自动更新、智能更新、和手动更新,刚开始我们是自动更新,如果不能够自动的智能更新,则我们要选择手动更新。如果不能手动更新(数据库不齐的原因),我们到4的步骤。4、采用网络搜索的方式,英文的可以到如下的数据库:百度学术、谷歌学术、https://www.nelit

2021-02-26 00:59:08 6836

原创 11、嵌入式平台上python环境管理

文章目录一、python的安装和版本切换1、安装python以3.6版本为例2、版本切换二、Archiconda管理环境1、备份2、脚本下载3、启动脚本4、配置Archiconda5、conda添加清华源6、conda设置超时7、conda常用命令一、python的安装和版本切换1、安装python以3.6版本为例①安装pyhton3.6sudo add-apt-repository ppa:deadsnakes/ppasudo apt-get updatesudo apt-get instal

2021-02-23 18:56:28 273

原创 4、python常用库

一、Numpyimport numpy as npa = np.array([1,2,3,4])b = np.array([[1,2,3,4]])c = np.array([[1,2,3,4],[5,6,7,8]])d = np.array([[1,2,3],[5,6,7],[9,10,11]])print(a.size)print(b.size)print(c.size)print(d.size)print(a.shape)print(b.shape)print(c.shape

2021-02-09 11:01:42 170

原创 8、#error、#warning、#line的使用

一、这三类预处理器指示字的作用①#error message,用于自定义一条编译错误信息,其中message不用双引号;②#warning message ,用于自定义一条编译警告信息,语法和①同;③#line number filename ,其中filename可以省略,它的本质是重定义__LINE__和__FILE__,用于强制指定新的行号和新的文件名,并对源程序的代码进行重新编号,现代工程代码中较为少用,了解即可。二、为什么要使用这些指示字既然是指示字,当然也就是为了起指示作用,也就是

2021-02-05 11:33:09 559

原创 7、条件编译使用分析

文章目录一、条件编译的作用1、如何工作2、如何在命令行中进行代码调试3、如何避免头文件的重复定义(1)概念(2)如何解决4、实际工程中条件编译的其他作用二、总结一、条件编译的作用1、如何工作它是预编译指示指令,用于控制是否编译某段代码,下面我们通过一个例程来看看它的内部是如何工作的。//#include<stdio.h>#define C 1int main(){ const char* s =NULL; #if (C==1) s="first\n"; #else

2021-02-04 10:40:41 331

原创 6、正确的使用宏

一、c语言中的宏定义1、基本概念#define是预处理器处理的单元之一#define定义的宏可以出现在代码中的任何位置#define定义之后的代码都可使用该宏2、本质#define定义的宏常量本质上是一个字面量,下面我们用一个例子来了解他的基本概念和本质。注意下面没有加标准输入输出的头文件。#define ERROR -1#define PATH1 "D:\test\test.c"#define PATH2 D:\test\test.c#define PATH3 D:\test\

2021-01-11 16:26:57 332

原创 2、遇到无法sudo apt-get出错处理

如遇到以下的情况E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? 1、找到并且杀掉所有的apt-get 和apt进程①首先寻找进程号ps -A | grep apt②杀死对应的进程号

2021-01-11 10:57:38 532

原创 10、yolo4直接部署到TX2上

一、YOLO-v4主要做了什么?YOLO-v4算法是在原有YOLO目标检测架构的基础上,采用了近些年CNN领域中最优秀的优化策略,从数据处理、主干网络、网络训练、激活函数、损失函数等各个方面都有着不同程度的优化,虽没有理论上的创新,但是会受到许许多多的工程师的欢迎,各种优化算法的尝试。工业级别的目标检测关注的不仅仅是精度,还有速度,能达到实时是最理想状态,一般来讲,目标检测实时大于12.5fps被认为是实时,下面用TX2来测试看能不能达到实时的效果。二、在TX2上的实验1、下载源码git clon

2021-01-03 20:01:50 1044 6

原创 9、yolo3直接部署到TX2

一、将YOLOV3直接部署到TX2上1、运行在CPU模式下(1)下载和编译YOLOV3源码git clone https://github.com/pjreddie/darknet yolo3cd yolo3sudo make -j4(2)下载预训练模型权重文件wget https://pjreddie.com/media/files/yolov3.weights #可能会出下下载很慢的情况可以直接将网址粘贴至windows下的浏览器,可直接下载,然后再将该文件放到TX2的工程目录下。

2021-01-03 15:58:38 714 3

原创 15、pkg-config的使用

一、pkg-config是什么?用于获得某一个库/模块的所有编译相关的信息,简单的说pkg-config 维护了一个保存各个代码库的路径的数据库。当然这个”数据库” 非常的简单,其实就是一个特殊的目录,这个目录中有一系列的以 “.pc” 为后缀的文件。 pkg-config opencv4 --libs --cflags二、为什么需要pkg-config?上面显示了opencv的头文件和库的所有信息,那么这有什么用呢?所有用opencv的其他程序,在编译时,只需要写“pkg-config ope

2021-01-02 22:10:17 252

原创 14、静态和动态链接、环境变量

一、静态链接和动态链接的基本概念1、引入程序由源代码变成可执行文件,一般可以分解为四个步骤,分别是:①预处理(Prepressing):预处理过程主要处理源代码中以“#”开始的预编译指令;②编译(Compilation):编译过程把预处理完成的文件进行词法、语法、语义等分析并产生相应的汇编代码文件;③汇编(Assembly):汇编过程将汇编代码文件翻译成机器可以执行的目标文件;④链接(Linking):链接过程将汇编生成的目标文件集合相连接并生成最终的可执行文件。如我们对一个hello.c文件

2021-01-02 16:59:18 471 2

原创 5、枚举

一、枚举1、基本概念三个的关系:枚举类型、枚举值、枚举变量enum工具提供了另外一种创建符号常量的方式,某种程度上可代替const的作用。enum spectrum {red,orange,yellow,green,blue,violet,ultraviolet};spectrum:枚举,可以看作是一个新类型的名称red,orange,yellow,green,blue,violet,ultraviolet:符号常量,对应的值为0-7,当然可以自定义初始值,没定义值的时候,默认后面比前面大1

2020-12-15 15:05:47 121

原创 8、使用PyTorch

一、安装PyTorch1、下载与安装安装教程可以参考这个网址wget https://nvidia.box.com/shared/static/wa34qwrwtk9njtyarwt5nvo6imenfy26.whl -O torch-1.7.0-cp36-cp36m-linux_aarch64.whl因为国内无法访问到box.com,所以我们需要从其他的地方下载。网盘地址密码:u5091、针对python3.6版本sudo apt-get install python3-pip libop

2020-12-10 17:03:08 618

原创 3、动态绑定属性和方法

1、动态绑定属性和方法正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。#给对象绑定属性class Student(object): def __init__(self): self.age=10 self.score=90s1 = Student()s2 = Student()s1.name = "liu"print(s1.name)#给对象绑定方法,但是只对当前实例起

2020-12-10 14:40:25 494

原创 7、Hello World官网教程(TX2)第二部分

上面那一部分是讲图像分类,下面开始学习该教程中的目标检测。一、准备工作1、下载SSD-Mobilenet-v2预训练模型二、验证1、对图像的处理cd ~/jetson-inference/build/aarch64/bin确定是否存在编译c++文件生成的可执行文件。下面是一些可用的选项:–network,用于更改正在使用的检测模型(默认为SSD-Mobilenet-v2)。–overlay,可以是逗号分隔的组合box,labels,conf,和none,默认值为–overlay=box

2020-12-06 17:18:49 332 1

原创 6、Hello World官网教程(TX2)第一部分

一、准备工作1、首先你得给你的TX2 刷好机,而且最好刷最新版本Jetpack4.4.1(因为本人刷过3.3的版本,运行代码时会出现很多的问题)2、教程原地址二、正式的学习1、该教程做了哪些(1)此仓库使用NVIDIA TensorRT将神经网络有效地部署到嵌入式Jetson平台上.(2)在Jetson上运行推理和转移学习,包括收集自己的数据集和训练自己的模型。它涵盖了图像分类,对象检测和分割。2、从源头开始构建项目(1)总体的执行过程$ sudo apt-get update//更新安装

2020-12-05 22:42:18 493

原创 1、jetonson inference(官网教程)(使用jetpack3.3不建议参考,解决问题的思路倒是可以随便看看)

本人在前面的学习中走了一些弯路,此处开始以官网资料为准,下面开始学习官网提供的教程,叫做HELLO AI WORLD,github的网址。在进行这个项目之前请先为您的TX2刷好机,本人使用的是Jetpack 3.3,刷机过程可一参考本人的另外一篇博客,链接在这里一、从源头建设项目仓库提供了一个TensorRT加速的深度学习网络库,用于图像识别,带有局部化的对象检测(即边界框)和语义分割,下面是构建和安装步骤。在终端上输入如下的命令行。1、构建与安装sudo apt-get update#更新安装

2020-12-04 22:26:23 357

原创 5、jetson tx2 用sdkmanger刷机(jetpack4.4.1)

一、去哪里下载,如何安装?官方安装指南注意:1、下载安装包之前要先注册一个开发者账号2、要在Ubuntu环境下到官网进行安装(这点很重要,因为在windows环境下下载的安装包总是有问题)3、然后在打开终端,输入如下命令sudo apt install ./sdkmanager_1.3.1-7110_amd64.deb4、打开终端,运行sdkmanager,输入下面的命令sdkmanager然后您可能会遇到这个窗口,这是提醒您内存不够用,所以我们得对虚拟机再扩大下内存。扩完内存后,

2020-12-04 16:11:26 945

原创 2、Jetson平台软件资源功能测试

一、基本功能测试1、性能模式调节nvpmodel是修改功率模式的命令-q 查询当前工作模式-m 设定当前工作模式(Jetson TX2可以设定0-3档)其中0档是最佳性能模式。2、

2020-11-19 15:28:17 471

原创 4、windows与jetson tx2文件互传工具

filezilla工具的使用工具链接1、修改下防火墙设置,允许应用2、打开filezilla在TX2的Ubuntu上配置一下,连接服务器,输入主机即PC端的IP,然后进行相应的配置,即可实现文件互传了

2020-11-19 15:06:33 780

原创 3、从零开始实现图像分类

一、NVIDIA Caffe介绍Caffe是由伯克利人工智能研究小组和伯克利视觉和学习中心(BVLC)开发的,基于表达、速度和模块性的深度学习框架。Caffe在伯克利软件发行(BSD)许可下开源,NVIDIA Caffe是NVIDIA维护的一个分支,这个分支专门针对NVIDIA的GPU进行优化,尤其是在GPU环境下租了很多相关的配置,比起BVLC的性能更加的好。二、安装Protobuf在安装NVIDIA Caffe之前,需要安装很多的依赖库,其中之一就是Protobuf,Protobuf是一种与平台

2020-11-18 14:26:34 560

原创 2、海龟绘图

turtle是python的一个标准库,无需安装,可以直接导入使用,这只是一个绘图工具,不用去记忆各个函数,去查pyhton的手册即可,python手册网址1、绘制螺旋曲线import turtle#导入模块turtle.bgcolor("green")#设置背景颜色t=turtle.Turtle()#创建一个海龟对象color = ["red","black","white"]#用列表存放铅笔的颜色值for i in range(0,200,4)://前进值为4 t.pencolor(

2020-11-09 10:35:40 412

原创 1、jetson tx2刷机

在刷机之前,需要确保你的主机有足够大的空间,最好在40g以上,本人分配的空间刚开始为20g,后来调整到了40g。如何调整硬盘空间大小,可参考我的另外一篇博客,链接在此处。一、下载JetPack 3.3安装文件1、官方下载地址2、在官网上注册账号3、下载和安装JetPack 3.3①进入官网后,打开搜索栏目,输入如下信息。②下载完成后,将JetPack-L4T-3.3-linux-x64_b39.run文件拉到Ubuntu系统下面的home目录下。③在终端下给这个文件添加可执行权限,然后执行该

2020-11-04 17:00:48 305 4

原创 13、Ubuntu空间不够用该如何扩容

一、安装gparted工具1、安装命令sudo apt-get install gparted2、打开该工具sudo gparted3、关闭交换分区交换分区的作用:用来做虚拟内存,当内存有限时,硬盘被用来做虚拟内存,把一些暂时不需要的内存信息存储到硬盘,当我们需要的时候在从硬盘里面读出来。鼠标右键交换分区,选择swapoff。4、删除交换分区鼠标右键交换分区,然后选择delete5、扩展分区此处是扩展sda2,是将未分配空间合并到sda2上。6、新建交换分区大小为975m(可

2020-11-03 18:02:00 1643

原创 12、Ubuntu的安装

1、首先安装一个VMware2、然后去Ubuntu官网下载镜像,网址是这个desktop版本3、可以选择16.04或者18.04选择其中之一个(看自己需求)这个是运行在虚拟机上面的版本。4、打开VMware,进行如下配置。使用默认选项,下一步。稍后安装系统,下一步。选择LINUX,并且选择Ubuntu64位,下一步。此处默认即可,所以下一步,最后完成配置。浏览后按确定即可,然后就可以启动该虚拟机了。上面都是默认下一步。安装完成后系统的显示页面会很小

2020-11-03 10:00:21 219

原创 12、Gazebo的安装问题

一、Gazebo的安装问题1、安装的官网的网址:http://gazebosim.org/tutorials?cat=install&tut=install_ubuntu&ver=9.02、安装注意事项:安装前1、Ubuntu系统版本和Gazebo的版本要对应的上,版本对应关系如下所示:Ubuntu 14.04 Trusty Tahr - ROS Indigo Igloo - Gazebo 2.X 2014-2019Ubuntu 16.04 Xenial Xerus - RO

2020-10-22 11:14:12 2457 4

原创 11、ros依赖包安装问题

一、问题在ROS编译过程中经常会遇到找不到ROS包的情况,那么一般情况下该如何解决问题呢?我们通常用apt来进行安装,实际上有时候apt在处理依赖关系上是没有aptitude那么智能的,所以我们可以尝试安装aptitude这个工具,来重新尝试下安装。aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中

2020-10-22 11:12:18 1028

原创 10、从零开始写URDF模型

此文编写参照古月居的课程,如有错误之处,欢迎指正。一、机器人的组成从控制的角度来看,机器人的组成如下框图所示:下面是四个系统之间的关系控制系统可以是可以基于x86或者是ARM平台,一般用来完成信息处理,控制系统下发命令给到驱动系统,然后驱动系统将控制系统下达的命令转换成执行机构需要的信号,最后驱动执行机构,从而作用到工作对象中,这里的工作对象是指机器人本身,但是单有执行不行,机器人还得感知周围的环境,所以还有一个传感器系统,而传感器系统又分为外部传感器系统和内部传感器系统,内部传感器系统主要检测

2020-10-21 16:01:36 3350 3

原创 9、常用可视化工具的使用

一、QT工具箱1、rqt_console可以收集系统里的日志信息,可用于调试,如下面我们可以让小海龟碰墙,那么这个控制台中就会收集到一些警告信息2、rqt_plot用来绘制数据曲线,也可以用作观察调试使用选择小海龟的位置信息,效果图如下:3、rqt_image_view图像渲染工具,用来显示摄像头图像4、rqt它是一个综合工具二、rviz机器人开发过程中的数据可视化界面,在终端输入rviz就可以打开这个工具,如下图所示。Rviz是一款三维可视化工具,可以很好的兼容基于R

2020-09-26 17:34:43 548

原创 8、launch启动文件的使用方法

一、为什么需要launch启动文件传统启动节点的方法:每启动一个节点都要打开一个新的终端运行一个新的命令,当系统中的节点数量许多时,显然是很不方便的,而且命令的输入也可能会发生错误。launch启动文件的引入:可以同时启动多个节点,并且可以自动启动ROS Master节点管理器以及实现每个节点的各种配置,为多个节点的操作提供很大的便利。二、launch文件语法launch文件中的根元素采用标签定义。1、启动节点pkg:节点所在的功能包名称type:节点的可执行文件名称name:节点运行时

2020-09-26 16:41:53 2626 1

原创 7、tf坐标系的广播与监听

一、对tf的了解一个机器人中通常有多个坐标系,如世界坐标系、基座坐标系、夹具坐标系等等,这些坐标系在tf中构成坐标树,tf通过坐标树维护多个坐标系之间的坐标变换,ros坐标系可以在分布式系统中进行变换,这意味着坐标对所有的节点都是可用的,同时所有订阅tf消息的节点都会缓存一份所有坐标系的变换关系数据,而不需要中心节点来存储。1、TF功能包能干什么?五秒钟之前,机器人头部坐标系相对于全局坐标系的关系是什么样的?机器人夹取的物体相对于机器人中心坐标系的位置在哪里?机器人中心坐标系相对于全局坐标系的位置

2020-09-26 11:39:21 1173

原创 6、服务数据的定义和使用

一、服务数据模型二、具体实现步骤1、首先现在功能包中创建一个srv的文件夹,然后在改文件夹下新建一个以.srv为后缀的文件,所举例的该文件的具体内容如下:string nameuint8 ageuint8 sexuint8 unknown = 0uint8 male = 1uint8 female = 2--- //三条横线上方是请求信息,三条横线下方是响应信息string result2、在package.xml中添加功能包依赖<build_depen

2020-09-19 09:39:44 647

原创 5、服务端server的编程实现

一、服务模型二、具体实现步骤1、代码实现思路:初始化ROS节点;创建Server实例;循环等待服务请求,进入回调函数;在回调函数中完成服务功能的处理,并反馈应答数据。2、具体代码/*** 该例程将执行/turtle_command服务,服务数据类型std_srvs/Trigger */#include <ros/ros.h>#include <geometry_msgs/Twist.h>#include <std_srvs/Trigger.h>r

2020-09-18 22:36:34 276

原创 4、客户端client的编程实现

一、创建功能包$ cd ~/catkin_ws/src$ catkin_create_pkg learning_service roscpp rospy std_msgs geometry_msgsturtlesim二、配置CMakeLists.txt中的编译规则1、设置需要编译的代码和生成的可执行文件;2、设置链接库;add_executable(turtle_spawn src/turtle_spawn.cpp)target_link_libraries(turtle_spawn

2020-09-18 18:29:26 320 1

原创 3、话题消息的定义和使用

ROS节点之间进行通信的最重要机制是消息传递,为了在不同的开发语言实现的模块间进行消息通信,ROS利用了简单的、与开发语言无关的接口定义语言来描述模块间传递的消息在ROS中,消息本质上是一种节点间传递信息的数据类型,当节点想要分享信息时,节点可以发布消息到相应的话题中,当节点需要接收信息时,节点可以订阅相应的话题。节点管理器会确保消息传递的互通性,但消息不需要经过节点管理器进行转发。ROS提供了很多预定义的消息类型,但开发者可以通过后缀名为msg的消息文件自定义消息类型,msg文件应放置在程序包的msg目录

2020-09-18 15:49:41 606

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除