0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自动驾驶坐标变换意义与类型

麦辣鸡腿堡 来源:古月居 作者:绿竹巷人 2023-11-14 11:49 次阅读

自动驾驶的关键挑战之一是准确感知和解释车辆周围环境的能力。这需要使用各种传感器,如相机、激光雷达和雷达,来捕捉周围环境的数据。

然而,这些传感器捕获的数据通常位于与车辆自身坐标系不同的坐标系中。这意味着必须将数据转换到车辆的坐标系中,以便对导航和控制有用。

上面提到的BEV感知,通过视觉算法我们可以在每一帧都提取出特征点。如果在时间序列上,我们想利用这些特征点,我们就无法避免的要使用坐标变换了。

自动驾驶中常用的坐标变换有几种类型,包括:

1. 平移

平移包括在同一坐标系中将对象从一个位置移动到另一个位置。在自动驾驶中,平移通常用于对齐激光雷达和相机等不同传感器捕获的数据,使它们处于同一坐标系中。

2. 旋转

旋转包括围绕同一坐标系中的固定点旋转对象。在自动驾驶中,旋转通常用于对齐安装在车辆上不同角度的传感器捕获的数据。

3. 齐次变换

齐次变换包括将平移和旋转组合成单个变换矩阵。在自动驾驶中我们会用到齐次变换,将数据从传感器坐标系转换到车辆坐标系。

为了执行这些坐标变换,使用了各种数学技术,如矩阵乘法和四元数旋转。这些技术是在软件库中实现的,例如C++的Egengen库和Python的NumPy库。

二维数据坐标变换的常见场景

情况1

图片

情况2

图片

图片

python代码

写一个python代码,来验证坐标变换

import matplotlib.pyplot as plt
plt.title('Calibration')
plt.xlabel('x (m)')
plt.ylabel('y (m)')
plt.axis('equal')


# 坐标轴长度
coord_length = 0.2


# 两个车辆位姿
x1 = 1
y1 = 4
theta1 = 0.1
print("car pose1: ["+str(x1), ", "+str(y1) + ", "+str(theta1)+"]")
x2 = 3
y2 = 5
theta2 = 1.3
print("car pose2: ["+str(x2), ", "+str(y2) + ", "+str(theta2)+"]")


# 位姿1下有一个点p
x = 2
y = 1
print("["+str(x), ", "+str(y) + "] in pose1")


# 画位姿1的坐标轴
x_cord = math.cos(theta1) * coord_length + x1
y_cord = math.sin(theta1) * coord_length + y1
plt.plot([x1, x_cord], [y1, y_cord], 'r')
x_cord = math.cos(theta1 + math.pi/2) * coord_length + x1
y_cord = math.sin(theta1 + math.pi/2) * coord_length + y1
plt.plot([x1, x_cord], [y1, y_cord], 'b')
# 画位姿2的坐标轴
x_cord = math.cos(theta2) * coord_length + x2
y_cord = math.sin(theta2) * coord_length + y2
plt.plot([x2, x_cord], [y2, y_cord], 'r')
x_cord = math.cos(theta2 + math.pi/2) * coord_length + x2
y_cord = math.sin(theta2 + math.pi/2) * coord_length + y2
plt.plot([x2, x_cord], [y2, y_cord], 'b')


# p点在世界坐标系下的位置
x_world = math.cos(theta1) * x - math.sin(theta1) * y + x1
y_world = math.sin(theta1) * x + math.cos(theta1) * y + y1
print("["+str(x_world), ", "+str(y_world) + "] in world")
plt.plot(x_world, y_world, 'r*')


# p点在位姿2下的位置
x_ = math.cos(theta2) * (x_world-x2) + math.sin(theta2) * (y_world-y2)
y_ = -math.sin(theta2) * (x_world-x2) + math.cos(theta2) * (y_world-y2)
print("["+str(x_), ", "+str(y_) + "] in pose2")


# 用计算出来的p点位姿2下的位置,来再算出在世界坐标系下的位置
x_world_ = math.cos(theta2) * x_ - math.sin(theta2) * y_ + x2
y_world_ = math.sin(theta2) * x_ + math.cos(theta2) * y_ + y2
print("use 2 to check ["+str(x_world_), ", "+str(y_world_) + "]")
plt.plot(x_world_, y_world_, 'b*')


plt.show()
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2545

    文章

    50384

    浏览量

    750654
  • 车辆
    +关注

    关注

    0

    文章

    80

    浏览量

    15099
  • 自动驾驶
    +关注

    关注

    782

    文章

    13596

    浏览量

    165850
