运动规划中C空间的理解
先上结论: 在构型空间(也就是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空间的理解相关推荐
- 【IEEE2014】EET:基于采样的机器人运动规划中的平衡勘探与开发
EET:基于采样的机器人运动规划中的平衡勘探与开发 摘要: 本文提出了一种用于运动规划的探索/利用树(EET)算法.EET规划者故意用概率的完整性来换取计算效率.这种权衡使EET规划器能够比最先进的基 ...
- 不连续曲线 highcharts_无人车运动规划中常用的方法:多项式曲线
在无人车的运动规划(Motion Planning)过程中,比如在速度规划和路径规划时经常会遇到这样的问题: 速度规划:已知当前的速度信息,以及目标的速度信息,需要生成一条平滑的速度曲线,从当前速度到 ...
- 自动驾驶车辆运动规划综述-2015
0.摘要 智能车辆已经提高了其在受控环境下实现高度.甚至完全自动驾驶的能力.使用车载传感器和通信网络系统(即基础设施和其它车辆)接收场景信息.考虑到可用的信息,不同的运动规划和控制技术已经被实现用于复 ...
- 百度Apollo自动驾驶专题讲座笔记之运动规划模块
在百度技术学院有Apollo的技术专题课程,对各个模块都有一个入门级的课程,对于了解各个模块间的相互作用关系有很大的作用,很适合对自动驾驶领域感兴趣的人的入门课程.感谢百度Apollo开放了这么好的课 ...
- 前沿科技 | 中科院科学家在关于运动规划的环路机制研究方面获进展
来源:中国科学院网站 今年5月11日,Nature Communications在线发表了题为<皮层上丘环路在记忆依赖感知决策任务中的作用机制>的研究论文,该研究由中国科学院科学家团队-- ...
- 机器人运动规划调研(pending)
文章目录 前言 发展历程 通用运动规划方法 基于自由空间 Cfree几何构造的规划方法 可视图法 前言 阅读移动机器人运动规划研究综述心得 总结一下,机器人运动规划的发展历程,算法和思路. 搜索策略和 ...
- 汇总!自动驾驶路径规划中的障碍物处理方法总结
作者 | 西涯先生 编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/635971229 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨 ...
- Matlab之在城市环境中基于动态占用网格图的的运动规划仿真(附源码)
目录 一.介绍 二.设置场景和基于网格的跟踪器 三.设置运动规划器 四.结果 五.总结 六.程序 此示例演示如何使用 Frenet 参考路径在城市驾驶场景中执行动态重新规划.在此示例中,将使用本地环境 ...
- 对ROS局部运动规划器Teb的理解
TEB算法过程 算法原理方面可参考下面的博文: <Trajectory modification considering dynamic constraints of autonomous ro ...
最新文章
- Docker初次见面
- 怎么预约鸿蒙系统,华为鸿蒙2.0系统-鸿蒙2.0系统预约-艾艾软件园
- Mycat环境搭建教程收集(待实践)
- 科大星云诗社动态20210811
- js / php 网站底部版权文字自动改变年份
- 按钮提交所有数据_多人编辑,自动汇总,领导可见所有?用 SeaTable 表格更简单...
- Linux学习总结(23)——SSH协议详解
- 3-Scala控制结构
- qt msvc编译中文乱码解决
- 通过CImageList加载图标 报错
- 面试题:赛马最快N匹
- STM8S003外部中断配置
- 电源设计那些事儿-ppt01
- 凸包(Graham扫描法构建)
- 单片机C语言中的位运算符,单片机c语言教程第八课 运算符和表达式(位运算符)...
- docker仓库mysql所有版本_Docker 安装 MySQL8.0
- 云控系统机房搭建为什么用到网络交换机?
- 外贸供应链ERP怎么选?全流程综合管理解析
- 信息论小课堂:纠错码(海明码在信息传输编码时,通过巧妙的信道编码保证有了错误能够自动纠错。)
- cmdy5(cmdy5庆余年)
热门文章
- 太平洋电脑网论坛宣布即将关闭下线
- Magenta——a project from the Google Brain team
- Clockwise/Spiral Rule
- 美亚柏科:与阿里就公安云计算签合作协议
- Java企业搜索平台:起点R3(Rivulet ES) V5.0 使用简介
- 3分钟学会在 ASP.NET MVC 中创建、读取和编辑 Excel 电子表格
- office word 2007 无法打开 .doc
- Carson带你学JVM:图文解析Java虚拟机内存结构
- 关于Thread.IsBackground属性的理解
- 使用file-saver导出文件