位姿描述和坐标变换 引子想象我们用手去拿起桌子上的杯子,我们会观察杯子所处的状态调整我们的手的状态。我们观察杯子状态是观察杯子的位姿,调整手状态也为调整手的位姿。位姿包括位置和姿态。调整手状态的过程即为坐标变换,将一个位姿转换为另一个位姿。那么位姿和坐标变换如何表达呢?首先考虑刚体具有几个自由度?1. 刚体描述二维平面的刚体描述对于二维平面的刚体,其可以沿着X轴和Y轴移动,可以绕着某个垂直平面的固定轴转动。因此二维平面刚体具有三个自由度:两个自由度的移动一个自由度的转动三维空间的刚体描述三维空间需要三
详解二分查找算法 二分查找是通过将递增序列不断减半的方式寻找目标值的下标。其看似简单,但往往存在一些细节被忽略,即while循环判断条件和区间右边界的取值方式。另外,我们往往只知二分查找搜索目标值的功能,而忽略了二分查找的另外一个功能,即寻找最大的小于目标值的元素和最小的大于目标值的元素。一、二分查找算法的基本框架二分查找充分利用了序列元素的递增性质,采用分治策略搜索目标值(目标值存在于序列中),目标值的左边界和右边界(目标值不存在于序列中),其中左边界指的是最大的小于目标值的元素,右边界指的是最小的大于目标值的元素
路径规划—详解Dijkstra算法 本文首先详述了Dijstra算法的定义和思路,以初始点为中心按照路径长度以递增方式层层向外扩展,直到扩展到终止点。然后使用拓扑连通图展示了其实现步骤。最后展示了在栅格地图中运用Dijstra算法的Matlab仿真效果。
路径规划—入门路径规划概念 一、前言 建议在阅读该文章之前阅读文章《入门导航规划概念》。以驾驶汽车时使用手机地图进行导航为例,路径规划指的是:当我们输入目标地点,手机APP软件会基于已经建模的地图给我们规划出最优路线(最短距离或者最小时间)。二、路径规划概念(一)路径规划基本概念定义:根据所给定的地图和目标位置,规划一条使机器人到达目标位置的路径。因此路径规划考虑的是全局的战略问题。考虑到机器人的各种形态和各种各样运动学模型,因此只考虑工作空间的几何约束,不考虑机器人的运动学模型和约束,即将机器人抽象为...
入门导航规划概念 一、前言本文所叙述的导航规划表示无人工标识导引的无轨导航,机器人根据地图和传感器感知信息进行导航。导航规划与我们日常生活密切相关,例如我们驾驶汽车时使用手机地图进行导航。首先我们拥有一张地图(高德地图或者百度地图等),我们输入起始地点和目标地点,软件基于已经建模的地图会给我们规划出最优路线(最短距离,最小时间),我们按照规划路线驾驶汽车。在驾驶汽车的过程中,路况是不断变化的,遇见行人,车辆或者拥堵,我们要进行避障,调整局部轨迹。二、导航规划概念(一)定义在给定环境的全局或局部知识以及一个或者
ROS终端开始显示bash: /home/yanan/smart_ws/devel/setup.bash: 没有那个文件或目录 在调出终端时,开头出现bash: /home/yanan/smartcar_ws/devel/setup.bash: 没有那个文件或目录,这是由于删除了工作空间,环境配置出现了问题。其解决方法为在终端输入命令 gedit ~/.bashrc,进入一个文件,找到source ~/smartcar_ws/devel/setup.bash并删除。...
C++随机打乱数组数据—应用于图像打乱 在研究图像分类的课题过程中,模型的训练需要将图像随机打乱。由于老师要求使用C++语言编写程序,因此编写一个随机打乱数组数据的程序,将数组元素替换为下标,可以实现图像打乱。例如,实现数组的数据从0,1,2,3,4,5转换到2,5,4,3,1,0。元素不变,次序改变。其步骤如下:输入:样本数目num;存储图像原始下标数组ids[num],满足图像下标与数组下标一一对应,即ids[i]=i,i=1,...
C#删除目录中所有的某种类型文件 使用C#进行WinForm编程时,有时需要删除一个目录下的所有特定文件,比如删除全部文本文件或者图像文件。实现这种功能的思路是使用Directory和File的结合。使用Directory.GetFiles返回含有文件后缀名的所有路径字符串,使用File.Delete删除路径文件。具体实现代码如下: string resultDirectory = Environmen...
VC++获取当前的日期和时间 在做项目的过程中,有些程序结果需要输出报告文件,而在报告文件中往往需要当前日期和时间。因此使用头文件time.h中的tm结构和localtime_s函数获取当前的日期和时间,具体可参考http://www.cplusplus.com/reference/ctime/localtime/。程序如下:#include "time.h"void main(){ struct tm tm...