先上结论: 在构型空间(也就是C空间中),不管机器人的构型如何,有几个自由度,它在构型空间中都只是一个点!!!

1. Work-Space与C-Space的关系:

方向 操作 特点
C-Space => Work-Space 正运动学 满射
Work-Space => C-Space 逆运动学 多解、奇异点

既然机器人在构型空间中就是一个点,那么在C-space中设计的planning算法就不再是局限于某一机器人系统的planning算法,而是理论上可以扩展到任意机器人系统。

机器人类型 C-Space
平面机器人 特殊欧式群SE(2): ( x , y , θ ) T (x,y,\theta)^T (x,y,θ)T
无人机 特殊欧式群SE(3): ( x , y , z , r o l l , p i t c h , y a w ) T (x,y,z,roll,pitch,yaw)^T (x,y,z,roll,pitch,yaw)T
六轴机械臂 即关节空间: ( θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , θ 6 ) T (\theta_1,\theta_2,\theta_3,\theta_4,\theta_5,\theta_6)^T (θ1​,θ2​,θ3​,θ4​,θ5​,θ6​)T

2. 对于平面移动机器人来说: 它的构型空间是通过对障碍物进行膨胀小车的大小得到的,此消彼长,因此小车缩成了一个点。

3. 对于平面二连杆臂来说: 它的构型空间是 ( θ 1 , θ 2 ) T (\theta_1,\theta_2)^T (θ1​,θ2​)T,即它的关节空间,对于二连杆来说也就是一个平面,它对应的拓扑平面是一个环,也就是下图中的(b)图


4. 障碍物到C-Space的转换

Work-space中的障碍物在C空间中一般都是超曲面,在C-space中应用规划时,一般要把机械臂工作空间内的障碍物在C空间中用数学来描述。

障碍物B在robot的构型空间表示为:
C O r o b o t ( B ) = x ∈ C s p a c e r o b o t ∣ ( r o b o t ) x ∩ B ≠ 0 CO_{robot}(B)={x\in Cspace_{robot}|(robot)_x \cap B\neq0 } COrobot​(B)=x∈Cspacerobot​∣(robot)x​∩B​=0
其中, ( r o b o t ) x (robot)_x (robot)x​表示robot与关节变量x的关系,当 x ∈ C O r o b o t ( B ) x\in CO_{robot}(B) x∈COrobot​(B),则robot与障碍物B会发生干涉。

思路:

  • step1:使用解析函数描述障碍物表面

  • step2:使用机器人最大直径膨胀障碍物

  • step3:将膨胀后的障碍物表面的点与机器人的位置关系表示为函数形式,用于碰撞检测

  • step4:应用搜索算法,如RRT等

    其实使用RRT等采样算法时,完全可以随机撒多维点,然后使用正运动学来判断是否与障碍物发生干涉(注意,这里的正运动学是广义的,要判断每个连杆是否发生碰撞,常用的碰撞检测算法有AABB等),此时障碍物是描述在Work-space的,这样就避免了障碍物到C-Space的转换!

本文只是简要介绍一下关于C空间的理解,真正要应用运动规划在机器人上,还需要有很多坑要踩:如何均匀采样、如何碰撞检测、如何快速求逆解等等等等.

推荐一本比较经典的运动规划书籍《Principles of Robot Motion - Theory, Algorithm and Implementation》


声明: 图源网络,侵删!

