Obstacle Avoiddance之世界空间的坐标转局部空间坐标推导

本文介绍了如何将世界空间中的点转换为局部空间坐标,特别是在帧同步的游戏环境中,需要逻辑层独立计算位置和方向,避免浮点数误差。通过《游戏人工智能编程案例精粹》中的例子,详细解释了转换过程,包括关键的点乘运算和局部空间变换矩阵的构建,以帮助读者理解这一重要概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       根据《游戏人工智能编程案例精粹》第三章中中方法描述,整个算法中需要将世界空间的点转到局部空间。比如场景中有若干障碍物,但并不是每一个都需要检查,也就是先要筛选。这个筛选过程中过滤掉“后面”的障碍物是很重要的环节。所谓“后面”是相对的,是根据朝向来判断的。比如我现在正前方5米有一个障碍物,这个正前方是我移动的方形。那这个障碍物是应该要被检查的。如果我现在转向180度,移动方向就完全背对这个障碍物,虽然我们之间的距离还是5米,但这时不需要检查的。这就是局部坐标空间的典型应用。

        这个可能有个疑问,Unity不是已经提供很方便的转换吗?Transform.Translate还有Transform.worldToLocalMatrix。但是,在某些场景下还是有必要的。比如游戏是帧同步的,位置,方向这些都不能依赖Transform,而是逻辑层自己计算。因为帧同步为了避免浮点数带来的差异需要定点数计算,而且需要做到逻辑层和显示层分离。这两点中任意一点Transform都不能满足。

       原书配套代码中将世界空间的点转到局部空间,但没有展开讲这个局部空间变换的过程。在其提供的源码中分两个函数实现。

      这套书的配套源码人工游戏智能编程案例精粹配套源码Programming-Game-AI-by-Example

//--------------------- PointToLocalSpace --------------------------------
//
//------------------------------------------------------------------------
inline Vector2D 
狭小空间下有常见模型空间约束的机器人末端轨迹优化,结合以下计划书从行业成果收集,项目讨论 等方面回答研究生复试可能的问题 研究六轴机器人的运动学库,至少包含正、逆解,不同坐标系的换函数;(世界坐标系、用户坐标系、工具坐标系、关节坐标系)及仿真研究,给出末端工具的运动学规划模型。狭小空间下有常见模型空间约束(长方体,开口向上)的焊缝路径轨迹规划算法,狭小的意思是至少一个关节不能在立方体内部自由活动,存在运动过程中操作空间碰撞的情况。给出六轴机械臂末端运动路径规划数学表达式,并给出仿真。并结合实际情况,建立一种路径下的轨迹规划效果。 我们小组对六轴串联工业机器人作为的末端轨迹规划算法进行研究,设计了六轴串联工业机器人末端的位置轨迹规划算法、姿态轨迹规划算法和速度规划算法来提高运行效率。进行轨迹规划的方法有两种:一种是在关节空间进行规划,另一种是在笛卡尔空间,即直角坐标空间进行规划。 对机器人进行轨迹规划的主要任务是,根据机器人的工作环境和工作任务要求,求得一系列机器人末端位姿变换的时间序列,使得机器人末端可以正确地从初始姿态沿着期望的轨迹运动到终止位姿,完成工作任务。我们组课题是探究对机器人尾端在狭窄空间内进行活动工作,是具体情景下的特殊应用实践。利用Matlab程序,对机器人末端进行规划避障处理,使用Matlab轨迹规划函数,进行拟真实验,具有极大的研究前景价值。
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值