自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SLAM学习笔记8:相机模型

为了改善成像效果,相机前方会加入透镜,透镜的加入会对成像过程中光线的传播产生新的影响,也因此导致实际的相机并不像小孔模型这样完美。有的相机厂商会告诉你相机的内参,而有时需要自己确定相机的内参,这就是所谓的。实际上,由于相机在运动,点P的相机坐标应该是它的世界坐标(记为Pw)根据相机的当前位置变换到相机坐标系下的结果。针孔相机模型描述了单个相机的成像模型,但仅根据一个像素无法确定这个空间点的具体位置,只有当点的深度确定时,我们才能确切地知道它的空间位置。描述了一束光线通过针孔后,在针孔背面投影成像的关系。

2022-12-17 20:09:08 1451

原创 SLAM学习笔记6:李群与李代数

考虑 SO(3)上的李代数ln(exp(𝜙1∧)exp(𝜙2∧))∨,当𝜙1与𝜙2为小量时,二次以上的项都可以予以忽略。我们已经清楚so(3)的内容,它们是一个由三维向量组成的集合,每个向量对应一个反对称矩阵,可用于表达旋转矩阵的导数。so(3)与SO(3)的关系由。这样,我们就把𝔰𝔬(3)中任意一个向量对应到了一个位于SO(3)中的旋转矩阵。SO(3)与SE(3)在实数空间上是连续的(三维空间的刚体运动是连续的),属于李群;一般线性群GL(n),特殊正交群SO(n),特殊欧氏群SE(n)。

2022-12-17 20:08:38 1718

原创 ROS复习笔记10:ROS进阶

复习

2022-12-12 23:52:39 462

原创 ROS复习笔记9:MoveIt!机械臂控制

复习

2022-12-12 23:42:00 912

原创 ROS复习笔记8:机器人系统建模与仿真

复习

2022-12-12 23:16:52 855

原创 ROS复习笔记7:机器人基础

复习

2022-12-12 23:00:36 340

原创 ROS复习笔记6:ROS中的常用组件

复习

2022-12-12 22:51:13 373

原创 ROS复习笔记5:ROS架构与基础

复习

2022-12-10 22:55:24 786

原创 ROS期末复习4:Ubuntu文件管理及常用命令

复习

2022-12-10 22:30:52 1035

原创 ROS期末复习3:Linux基本知识

复习

2022-12-10 17:55:39 356

原创 ROS期末复习2:ROS介绍

复习资料

2022-12-09 23:58:26 1092

原创 ROS期末复习1:无人系统/机器人体系架构及操作系统

基础知识复习

2022-12-09 22:52:32 878

原创 ROS学习笔记17:MoveIt!机械臂控制

为开发者提供了一个易于使用的集成化开发平台,由一系列移动操作的功能包组成,包含运动规划、操作控制、3D感知、运动学、控制与导航算法等,且提供友好的 GUI ,可以广泛应用于工业、商业、研发和其他领域。已知机器人的初始姿态和目标姿态,以及机器人和环境的模型参数,那么可以通过某种算法,在躲避障碍物和防止自身碰撞的同时,找到一条到达目标姿态的较优路径,这种算法称为机器人的运动规划。1)组装:在控制机器人之前需要有机器人,可以是真实的机械臂,也可以是仿真的机械臂,但都要创建完整的机器人URDF模型。

2022-12-09 15:02:50 16626 7

原创 ROS学习笔记16:机器人系统建模与仿真

一、概述:1.机器人系统仿真: 是通过计算机对实体机器人系统进行模拟的技术,在 ROS 中,仿真实现涉及的内容主要有三:对机器人建模(URDF)、创建仿真环境(Gazebo)以及感知环境(Rviz)等系统性实现。(1)仿真优势:低成本、高效、高安全性。(2)仿真缺陷:仿真器所使用的物理引擎目前还不能够完全精确模拟真实世界的物理情况;仿真器构建的是关节驱动器(电机&齿轮箱)、传感器与信号通信的绝对理想情况,目前不支持模拟实际硬件缺陷或者一些临界状态等情形。2.机器人系统仿真所需组件:(1)创建机

2022-12-05 21:23:32 5704

原创 ROS学习笔记15:rosbag数据记录与回放(ROS常用组件)

