机器人运动规划中的构形空间(Configuration Space)
A key concept in motion planning is configuration space, or C-space for short. Every point in the C-space C corresponds to a unique configuration q of the robot, and every configuration of the robot can be represented as a point in C-space. This description is convenient because it allows us to describe the complex 3D shape of the robot with a single n-dimensional point. For example, the configuration of a robot arm with n joints can be represented as a list of n joint positions, q = (θ1, . . . , θn). The free C-space Cfree consists of the configurations where the robot neither penetrates an obstaclen or violates a joint limit.
The workspace obstacles partition the configuration space C into two sets, the free space Cfree and the obstacle space Cobs, where C = Cfree ∪ Cobs. Joint limits are treated as obstacles in the configuration space. With the concepts of Cfree and Cobs, the path planning problem reduces to the problem of finding a path for a point robot among the obstacles Cobs. If the obstacles break Cfree into separate connected components, and qstart and qgoal do not lie in the same connected component, then there is no collision-free path. The goal of path planning is to find a path in the work space from the initial position to the goal position, avoiding all collisions with the obstacles. This is a difficult problem to visualize and solve in the physical space, particularly as dimension grows large. But in configuration space the problem is straightforward.
一般移动机器人的路径规划问题都将其假设为一个点,忽略外形以及尺寸来简化问题。但在实际控制机器人时就必须考虑其真实尺寸,这时机器人就不能被简单地当做一个点。

What if the robot is not a point?

对平面机器人来说,C-Space就是以机器人的尺寸为基础,对工作空间进行一定的膨胀即可得到:

如果对工作空间中的障碍物进行膨胀产生了重叠的部分,如下图所示,则表示机器人不能通过那个区域:

C-Space与机器人实际形状和尺寸有关,从下图可以看出中间和右边两个机器人由于尺寸(直径)太大而不能通过工作空间的某些区域:

另外机器人的形状也会影响C-Space。下图中的直角三角形代表一个三角形状的机器人,只能在平面内平移,其参考位置点在图中的(x,y)处。灰色矩形是工作空间内的障碍物,将机器人贴着障碍物边界滑行一圈,追踪参考点的位置可以画出一个黑色粗线框的多边形区域。这个区域就是该三角形机器人C-Space中的障碍区域。

下面是一个关节型机器人的例子。平面二连杆机器人有两个自由度,可以绕两个关节分别旋转0-360°,中间的图描绘了在工作空间中机器人从初始位置开始经过一系列中间点避开障碍物A、B、C运动到目标位置。右图是与之对应的C-Space中的情形:

注意θ1 = 0和θ1 = 2π(θ2 = 0和θ2 = 2π)其实是一个角度,因此上面C-Space的左右边界和上下边界其实是连在一起的。其拓扑结构是一个圆环面(torus),正方形构型空间可从圆环面的θ1 = 0、θ2 = 0处切开、展平得到。
任何落在C-obstacle中的点都表示位于该构型时机械臂与障碍物发生了碰撞。C-Space中从start到end的路径代表了一条工作空间中无碰撞的路径。注意障碍物将Cfree分隔成了三个连通区域(connected components
),且起点和终点处于同一连通区域中。然而下图这种情况,起始状态qA和目标状态qB分别位于不连通的区域内,机械臂从A运动到B无论怎么走必然会撞到障碍物。

