64,637
社区成员
发帖
与我相关
我的任务
分享
设置当前行走模式为左手不摸墙。
设置当前行走模式不是按既定最短绕墙路线行走。
①
如果到达目标abs(tx-x)<=robotl/2 && abs(ty-y)<=robotw/2,算法结束。
如果当前行走模式不是按既定最短绕墙路线行走:
如果当前行走模式为左手不摸墙:
根据机器人和目标的tx,ty坐标的差的大小和符号,确定当前方向。
根据遇到障碍情况调整当前方向。具体为:
前方无障碍,=>④
前方有障碍,按照前方撞墙,右转,左手摸墙继续前行模式改变当前方向,直到当前方向无障碍,
计算既定最短绕墙路线,目标位置tx,ty,具体算法为:
记住起点位置robotx,roboty,保持左手摸墙往前走,直到到达目标tx,ty或回到起点,记录经过的所有位置的方向和距离dis(i)=abs(tx-x)+abs(ty-y)
如果到达目标abs(tx-x)<=robotl/2 && abs(ty-y)<=robotw/2,返回刚记录的pathn,pathd=dirs
如果回到起点则必然组成一个环形路径。
在组成环形路径的所有位置中,选择一个abs(tx-x)+abs(ty-y)最小的位置m作为本次要去的目标,
再在逆时针或顺时针绕圈从起点到达m的两个方向中选较短的方向,作为pathn,dirs返回。
按照刚计算好的既定最短绕墙路线走下一步,并进入按既定最短绕墙路线行走模式。
如果当前行走模式是按既定最短绕墙路线行走:
按照计算好的既定最短绕墙路线走下一步。
如果走完既定最短绕墙路线,回到左手不摸墙行走模式。
④
向前走一步。
=>①
赵兄是只看了一个标题啊。。 [quote=引用 4 楼 zhao4zhong1 的回复:] 百度搜相关关键字。
赵兄是只看了一个标题啊。。 百度搜相关关键字。
赵兄是只看了一个标题啊。。 [quote=引用 16 楼 赵4老师的回复:][quote=引用 11 楼 kobehahaha 的回复:] [quote=引用 4 楼 zhao4zhong1 的回复:] 百度搜相关关键字。
设置当前行走模式为左手不摸墙。
设置当前行走模式不是按既定最短绕墙路线行走。
①
如果到达目标abs(tx-x)<=robotl/2 && abs(ty-y)<=robotw/2,算法结束。
如果当前行走模式不是按既定最短绕墙路线行走:
如果当前行走模式为左手不摸墙:
根据机器人和目标的tx,ty坐标的差的大小和符号,确定当前方向。
根据遇到障碍情况调整当前方向。具体为:
前方无障碍,=>④
前方有障碍,按照前方撞墙,右转,左手摸墙继续前行模式改变当前方向,直到当前方向无障碍,
计算既定最短绕墙路线,目标位置tx,ty,具体算法为:
记住起点位置robotx,roboty,保持左手摸墙往前走,直到到达目标tx,ty或回到起点,记录经过的所有位置的方向和距离dis(i)=abs(tx-x)+abs(ty-y)
如果到达目标abs(tx-x)<=robotl/2 && abs(ty-y)<=robotw/2,返回刚记录的pathn,pathd=dirs
如果回到起点则必然组成一个环形路径。
在组成环形路径的所有位置中,选择一个abs(tx-x)+abs(ty-y)最小的位置m作为本次要去的目标,
再在逆时针或顺时针绕圈从起点到达m的两个方向中选较短的方向,作为pathn,dirs返回。
按照刚计算好的既定最短绕墙路线走下一步,并进入按既定最短绕墙路线行走模式。
如果当前行走模式是按既定最短绕墙路线行走:
按照计算好的既定最短绕墙路线走下一步。
如果走完既定最短绕墙路线,回到左手不摸墙行走模式。
④
向前走一步。
=>①
[/quote]
哈,编程的快感之一在于把一团复杂的逻辑关系慢慢理清
记得初中考高中,就有这道题,答完就觉得错了,然后果然错了。没考虑先借酒瓶的情况。