这个警告意思是:暂停了,没有进行数据的录制。原因在于ROS tf 的发布时间晚于 topic 的时间,Rviz 在做 msg 的 tf 变换时,默认把过时的 msg 丢掉。为了方便调试测试,ROS提供了数据记录与回放的功能包rosbag,可以帮助开发者收集ROS系统运行时的消息数据,然后再离线状态下回放。解释:rosbag record就是数据记录的命令;-a参数意为所有发布的消息;-O参数意为存为压缩文件。查看数据记录文件的详细信息。回放指定的bag文件。

2022-11-23 14:42:48 2077

原创 ROS学习笔记14:Gazebo仿真环境(ROS常用组件)

虽然Gazebo中的机器人模型与rviz使用的模型相同,但是需要在模型中加入机器人和周围环境的物理属性,例如质量、摩擦系数、弹性系数的等。Gazebo是一款功能强大的三维物理仿真平台,具备强大的物理引擎、高质量的图形渲染、方便的编程与图形接口,而且开源免费。在Gazebo左侧的模型列表中,有一个insert选项罗列了所有的可使用模型,只需把需要的模型拖到3D视图区即可。选择左侧的绘制选项,在上侧的白色网格窗口中使用鼠标绘制,下侧窗口中即可实时显示绘制的仿真环境。Gazebo有两种创建仿真环境的方法。

2022-11-23 14:42:28 2225

原创 ROS学习笔记13:rviz三维可视化平台(ROS常用组件)

(1)rviz可以用XML对机器人、周围物体等任何实物进行尺寸、质量、位置、材质、关节等属性的描述,并且再界面中呈现出来。(3)rviz通过机器人模型参数、机器人发布的传感器信息等数据,为用户进行所有可检测信息的图形化显示。(2)rviz还可以通过图形化方式,实时显示机器人传感器的信息、机器人的运动状态、周围环境的变化等。rviz是一款三维可视化工具,很好地兼容了各种基于ROS软件框架的机器人平台。

2022-11-23 14:42:05 3565 1

原创 ROS学习笔记12:Qt工具箱(ROS常用组件)

rqt_plot是一个二维数值曲线绘制工具,可以将需要显示的数据在xy坐标系中使用曲线描绘,在界面上方的Topic输入框中输入需要显示的话题消息。为了方便可视化调试和显示,ROS提供了一个Qt架构的后台图形工具套件rqt_common_plugins,在使用之前,确保已安装Qt工具箱。rqt_console工具用来图像化显示和过滤ROS系统运行状态中的所有日志消息,包括info、rqt_graph工具可以图形化显示当前ROS系统中的计算图。(1) 启动界面后显示当前系统所有可配置参数;

2022-11-23 10:46:57 949

原创 ROS学习笔记11:launch启动文件(ROS常用组件)

在launch文件中通过元素加载parameter,launch文件执行后,parameter就加载到ROS的参数服务器上了。启动文件是ROS中一种可以通过xml文件,同时启动多个节点并可以实现每个节点的各种配置的途径,它还可以自动启动ROS Master节点管理器,为多个节点的操作提供很大的便利。XML文件必须包含一个根元素,launch文件中的根元素采用标签定义,文件。5)required=“ture”:必要节点,当该节点终止时,launch文件中的其他节点也被终止。

2022-11-23 10:37:03 1922

原创 ROS学习笔记10:TF坐标变换(ROS常用组件)

旋转参数的第一种命令格式使用以弧度为单位的yaw、pitch、roll角度(yaw是围绕z轴旋转的偏航角,pitch是围绕y轴旋转的俯仰角,roll是围绕x轴旋转的翻滚角),第二种命令格式使用四元数表达旋转角度。机器人本体和机器人的工作环境中往往存在大量的组件元素,在机器人设计和应用中会涉及不同组件的位置和姿态,这就需要引入坐标系和坐标变换的概念。可视化系统当中的所有tf的关系,监听5s,把5s之内所有坐标系之间的关系保存下来,并生成一个pdf。(2)机器人夹取的物体相对于机器人中心坐标系的位置;

2022-11-22 17:33:50 3131

原创 SLAM学习笔记9:OpenCV模块1

