自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_43066145的博客

星辰大海

  • 博客(44)
  • 收藏
  • 关注

翻译 ROS自学实践(15):ROS2控制仿真车辆

ros_controller

2023-02-04 20:24:04 1602

翻译 ROS2自学实践(14):ROS Control简介与使用

ROS Controller

2023-02-03 16:00:15 3509

原创 基于Bladerf_xa4的GPS攻击实验配置指南

1 安装gps-sdr-sim工具1.1 Windows安装(1) 从Github下载getopt.c,getopt.h,gpssim.c,gpssim.h文件(2) 启动visual studio 软件(3) 创建空的控制台应用程序(4) 在项目文件夹中将上述四个文件添加到visual studio解决方案资源管理器中,在解决方案配置中选择Release(5) 点击生成解决方案可执行文件gps-sdr-sim.exe(6) 找到gps-sdr-sim.exe所在路径,在命令行中打开该路径

2022-05-20 16:07:09 2094 2

原创 ROS自学实践(13):launch文件总结

launch文件launch文件简介创建launch文件步骤launch文件的书写(1) ros参数设置(2) arg参数设置(3) 启动一个ros节点(4)启动其他launch文件launch文件简介很久没有更新ROS系列的文章了,再一次使用ROS感觉忘记了很多,比如launch文件的书写,以前也没有认真记下,最近项目需要因此在这里进行总结,方便后期查看,也给各位一个参考。启动一个ROS节点,可以采用rosrun的方式进行,但是要同时启动多个节点,就需要roslaunch的方式,此外roslaunch

2021-07-08 10:59:31 408

原创 Leetcode第2题:两数相加

题目描述:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* dummy = new ListNode(-1);

2021-06-02 22:13:16 101

原创 李群与李代数的理解

前言机器人在二维或三维空间中的平移和旋转可以通过旋转矩阵R和平移向量t进行表示,对机器人进行定位或者状态估计就是求解R和t。定位或状态估计时,经常需要对以机器人位姿(R和t)为自变量的函数f(R,t)进行优化,不可避免地需要对R和t进行求导:f(x)˙=limΔx→0f(x+Δx)−f(x)Δx\dot{f(x)}=\underset{\Delta x\rightarrow0}{lim}\frac{f(x+\Delta x)-f(x)}{\Delta x}f(x)˙​=Δx→0lim​Δxf(x+Δx)

2021-03-15 08:53:42 3032

原创 Jetson nano一站式配置

Jetson在安装完成之后,往往需要进行配置才可以进行程序开发。主要的配置项目包括拼音输入法、换源、更换版本、安装SSH和VNC等。二、设置1.拼音输入法

2021-02-15 17:15:31 630

原创 python实践(4):ubuntu如何切换python环境

