首页 > 精选知识 > > 正文
2024-05-22 09:00:11

Autolabor Simulation预备知识——坐标轴与坐标系

导读 【#Autolabor Simulation预备知识——坐标轴与坐标系#】1、对于大多数用户来说坐标转换是一个“黑箱”,不了解这个部分并不影响用户愉快的...
【#Autolabor Simulation预备知识——坐标轴与坐标系#】

1、对于大多数用户来说坐标转换是一个“黑箱”,不了解这个部分并不影响用户愉快的使用模拟器,但理解ROS以及Autolabor Simulation的坐标转换机制能帮助用户更好的控制他们的机器人,也使他们能够更快的查找出编码中可能出现的问题。

2、在ROS中,坐标轴规定可以参考 ROS-REP 103 ,坐标系可以参考 ROS-REP 105 ,为了方便大家的理解,这里结合模拟器做简单的讲解

3、常规用来表示三维位置关系时,使用的是右手坐标系,何为右手坐标系呢?我们来看下图:

4、通常相对于我们的身体而言

5、举例:

6、坐标点 (3,4,5) 表示距原点 前3个单位 ,并向 左4个单位 以及向 上5个单位 的位置。

7、有了三维坐标轴的定义,那么对于旋转的定义也就比较容易了,对于一个三维空间里面的旋转,可以分解成绕着坐标轴的旋转。旋转的方向使用右手法则定义:

8、一般来说

9、举例:

10、我们通常用来表述小车运动的二维平面指的是 X-Y平面 ,也就是X轴和Y轴张成的平面,在这个平面中,用来描述 小车转弯的角 就是绕Z轴的旋转,也就是经常说的 航向角 。Z轴朝上,所以按照右手法则可以知道小车向 左转为正,右转为负 。

11、空间中的同一位置,在不同坐标系下,其坐标值也不相同。

12、在上图中,有两个坐标系,分别为坐标系A和坐标系B,其中 橘红色坐标轴 表示 X轴 (朝前), 蓝色坐标轴 表示 Y轴 (朝左)。对于 坐标系A 中,粉色的圆点的坐标为 (3, -3) ,对于 坐标系B 中,粉色的圆点的坐标为 (5, 1)

13、在ROS中,定义了许多坐标系,这里介绍几个常见的坐标系,为了比较直观的解释这几个坐标系,我们使用一个小例子来说明。

14、在刚开始的时候,按照之前坐标轴的定义,将小车的朝向方向作为X轴,正左方标识为Y轴,并将小车所在的位置定义为原点,如图(1-1)。

15、如图(1-2),在原点插一面小旗子,并控制小车行驶一段距离,这个时候我们能得到三个位置信息

16、在上面的例子中,三个坐标值都相同。但真实情况下,三个坐标值由于测量误差或者其他原因导致坐标值并不相同,然而这三个坐标都用来表示小车中心在空间中的位置,这就引出了不同坐标系

17、假设对于上面描述的三种测量是以下结果

18、那么坐标系表示如图(1-3)

19、模拟器除了沿袭上面讲述的两个坐标系(odom, map)之外,同时还引入了真实坐标系(real_map)。

20、由于是模拟器,所以可以精确的知道小车的真实位置,在autolabor_simulation_base模块中,会发布两种坐标系的坐标

21、对于map坐标系下的坐标,并不由模拟器产生,而是通过上层的定位算法得到的,这部分在后面的讲解中可以看到。

22、我们往往希望找到一种量化的方法去评价算法的优劣,这样对于调整算法或者某些参数有很大的帮助。在使用真实机器人去测试,需要借助外界测量工具去测量,并且需要想一些巧妙的办法让这些测量合理并且准确。但使用模拟器就能够比较方便的解决这个问题。

23、模拟器能对传感器数据添加噪声,从而来模拟真实情况。将有噪音的数据带入算法中,如果得到的数据很接近“真实数据”,那么我们就能认为这个算法比较好。

24、比如我们使用AMCL算法对小车进行定位,其中里程计和激光雷达数据都带有噪音,这个时候我们可以得到在map坐标系下的坐标,同时我们能得到小车在real_map坐标系下的坐标,我们就可以使用这两个坐标的距离来判断定位的准确性。

25、在后面的实验中,我们可以使用这个特性对一些算法进行评测。

【#Autolabor Simulation预备知识——坐标轴与坐标系#】到此分享完毕,希望对大家有所帮助。