数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。它提供了大量的开源图像算法,是计算机视觉中使用极广的图像处理算法库。计算机视觉是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。图像处理的旨在处理原始图像以应用某种变换,其目标通常是改进图像或将其作为某项特定任务的输入。

2022-11-19 18:11:32 483

原创 ROS学习笔记9:参数的使用与编程方法(实践作业)

参数可以理解为ROS中的全局变量,储存在ROS Master中(也就是roscore中),每一个节点都可以访问ROS Master中的参数。(4)rosparam set param_key param_value命令:设置某个参数值。(5)rosparam dump file_name命令:保存参数至文件,文件默认位于主文件夹。(7)rosparam delete param_key命令:删除某参数。(1)rosparam命令:查看与参数相关的命令。(2)get函数获取参数;(3)set函数设置参数。

2022-11-17 22:33:34 670

原创 ROS学习笔记8:服务器与客户端(实践作业)

Client发布显示某人信息的Request(自定义服务数据),Server收到该Request,显示后反馈Response。Server通过topic给海龟发送速度指令,Client发布request控制Server是否给海龟发指令。(1)初始化ROS节点,创建名为“Velocity_spawn”的节点;(4)在回调函数中完成服务功能的处理,并反馈应答数据。(3)循环等待服务请求,进入回调函数;(2)创建一个Client实例;(2)创建一个Server实例;(3)发布服务请求数据;

2022-11-17 21:55:06 460

原创 ROS学习笔记7:话题发布与订阅(实践作业)

1)add_executable:设置需要编译的代码和生成的可执行文件。第一个参数为期望生成的可执行文件名称,第二个参数为参与编译的源码文件。很多功能需要使用系统或第三方的库函数,通过该选项可以配置执行文件链接的库文件。(1)初始化ROS节点,创建名为“Velocity_publisher”的节点;(2)向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型;(1)初始化ROS节点,创建名为“pose_subscriber”的节点;(3)循环等待话题消息,接收到消息后进入回调函数;

2022-11-17 18:14:38 2006

原创 SLAM学习笔记4:三维空间刚体运动

此外,旋转矩阵必须是正交矩阵且行列式为1,变换矩阵同样具有对应的要求,这些约束会给优化与求解造成困难。旋转运动表述的是刚体姿态的变化,可以用旋转矩阵、旋转向量或者四元数来表示。相较于旋转矩阵和旋转向量这种不太直观的描述旋转的方式,欧拉角显得非常直观:使用3个分离的转角,将一个旋转分解成3次绕不同轴的旋转。只要旋转是一样的,这个矩阵就是一样的。(2)旋转向量和欧拉角是紧凑的,但具有奇异性,事实上也找不到不带奇异性的三维向量描述方式。左上角为旋转矩阵,右侧为平移向量,左下角为零向量,右下角为1。

2022-11-15 23:20:24 1117

原创 SLAM学习笔记3:相关数学知识复习

顺序主子式是取n阶方阵的部分元素化为行列式形式。方阵的第k阶行列式是由该方阵的前k行和k列元素组成。对于n阶方阵A,其共有n阶顺序主子式。通过计算方阵A的所有顺序主子式,可以来判断一个实二次型是否正定或方阵A是否为正定矩阵,也可以判断方阵A是否可以进行唯一LU分解。相似矩阵、同型矩阵、方阵、负矩阵、上三角矩阵、下三角矩阵、对角矩阵、单位矩阵、零矩阵。向量外积的坐标表示就是行列式的应用之一。

2022-11-12 22:06:59 264

原创 SLAM学习笔记2:SLAM的数学表述

传感器在这些时刻的位置记为x1,x2,...,xk,它们构成了传感器的轨迹。传感器会在每个时刻测量到一部分路标点,得到它们的观测数据,假设有n个路标点,用y1,y2,...,yn表示。事实上,根据无人车的真实运动和传感器种类,f和h有若干种。对于传感器来说,虽然它的运动是时间连续的,但它却是在某些时刻采集数据的,这就把。在了解了SLAM中各个模块的组成和主要功能后,我们将上升到理性层次,用数学语言来描述SLAM过程。(2)观测:在k时刻,于xk处探测到路标点yj,如何描述这件事?2)观测方程如何参数化?

2022-11-12 21:21:15 642