1.安装python和pipsudo apt install python3sudo apt install python3-pip2.pip换源cd ~mkdir .pipsudo vim ~/.pip/pip.conf输入以下内容:[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ [install]trusted-host = pypi.tuna.tsinghua.edu.cn3.更换软连接sudo

2021-02-13 10:51:30 264

原创 LaTeX学习笔记

前言LaTeX是常用的论文排版系统,利用此工具可以很方便地实现精美的文献排版。做一下学习记录,在学习过程中遇到的问题也将在这里持续更新。。。正文%导言区(用于全局设置)\documentclass{article} %book,report,letter\usepackage{ctex}\usepackage{graphicx}\graphicspath{{figures/}}\usepackage{amsmath}\usepackage{amssymb}\title{My Fir

2021-02-12 12:08:09 255

原创 Mendeley下载安装,导出参考文献以及自定义参考文献

目录一、Mendeley下载二、Mendeley导出参考文献到Word三、Mendeley自定义参考文献格式一、Mendeley下载Mendeley是一款免费、跨平台的文献管理软件。1.进入官网https://www.mendeley.com/search/需要认真注册一个账号。2.下载软件注:直接点击下载会很慢(不过应该也行),可以在红色区域点击右键→\rightarrow→复制链接→\rightarrow→粘贴到迅雷中下载。如果迅雷下载下来的安装包不能直接打开,将下载的文件名称后面加上

2021-02-08 12:28:27 26485 4

原创 Git学习笔记

1.Git结构和使用流程(1)开发人员开发程序时使用Git流程如下:#mermaid-svg-9VuWdK5nWJdvQLti .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-9VuWdK5nWJdvQLti .label text{fill:#333}#mermaid-svg-9VuWdK5nWJdvQLt

2020-12-22 19:28:35 167 4

原创 ubuntu下配置adb模块进入adb shell

1.安装adb工具sudo apt-get install android-tools-adb2.查找adb设备讲设备连接电脑的usb,输入lsusb

2020-12-18 17:01:28 1009 2

原创 ROS自学实践(12):visualization_msg消息中MarkerArray示例

1.前言在ROS中经常需要在rviz中输出各种结果的图像,例如在路径规划过程中的所有搜索过的栅格进行显示,展示出路径搜索的效率。这里将代码附在下面,方便以后查阅。2.代码示例#include <ros/ros.h>#include <visualization_msgs/Marker.h>#include <visualization_msgs/MarkerArray.h>#include <iostream>int main(int argc,

2020-10-20 20:53:55 5210 4

原创 自定义类的Boost堆排序

1.前言C++ STL标准模板库和Boost库都为我们提供了很好的堆的数据结构算法,利用这些算法,我们可以很高效地从一个堆中取出最大值或者最小值。本文采用的是binomial_heap二项堆,是一种利用特殊树结构实现堆排序的一种方法,这里不涉及数据结构的实现,只对该方法的实现做一个记录。2.使用#include <iostream>#include <boost/heap/binomial_heap.hpp>//设置需要排序的类class myheaq{public

2020-08-16 08:47:16 752

原创 python实践(3):Anaconda和Pycharm配置pytorch开发环境

一、Anaconda配置pytorch开发环境1.创建新的环境,命名为pytorchconda create -n pytorch python=3.6输入y安装相应的基础包2.进入pytorch环境conda activate pytorch3.在环境中安装pytorchconda install pytorch torchvision cpuonly -c pytorch4.在pytorch环境中安装jupyter环境conda install nb_condajupyte

2020-08-14 12:12:03 337

原创 ROS自学实践(11):利用map_server功能包创建自己的地图

1.前言在进行路径规划与仿真时,往往需要对我们的算法进行验证,有很多方式来进行,比如利用QT可视化界面进行仿真,如下图是自己利用QGraphicsview建立的一个仿真环境。也可以利用ROS中的地图工具来进行,本文尝试使用ROS的map_server工具包进行地图的建立。2.流程(1)安装navigation功能包,或者单独安装map_server功能包安装功能包时如果找不到功能包,添加一下中科大的镜像站,然后再下载sudo sh -c '. /etc/lsb-release &&amp

2020-07-28 21:29:54 7563 7

原创 Python实践(2):Pycharm+PyQt5搭建开发环境

前言在进行算法验证的时候,除了可以用matplotlib进行显示外,还可以结合PyQt丰富的界面类进行,可以实现交互式的验证。本节搬运自参考文献1,没有其他目的,只是为了以后忘记的时候方便查找。步骤1.安装PyQt5,pyqt5-toolspip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5-tools2

2020-07-13 20:58:40 247

原创 Python实践(1):创建虚拟环境导入Pycharm

前言Python为我们提供了丰富的库来进行软件的开发和验证,项目开发的时候,不同的项目常常需要不同的库,有时甚至需要用到特定版本的库,仅仅依赖本地的环境已经不能适应开发的需要,搭建虚拟环境,为我们提供了一个非常好的解决方案。步骤1.安装virtualenvpip install virtualenv2.创建虚拟环境cmd终端中,创建一个文件夹,进入该文件夹E:\python_works\python_virtual_environment_list\Astar_virtual_environ

2020-07-06 11:48:24 1175

原创 ROS自学实践(10):ROS节点同时订阅多个话题并进行消息时间同步

一、前言在进行SLAM建图或自动驾驶系统设计的过程中,往往涉及到多种传感器进行环境感知和信息采集,这就不仅需要一个节点接收多个传感器数据,还要求传感器数据的时间戳同步,这样才能实现环境数据的实时感知和处理。本文基于ROS操作系统,从C++和python两个角度进行试验,方便后续的开发工作。二、创建ROS包mkdir -p multi_receive/srccd multi_receive/srccatkin_create_pkg multi_receive roscpp rospy sensor_

2020-05-23 13:38:37 12111 21

原创 SLAM入门(4):非线性函数优化方法

一、前言激光SLAM建图主要分为两个部分,前端的激光里程计和后端的非线性优化,激光里程计参考当前帧和地图参考帧的帧间匹配算法来完成位姿估计[1]参考文献:1.https://blog.csdn.net/orange_littlegirl/article/details/89262501...

2020-04-29 13:41:25 847

原创 ROS自学实践(9):TF坐标变换实例解析

前言在进行SLAM建图或者自动驾驶系统开发的时候,往往需要多个传感器,比如激光雷达、相机、毫米波雷达、里程计等等,由于机器人本身具有自己的坐标系,每个传感器又有自己的坐标系,在建图的时候还涉及世界坐标系,了解各个坐标系之间的转换至关重要,ROS给我们提供了一个很好的坐标变换工具——TF包,下面简单介绍一下相关的使用。参考文献:1.https://www.guyuehome.com/355...

2020-04-13 15:29:00 4464 4

原创 SLAM入门(3):QT加载QVTKWidget插件(QT+ROS尝试)

前言在进行相关自动驾驶系统的开发的过程中,往往需要将激光雷达的点云数据进行显示,查看激光雷达点云界面的方式有以下几种:第一种是利用激光雷达厂家提供的配套软件进行显示,我们可以通过软件了解该雷达的性能,与我们自己做的显示进行对比,这种方式一般仅仅用作参考,软件也一般不会开源,对二次开发一般意义不大第二种是通过rviz软件进行显示,前提恐怕也要安装厂家提供的ros驱动才行第三种是自己分析激光...

2020-04-12 20:20:41 3202 3

原创 SLAM入门(2):QT+ROS进行GUI界面开发

1.前言使用在ROS中调用QT的库函数,利用QT良好的GUI界面特性,可以帮助我们更好的开发控制程序。2.安装qt_ros插件该官方文档解释了安装ROS Qt Creator插件的过程。首先根据链接和自己的系统,选择合适的插件版本,下载插件包,然后修改插件包的属性为可执行状态,双击插件包进行安装。一路下一步进行安装。在命令行中输入qtcreator-ros即可打开软件。3.QT+ROS开发...

2020-04-07 20:33:06 2422 5

原创 SLAM入门(1):点云库PCL源码编译安装和以及在QT中的使用

一、前言PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,也就是C++模板库。基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在...

2020-04-07 09:39:23 1401

原创 概率机器人笔记(6):机器人感知模型

1.前言由于所有的传感器都是带有噪声的,将机器人感知模型也就是测量模型同样用条件概率分布p(zt∣xt,m)p(z_t|x_t,m)p(zt​∣xt​,m)进行表示已经成为约定俗成或者说水到渠成的事情了。其中xtx_txt​代表了机器人的位姿,ztz_tzt​代表传感器的测量值,mmm代表环境地图。2.波束模型(Beam Models)(1)四类测量误差测量噪声phitp_{hit}phi...

2020-03-26 15:13:23 684

原创 概率机器人笔记(5):机器人运动模型

前言本节通过机器人运动模型(motion model)实现状态转移概率p(xt∣ut,xt−1)p(x_t|u_t,x_{t-1})p(xt​∣ut​,xt−1​),即执行运动控制utu_tut​后机器人状态的后验分布,其中,xt,xt−1x_t,x_{t-1}xt​,xt−1​代表机器人的位姿:[xyθ]\begin{bmatrix} x \\ y \\ \theta \\ \end{bmat...

2020-03-22 13:32:49 1060 3

原创 概率机器人笔记(4):粒子滤波的简单理解与推导

蒙特卡洛采样方法蒙特卡洛方法也叫统计模拟方法,是用随机数来进行计算机模拟的方法。在对某种随机分布进行分析时,往往需要对分布的数字特征(这里以均值为例说明)进行求解分析,当问题比较简单时,我们可以利用均值的定义以及性质进行求解。但是当问题变得复杂,比如随机变量的维数增多,我们很难按照以前的求解方式进行求解。蒙特卡洛方法通过对模型或过程的观察或抽样试验来计算这些参数或数字特征,最后给出所求解的近似值...

2020-03-19 10:24:21 883

原创 概率机器人笔记(3):卡尔曼滤波的理解与简单推导

1.假设卡尔曼滤波(Kalman Filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。上面是来自百度百科对卡尔曼滤波的定义,指明了卡尔曼滤波的两大主要功能:过滤噪声和参数估计。作为贝叶斯滤波的一个分支,卡尔曼滤波除了需要遵循马尔可夫假设之外,还要遵循以下三个假设:(1...

2020-03-11 17:37:32 1066

原创 概率机器人笔记(2):贝叶斯滤波(递归状态估计)

1.没有控制输入的状态估计公式推导:已知贝叶斯公式:P(x∣y)=P(y∣x)P(x)P(y)P(x|y)=\frac{P(y|x)P(x)}{P(y)}P(x∣y)=P(y)P(y∣x)P(x)​添加了随机变量zzz这个条件之后的贝叶斯公式:P(x∣y,z)=P(y∣x,z)P(x∣z)P(y∣z)P(x|y,z)=\frac{P(y|x,z)P(x|z)}{P(y|z)}P(x∣y,...

2020-03-05 22:03:08 1043

原创 概率机器人笔记(1):概率论基础内容回顾

一、样本空间与随机事件1.随机试验相同条件下,试验可以重复进行试验结果不止一个,但是试验之前可以知道所有可能出现的结果试验前不能确定每次试验的结果是哪一个2.样本空间随机试验中所有可能的结果(样本点)组成的集合。3.随机事件随机试验的样本空间的子集,即样本点的集合。二、概率与独立1.概率非负性:对于任意随机事件A,P(A)≥0P(A)\geq0P(A)≥0规范性:对于...

2020-03-03 21:56:55 331

原创 ROS自学实践(8):ROS进行激光SLAM建图——cartographer

本节主要记录运行谷歌cartographer方法,为后续理解这些代码,建立自己的SLAM算法打下基础。图优化方法2D/3D地图精度高1.安装ceres-solver包(1)安装所需依赖sudo apt-get install libgoogle-glog-dev libeigen3-dev libatlas-base-dev libsuitesparse-dev libmetis-...

2020-03-02 22:03:57 2140

原创 ROS自学实践(7):ROS进行激光SLAM建图——hector_slam

本节主要记录运行ROS自带的SLAM建模包hector_slam方法,为后续理解这些代码,建立自己的SLAM算法打下基础。高斯牛顿法二维栅格地图不需要里程计信息1.通过命令行安装hector_slam包sudo apt-get install ros-kinetic-hector-slam2.配置hector_slam节点<launch> <node...

2020-02-28 19:21:37 2935

原创 ROS自学实践(6):ROS进行激光SLAM建图——gmapping

本节主要记录运行ROS自带的SLAM建模包gmapping方法,为后续理解这些代码,建立自己的SLAM算法打下基础。基于粒子滤波算法二维栅格地图需要里程计信息1.通过命令行安装gmapping包sudo apt-get install ros-kinetic-slam-gmapping2.配置gmapping节点<launch> <arg name="...

2020-02-28 13:49:08 6389 1

原创 ROS自学实践(5):GAZEBO建模及添加相机和激光雷达传感器并进行仿真

在搭建完机器人小车的模型之后,需要向其添加传感器,以便提取传感器的数据,进行后续的工作。一、相机1.添加camera_gazebo.xacro文件同添加机器人模型一样,添加一个相机也需要进行定义一个相机的结构,参数,功能的“类”,也就是camera.xacro文件,在总的调用文件“shcRobot2_xacro_camera_gazebo.xacro”中调用即可。具体代码来源于参考文献1&...

2020-02-27 14:26:38 13962 24

原创 ROS自学实践(4):使用GAZEBO进行物理仿真

1.向xacro模型文件中添加惯性参数和碰撞属性

2020-02-25 13:15:09 2426 4

原创 ROS自学实践(3):机器人建模优化xacro与Arbotix+rviz虚拟仿真

目标:使用xacro优化建立的urdf机器人模型,在rviz和gazebo中进行仿真,为以后控制算法和SLAM算法做准备。Xacro(XML Macros)Xacro是一种XML宏语言。 使用xacro,您可以通过使用宏命令构建更精悍短小但又具有更高可读性的XML文件,可以进行宏定义、变量定义、头文件包含、数学运算等操作。urdf文件中,存在着大量重复性的代码,因此通过xacro优化之后,大大...

2020-02-22 22:08:37 1657 6

原创 ROS自学实践(2):机器人建模URDF

目的:构建机器人的3D模型,为物理仿真做准备。1.新建功能包在工作空间(我们一般创建为catkin_ws)的src目录下,通过catkin_create_pkg来创建硬件描述功能包,机器人模型命名一般约定俗成“××_description”:$ catkin_create_pkg SHCRobot_description urdf2.创建文件夹在功能包目录catkin_ws/src/S...

2020-02-22 09:22:48 2282 1

原创 ROS获取串口信息及后续处理(以惯导IMU XW-GI5651为例)

问题简介自动驾驶小车的底层的数据相当一部分是通过串口发送的,以惯导为例,惯导的定位信息大概如下所示:$GPFPD,0,1666.330,0.000,0.015,0.129,0.00000000,0.00000000,0.000,0.000,0.000,0.000,0.000,0,0,00*4E报文中包含着丰富的车辆状态信息,通过ROS节点,拿到这些数据,并进行处理在自动驾驶中是非常重要的,...

2019-09-17 20:56:37 3072 1

原创 ROS自学实践(1):Roboware Studio搭建ROS消息发送和订阅节点的一般步骤

简介本文介绍了在Roboware Studio上建立ROS消息的发送器和接收器的过程,程序代码来自ROS官方手册,实现简单的talker和listener。参考资料:https://blog.csdn.net/renyuanxingxing/article/details/83218009https://edu.csdn.net/course/play/19217/248748步骤1.打...

2019-09-15 11:38:04 1462 2

原创 QT多线程操作

什么是多线程?进程一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体,是程序执行最小的单位。线程操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程多个任务同时进行,必须有一个主...

2019-09-14 22:15:25 250

空空如也

空空如也

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

TA关注的人

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