收藏 人收藏

    评论

    相关推荐

    FPGA在自动驾驶领域有哪些应用?

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)在自动驾驶领域具有广泛的应用,其高性能、可配置性、低功耗和低延迟等特点为自动驾驶的实现提供了强有力的支持。以下
    发表于 07-29 17:09

    FPGA在自动驾驶领域有哪些优势?

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)在自动驾驶领域具有显著的优势,这些优势使得FPGA成为自动驾驶技术中不可或缺的一部分。以下是FPGA在自动驾驶
    发表于 07-29 17:11

    汽车自动驾驶技术

    请问各位老鸟我是新手汽车自动驾驶技术是怎么回事,是用什么板子开发的需要应用哪些技术和知识。提问题提得不是很好请各位见谅
    发表于 04-14 20:44

    【话题】特斯拉首起自动驾驶致命车祸,自动驾驶的冬天来了?

    `特斯拉首起自动驾驶致命车祸,自动驾驶的冬天来了?“一个致命的事故一定是由多个小的错误组成的。”  7月初,特斯拉发表博客叙述了NHTSA(美国国家公路交通安全管理局)正在着手调查第一起Tesla
    发表于 07-05 11:14

    自动驾驶真的会来吗?

    自动驾驶原理示意GIF图  特斯拉自动驾驶死亡事故给全世界带来了极大的震惊,但这并不意味着基于坏消息之上的关注全然没有正面意义。  在接受新浪科技采访中,多位硅谷相关人士告诉新浪科技:一方面是对于
    发表于 07-21 09:00

    细说关于自动驾驶那些事儿

    `事实上,早在1925年就出现第一台自动驾驶概念车,但为什么直至最近无人车才不再被视为科幻小说,而是眼下将实现的革命性科技产品?追其原因,主要在于,人工智能的显著进展,以及开发无人车的所需技术和硬件
    发表于 05-15 17:49

    自动驾驶的到来

      传统汽车厂商更趋向于通过技术的不断积累,场景的不断丰富,逐步从辅助驾驶过渡到半自动驾驶,进而在将来最终实现无人驾驶;某些高科技公司则希望通过各种外部传感器实时采集海量数据,处理器经过数据分析然后
    发表于 06-08 15:25

    AI/自动驾驶领域的巅峰会议—国际AI自动驾驶高峰论坛

    由南德意志出版及活动有限公司举办的 国际AI自动驾驶高峰论坛 将于 2017年11月28/29日 在 德国慕尼黑 举办,中德联合股份公司作为中国独家合作伙伴,诚邀您拨冗莅临!【活动背景】AI
    发表于 09-13 13:59

    自动驾驶汽车的定位技术

    自动驾驶定位技术就是解决“我在哪儿”的问题,并且对可靠性和安全性提出了非常高的要求。除了GPS与惯性传感器外,我们通常还会使用LiDAR点云与高精地图匹配,以及视觉里程计算法等定位方法,让各种定位法
    发表于 05-09 04:41

    如何让自动驾驶更加安全?

    要有可靠性、安全性做保证。现在一些企业往往以市场推广宣传为主,真正技术上能达到安全可靠的还是比较少。实现真正意义上的自动驾驶是个系统工程需要汽车、通信技术、“聪明的路”、高精度地图等多种集成在上海嘉定安亭镇
    发表于 05-13 00:26

    自动驾驶汽车的处理能力怎么样?

    作在未来20 - 30年中,自动驾驶汽车(AV)将改变我们的驾驶习惯、运输行业并更广泛地影响社会。 我们不仅能够将汽车召唤到我们的家门口并在使用后将其送走,自动驾驶汽车还将挑战个人拥有汽车的想法,并
    发表于 08-07 07:13

    联网安全接受度成自动驾驶的关键

    随着时代的演进与汽车工业技术、机器视觉系统、人工智能和传感器相关技术上不断创新与进步,无人自动驾驶汽车已不是一件遥不可及的梦想,Google与国际车厂相继针对自动驾驶技术致力研究开发,进一步让
    发表于 08-26 06:45

    如何保证自动驾驶的安全?

    自动驾驶技术为人们勾勒出了一副美好的未来出行的画面:坐上没有方向盘的汽车,一觉睡到公司门口;甚至我们可能不再拥有一辆汽车,需要出门时共享自动驾驶汽车会自己到来,送到目的地时会自行离开……不过自动驾驶
    发表于 10-22 07:45

    自动驾驶系统设计及应用的相关资料分享

    作者:余贵珍、周彬、王阳、周亦威、白宇目录第一章 自动驾驶系统概述1.1 自动驾驶系统架构1.1.1 自动驾驶系统的三个层级1.1.2 自动驾驶系统的基本技术架构1.2
    发表于 08-30 08:36

    自动驾驶技术的实现

    k随着汽车电子的日益复杂化以及汽车电子电气架构(EEA)的升级,人们对于联网智能汽车的需求也在逐步上升,大量先进技术往汽车上应用,如高级驾驶辅助系统(ADAS)、自动驾驶等,这些新技术也对车载网络
    发表于 09-03 08:31