运动规划中C空间的理解相关推荐

  1. 【IEEE2014】EET:基于采样的机器人运动规划中的平衡勘探与开发

    EET:基于采样的机器人运动规划中的平衡勘探与开发 摘要: 本文提出了一种用于运动规划的探索/利用树(EET)算法.EET规划者故意用概率的完整性来换取计算效率.这种权衡使EET规划器能够比最先进的基 ...

  2. 不连续曲线 highcharts_无人车运动规划中常用的方法:多项式曲线

    在无人车的运动规划(Motion Planning)过程中,比如在速度规划和路径规划时经常会遇到这样的问题: 速度规划:已知当前的速度信息,以及目标的速度信息,需要生成一条平滑的速度曲线,从当前速度到 ...

  3. 自动驾驶车辆运动规划综述-2015

    0.摘要 智能车辆已经提高了其在受控环境下实现高度.甚至完全自动驾驶的能力.使用车载传感器和通信网络系统(即基础设施和其它车辆)接收场景信息.考虑到可用的信息,不同的运动规划和控制技术已经被实现用于复 ...

  4. 百度Apollo自动驾驶专题讲座笔记之运动规划模块

    在百度技术学院有Apollo的技术专题课程,对各个模块都有一个入门级的课程,对于了解各个模块间的相互作用关系有很大的作用,很适合对自动驾驶领域感兴趣的人的入门课程.感谢百度Apollo开放了这么好的课 ...

  5. 前沿科技 | 中科院科学家在关于运动规划的环路机制研究方面获进展

    来源:中国科学院网站 今年5月11日,Nature Communications在线发表了题为<皮层上丘环路在记忆依赖感知决策任务中的作用机制>的研究论文,该研究由中国科学院科学家团队-- ...

  6. 机器人运动规划调研(pending)

    文章目录 前言 发展历程 通用运动规划方法 基于自由空间 Cfree几何构造的规划方法 可视图法 前言 阅读移动机器人运动规划研究综述心得 总结一下,机器人运动规划的发展历程,算法和思路. 搜索策略和 ...

  7. 汇总!自动驾驶路径规划中的障碍物处理方法总结

    作者 | 西涯先生  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/635971229 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨 ...

  8. Matlab之在城市环境中基于动态占用网格图的的运动规划仿真(附源码)

    目录 一.介绍 二.设置场景和基于网格的跟踪器 三.设置运动规划器 四.结果 五.总结 六.程序 此示例演示如何使用 Frenet 参考路径在城市驾驶场景中执行动态重新规划.在此示例中,将使用本地环境 ...

  9. 对ROS局部运动规划器Teb的理解

    TEB算法过程 算法原理方面可参考下面的博文: <Trajectory modification considering dynamic constraints of autonomous ro ...

最新文章

  1. Docker初次见面
  2. 怎么预约鸿蒙系统,华为鸿蒙2.0系统-鸿蒙2.0系统预约-艾艾软件园
  3. Mycat环境搭建教程收集(待实践)
  4. 科大星云诗社动态20210811
  5. js / php 网站底部版权文字自动改变年份
  6. 按钮提交所有数据_多人编辑,自动汇总,领导可见所有?用 SeaTable 表格更简单...
  7. Linux学习总结(23)——SSH协议详解
  8. 3-Scala控制结构
  9. qt msvc编译中文乱码解决
  10. 通过CImageList加载图标 报错
  11. 面试题:赛马最快N匹
  12. STM8S003外部中断配置
  13. 电源设计那些事儿-ppt01
  14. 凸包(Graham扫描法构建)
  15. 单片机C语言中的位运算符,单片机c语言教程第八课 运算符和表达式(位运算符)...
  16. docker仓库mysql所有版本_Docker 安装 MySQL8.0
  17. 云控系统机房搭建为什么用到网络交换机?
  18. 外贸供应链ERP怎么选?全流程综合管理解析
  19. 信息论小课堂:纠错码(海明码在信息传输编码时,通过巧妙的信道编码保证有了错误能够自动纠错。)
  20. cmdy5(cmdy5庆余年)

热门文章

  1. 太平洋电脑网论坛宣布即将关闭下线
  2. Magenta——a project from the Google Brain team
  3. Clockwise/Spiral Rule
  4. 美亚柏科:与阿里就公安云计算签合作协议
  5. Java企业搜索平台:起点R3(Rivulet ES) V5.0 使用简介
  6. 3分钟学会在 ASP.NET MVC 中创建、读取和编辑 Excel 电子表格
  7. office word 2007 无法打开 .doc
  8. Carson带你学JVM:图文解析Java虚拟机内存结构
  9. 关于Thread.IsBackground属性的理解
  10. 使用file-saver导出文件