原创 SLAM学习笔记1:SLAM概述

(虽然这门课和“仿生机械学”互为二选一关系,但我把它俩都选了)实际上对于我们机械和车辆专业的学生来说,SLAM是研究生阶段才会去研究的内容,32个学时只能说是浅尝辄止。要想恢复三维结构,必须改变相机的视角。我们都知道,近处的物体移动快,远处的物体移动慢,极远处的物体看上去是不动的。后端优化要考虑的问题是如何从这些带有噪声的数据中估计整个系统的状态,以及这个状态估计的不确定性有多大(最大后验概率估计)。双目相机测量到的深度与基线(两个相机间的距离,类似于人的瞳距)有关,基线距离越大,能测量到的物体就越远。

2022-11-12 20:37:21 2473 1

原创 ROS学习笔记6:C++基础知识(续)

子类Son2以保护的方式继承了Base类,在其内部可以访问m_A和m_B且它们都是保护成员,不能访问父类中的私有成员m_C。类外的全局函数test01()既不能访问保护成员m_A和m_B,也不能访问m_C。子类Son3的子类GrandSon3(姑且叫它孙子类吧)以公共的方式继承了Son3类,但由于Son3类中的成员均为私有权限,因此m_A和m_B以及m_C都不可访问。子类Son3以私有的方式继承了Base类,在其内部可以访问m_A和m_B且它们都是私有成员,不能访问父类中的私有成员m_C。

2022-11-12 15:57:14 480

原创 ROS学习笔记5:C++基础知识

(2)扩展性差:面向过程程序设计没有“封装”和“隐藏”的概念,要访问某个数据结构中的某个变量可以直接访问,但要修改该变量时需要将所有访问该变量的语句都找出来修改,且难以差错和重用代码。C++是C语言的继承,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。类把属性和方法进行封装,同时对类的属性和方法进行访问控制。友元可以是一个函数(友元函数),也可以是一个类(友元类),在这种情况下,整个类及其所有成员都是友元。

2022-11-11 16:39:21 1393

原创 ROS学习笔记4:创建工作空间和功能包

3)rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息。3)rosservice call [服务名称] [参数]:用输入的参数服务请求。2)rosservice info [服务名称]:显示指定服务的信息。(2)功能:创建一个名为“file”的新的空白文件,相当于记事本。2)rostopic info [话题名称]:显示指定话题的消息。2)rosnode info [节点名称]:检查指定节点的信息。(2)功能:执行指定的功能包中的一个节点的命令。

2022-11-10 18:46:47 1356

原创 ROS学习笔记3:ROS架构(了解)

一个节点可以针对一个给定的话题(Topic)发布消息(这个节点称为发布者Talker),也可以关注某个话题并订阅特定类型的数据(这个节点称为订阅者Listener)。ROS是一个优秀的机器人分布式框架。服务类型定义了ROS客户端/服务器通信模型下的请求和应答数据类型,可以使用ROS系统提供的服务类型,也可以使用.srv文件在功能包的srv文件夹中进行定义。消息是ROS节点之间发布/订阅的通信信息,可以使用ROS提供的消息类型,也可以使用.msg文件在功能包的msg文件夹下自定义所需要的消息类型。

2022-11-09 21:33:36 3772

原创 ROS学习笔记2:ROS安装和小乌龟仿真

rosdep是ROS中自带的工具,主要功能是为某些功能包安装系统依赖,同时也是某些ROS核心功能包必须用到的工具。rosinstall是ROS的一个常用工具,可以下载和安装ROS中的功能包程序。在“下载自”一栏选择安装源,这里选择最好国内源(下载速度快)。解决方法:对于ubuntu20.04系统,键入以下指令。打开第一个终端,运行ROS的节点管理器。PS:初始化可能遇到的问题与解决方法。打开一个新终端,运行键盘控制的节点。(1)使用该命令,确保之前的软件源修改得以更新。(2)ROS桌面完整版安装。

2022-11-08 23:28:25 1941

原创 ROS学习笔记1:Ubuntu20.04系统安装图文讲解(双系统,机械硬盘)

Ubuntu双系统安装,ROS

2022-10-21 19:22:36 5116 1

空空如也

空空如也

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

TA关注的人

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