前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MathorCup 2022 C题无人驾驶泊车问题.2(若干论文阅读)

MathorCup 2022 C题无人驾驶泊车问题.2(若干论文阅读)

作者头像
云深无际
发布2022-04-25 20:21:10
1.1K0
发布2022-04-25 20:21:10
举报
文章被收录于专栏:云深之无迹云深之无迹

分析完成了,其实就可以解题了,但是我想读一些文献再开始写作。

一个相当简单的运动学模型。

原文瞎jb起名,啥啥啥的

横向的停车

纯跟踪算法,用Mathematica设计了一个小程序,可以用鼠标拖动目标点(绿色点),并观察前轮的转角,如下图。目标点是纯跟踪算法中的核心概念,这个目标点是人为设计或者选择的。跟踪性能的好坏不仅取决于控制参数的选择,目标点的选择也起到重要的作用。当目标点选取的不好时,例如距离无人车当前位置过近,则会出现控制量剧烈变化。

  也可以用鼠标拖动无人车的参考点,观察前轮的转角,如下图。从图中可以发现,在距离目标比较近时,纯跟踪算法的表现很糟糕,参考点位置有一点点改变都会导致前轮转角剧烈变化。但是无人车的定位本身是必然存在偏差的,所以纯跟踪算法在前视距离短时稳定性并不好。

代码语言:javascript
复制
cuboid[center_: {0, 0}, dim_, radius_: 0] := Rectangle[center - dim/2, center + dim/2, RoundingRadius -> 0.01];
move2D[shape_, pose_] := Translate[Rotate[shape, pose[[3]], {0, 0}], pose[[1 ;; 2]]];
L = 1.64; 
\[Delta]max = 25 Degree ;
bicycle[pose_, \[Delta]_] := {
   rearWheel = cuboid[{0, 0}, {0.4, 0.1}, 0.1];
   frontWheel = move2D[rearWheel, {L, 0, \[Delta]}];
   trunk = cuboid[{L/2, 0}, {L, 0.02}, 0.1];
   move2D[{Blue, frontWheel, rearWheel, Black, trunk, Red, Circle[{L, 0}, 0.22, {0, \[Delta]}]}, pose]
   };
Manipulate[
 pose = Flatten@{p, \[Theta]};
 dirvec = AngleVector[\[Theta]];
 vertvec = {-dirvec[[2]], dirvec[[1]]};
 p1 = p + L*dirvec;
 dl = Norm[goal - p];
 \[Alpha] = VectorAngle[goal - p, {1, 0}] - \[Theta];
 \[Delta] = ArcTan[2*L*Sin[\[Alpha]]/dl];
 R = Abs[dl/2/Sin[\[Alpha]]];
 c = p + Sign[\[Alpha]]*R*vertvec;
 a1 = -VectorAngle[p - c, {1, 0}];
 a2 = -VectorAngle[goal - c, {1, 0}];
 Graphics[{bicycle[pose, \[Delta]], Point[c], AbsoluteThickness[1], 
   Line[{p1, p1 + AngleVector[\[Theta] + \[Delta]]*0.3}], AbsoluteDashing[{6, 3}], Black, Line[{p, p1 + dirvec*0.3}], Gray, Line[{p, c}], Line[{c, goal}], Line[{goal, p}], Line[{c, p1}], Orange, Circle[c, R(*,{a1,a2}*)], AbsolutePointSize[8], White, Point[p], Red, Point[c], Darker@Green, Point[goal], Red, Text[Style[ "\[Delta]=" <> ToString@Round[\[Delta]*180/Pi, 0.01] <> "\[Degree]", FontSize -> 16], p1 + dirvec*0.5], Text["\!\(\*SubscriptBox[\(d\), \(l\)]\)=" <> ToString@Round[dl, 0.01], (p + goal)/2 + {0, 0.1}]}, 
  ImageSize -> 600, PlotRange -> 1.5 {{-1.5, 1.5}, {-0.5, 1.5}}, 
  Axes -> False], {{p, {0, 0}}, Locator, Appearance -> Graphics@Point[{0, 0}]}, {{goal, {0.16, 0.12}}, Locator, Appearance -> Graphics[{Green, Point[{0, 0}]}]}, {{\[Theta], Pi/6}, 0, 2 Pi, 0.01}, TrackedSymbols :> True, Initialization :> {goal = {0.16, 0.12}}]

2 跟踪:控制机器人跟随某个运动着的状态(即轨迹),实际生活中的例子就是让汽车沿着车道中心线行驶。

一个对模型的优缺点的分析文章,也写到这里

这个模型的特点

PID不适合自动驾驶

整理一下,计算一下

控制论好爽啊,这个东西好有趣。

代码语言:javascript
复制
https://zhuanlan.zhihu.com/p/74380868

关于曲率

代码语言:javascript
复制
https://blog.csdn.net/robinvista/article/details/104582045

遇到一个很不错的文章,写上来

代码语言:javascript
复制
https://blog.csdn.net/robinvista/article/details/106279968

混合A*算法,这个里面有demo

代码语言:javascript
复制
https://ww2.mathworks.cn/help/nav/ref/plannerhybridastar.html

Matlab的A*算法

2019b就可以使用了

代码语言:javascript
复制
https://github.com/karlkurzer/path_planner

狗日的,我好想我的ROS

代码语言:javascript
复制
https://github.com/ApolloAuto/apollo/tree/master/modules/planning/open_space

Appoll

代码语言:javascript
复制
https://blog.csdn.net/robinvista/article/details/118538616
代码语言:javascript
复制
https://github.com/hbanzhaf/steering_functions

ROS,还得搭建环境

代码语言:javascript
复制
https://blog.csdn.net/muyilove/article/details/82346050

奶奶的,这么贵的电脑,屎一样的键盘,我真的醉了,我这个键盘10块钱用了五年了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档