C#中的虚拟接近传感器
问题描述:
对于个人学习项目,我正在制作一个简单的神经网络来控制模拟汽车通过一个简单的迷宫。为了向网络提供可用的输入,我需要车辆周围的虚拟传感器来指示我离任何障碍物有多近。C#中的虚拟接近传感器
我该怎么办?我看过一些例子,车辆中有线条可以感知它们与障碍重叠的程度。
这意味着,例如,如果前面的传感器线路在墙内40%,则会将0.40值反馈回网络,以便知道障碍物靠近汽车前方的距离。左侧,右侧和后方传感器将重复相同的过程。
我真的很希望我解释得很好,我可以张贴一些照片,但我知道你们不喜欢陌生人的链接。
任何有识之士将不胜感激,谢谢。
答
我将如何我解决这个勾勒一个简单的轮廓:在汽车环境
- 查询对象有余量有意义您的应用程序。例如:如果您希望您的汽车对距离接近2米的障碍物做出响应,请将距离设置为2米。
- 对于这些附近的物体,计算与这些传感器的虚拟射线的交点。为此,你很可能想要使用linesegment-linesegment-intersection的数学结果,可以在这里找到SO:How do you detect where two line segments intersect?这当然要求你能够使用线段为你的环境建模。如果你有弯曲的物体,那么多行近似就足够了。或者,为您的环境对象定义一个接口,以计算光线与其自身的交点。现在,您可以专注于矩形,圆形,弧形,行人,骑自行车的人,马匹等的数学......确保您在传感器的距离应该有多准确,您想花费多少时间写交叉点计算代码。
- 为每个传感器光线选择产生最近交点的物体。
为了能够做到1)(复杂)对象必须提供允许快速测试的边界框。如果你有很多对象,那么你可能不得不寻找一个有效的[空间分区](https://en.wikipedia.org/wiki/Space_partitioning)算法。 –