参考:
Modern Robotics Mechanics, Planning, and Control
Robotics Modelling, Planning and Control Chapter 12. Motion Planning
Springer Handbook of Robotics Chapter 5. Motion Planning
Robotic Motion Planning: Configuration Space
机器人运动规划中的构形空间(Configuration Space)的更多相关文章
- 如何用MoveIt快速搭建机器人运动规划平台?
MoveIt = RobotGo,翻译成中文就是“机器人,走你!”所以,MoveIt的主要就是一款致力于让机器人能够自主运动及其相关技术的软件,它的所有模块都是围绕着运动规划的实现而设计的. 两个月前 ...
- V-rep学习笔记:机器人路径规划1
Motion Planning Library V-REP 从3.3.0开始,使用运动规划库OMPL作为插件,通过调用API的方式代替以前的方法进行运动规划(The old path/motion ...
- 第三期 第三期 搜索——1.运动规划(motion_planing)
运动规划的根本问题在于机器人可能存在于一个这样的世界中, 它可能想找到一条到达这个目标的路径,那么就需要指定一个到达那里的计划, 自动驾驶汽车也会遇到这个问题.他可能处于高速公路的附近的街道网络中,他 ...
- 机器人学 —— 轨迹规划(Configuration Space)
之前的轨迹规划中,我们只考虑了质点,没有考虑机器人的外形与结构.直接在obstacle map 中进行轨迹规划,然而世纪情况中,机器人有固定外形,可能会和障碍物发生碰撞.此情况下,我们针对机器人自由度 ...
- ROS(indigo)MoveIt!控制ABB RobotStudio 5.6x 6.0x中机器人运动
Gazebo以及相关参考文献,参考: ROS(indigo)ABB机器人MoveIt例子 这里需要配置RobotStudio,请参考ROS官网教程.下面列出要点: window端配置结束后,在Ub ...
- 【2018.04.19 ROS机器人操作系统】机器人控制:运动规划、路径规划及轨迹规划简介之一
参考资料及致谢 本文的绝大部分内容转载自以下几篇文章,首先向原作者致谢,希望自己能在这些前辈们的基础上能有所总结提升. 1. 运动规划/路径规划/轨迹规划的联系与区别 https://blog.csd ...
- V-rep学习笔记:机器人路径规划2
路径规划问题是机器人学研究的一个重要领域,它是指给定操作环境以及起始和目标的位置姿态,要求选择一条从起始点到目标点的路径,使运动物体(移动机器人或机械臂)能安全.无碰撞地通过所有的障碍物而达到目标位置 ...
- 运动规划 (Motion Planning): MoveIt! 与 OMPL
原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 最近有不少人询问有关MoveIt!与OMPL相关的话题,但是大部分问题都集中于XXX功能怎么实现,XXX错 ...
- 运动规划 (Motion Planning): MoveIt! 与 OMPL---44
原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 最近有不少人询问有关MoveIt!与OMPL相关的话题,但是大部分问题都集中于XXX功能怎么实现,XXX错 ...
随机推荐
- .Net AppDomain详解(一)
AppDomain是CLR的运行单元,它可以加载Assembly.创建对象以及执行程序.AppDomain是CLR实现代码隔离的基本机制. 每一个AppDomain可以单独运行.停止:每个AppDom ...
- 深度学习在推断阶段(inference)的硬件实现方法概述
推断(Inference),就是深度学习把从训练中学习到的能力应用到工作中去. 精心调整权值之后的神经网络基本上就是个笨重.巨大的数据库.为了充分利用训练的结果,完成现实社会的任务,我们需要的是一个能 ...
- UEFI与 Legacy BIOS两种启动模式详解
(1). UEFI启动模式 与 legacy启动模式 legacy启动模式: 就是这么多年来PC一直在使用的启动方式(从MBR中加载启动程序),UEFI BIOS作为一种新的BIOS自然也应该兼容这种 ...
- kafka-python的gevent模式和kafka的兼容性
使用gevent会杀死kafka的consumer线程:据查:kafka-python对gevent的支持不是太好,可以使用pykafka:但是可以kafka-python可以结合eventlet使用 ...
- Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 ...
- Spring配置中的"classpath:"与"classpath*:"的区别研究
概念解释及使用场景: classpath是指WEB-INF文件夹下的classes目录. 通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下: <!--系 ...
- iOS截屏方法
//获取屏幕截屏方法 - (UIImage *)capture { // 创建一个context UIGraphicsBeginImageContextWithOptions(self.view.bo ...
- iOS开发-仿大众点评iPad侧边导航栏
昨天其实已经写了一篇侧边栏的文章,不过感觉还不是很清晰,这篇文章算是补充吧,iPad上看了大众点评的侧边栏,基本上百分之九十类似,具体效果可参考下图: 对比昨天主要做了两个修改,一个是图片和文字的显示 ...
- mysql分布式数据库中间件对比
目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 1. 什么是中间件 传统的架构模式就是 应用 ...
- 用GibbsLDA做Topic Modeling
http://weblab.com.cityu.edu.hk/blog/luheng/2011/06/24/%E7%94%A8gibbslda%E5%81%9Atopic-modeling/#comm ...