我正在尝试创建一个程序,该程序将使模拟机器人以尽可能高效的方式在空间中移动并绕过障碍物。我有一个硬编码到代码中的障碍列表,我必须将这些点分成单独的变量,但是列表中可以有无限数量的障碍。每个障碍物都有行号和列号,这就是我确定机器人运动方式的方式。
我尝试创建一个列表,然后获取该列表的长度,并用它来分隔列表中的不同坐标,但是由于应该是随机数量的障碍物,因此必须更改代码每次添加另一个障碍。
obstacles = [(2,3),(3,5),(5,2)]
#list of the obstacle coordinates
length = range(0,len(obstacles))
obs1,obs2,obs3,obs4=[obstacles[i] for i in length]
#Seperation of the coordinates into groups
obsRow,obsCol=obs1
#Seperation into the row and column of the coordinates
此函数提供输出,但是仅当列表中的障碍物数量等于其后的障碍物数量(例如:obs1)时,该输出才起作用。无论列表中有多少障碍,我都希望该功能能够正常工作。
答案 0 :(得分:0)
如果要处理的空间和障碍物数量可能是无限的,则可能需要研究A *寻路。这是一种找到最有效路线的方法,而无需详尽尝试每种可能的组合(请参阅旅行商问题)。
以下article提供了一个示例,说明了如何在Python中解决相关问题以及相关理论,以了解解决方案背后的概念。