planning algorithms chapter 3
chapter 3 几何表示和变换

P.S: 总算到了 motion planning 部分了
几何建模
几何建模主要有两类方法:边界表示法和实体表示法。
环境模型可以是二维或三维,实体主要包括障碍物和机器人。
多边形和多面体模型
凸边形定义:子集 $ X \subset \mathbb{R}^{n} $ 为凸集,当且仅当, X 中任意两点连线上的所有点也属于 X 。

边界表示法可以用多边形表示,用一系列的边界点\(\left ( x_{1}, y_{1} \right ),\left ( x_{2}, y_{2} \right ),\cdots ,\left ( x_{m}, y_{m} \right )\)表示。实体表示法可以用半平面的交集表示。
半平面可以表示如下:
\(H_{i} = \left \{ \left ( x,y \right )\in W| f_{i}\left ( x,y \right )\leqslant 0\right \}.\)
刚体变换
2D 变换
旋转:

旋转 + 移动:

3D 变换
yaw, pitch, roll:

旋转变换:

反解旋转角:

利用 atan2 可以得到:

均质变换矩阵(The homogeneous transformation matrix):

刚体运动链的变化
相互依附的刚体的变化更加复杂,一系列依附的刚体被称为联动,如果刚体通过单链关联,这种联动是运动链。
2D 运动链的均质变换:

3D 运动链的均质变换:
图示:

均质变换矩阵:

均质变换矩阵的 DH 参数

非刚体变换
线性变换:
旋转变换是一种特殊的线性变换。
同比例放大缩小:

剪切变换:

当 m12 = 1 时,剪切变换效果如下图:

planning algorithms chapter 3的更多相关文章
- planning algorithms chapter 2
planning algorithms chapter 2 :Discrete Planning 离散可行规划导论 问题定义 在离散规划中,状态是"可数"的,有限的. 离散可行规划 ...
- planning algorithms chapter 1
chapter 1 介绍 什么是规划? 在机器人领域,运动规划和轨迹规划主要用来解决"怎么移动钢琴"的问题,这个问题是如何将钢琴从一个房间移动到另一个房间,并且保证钢琴不和其他事物 ...
- 泡泡一分钟:Automatic Parameter Tuning of Motion Planning Algorithms
Automatic Parameter Tuning of Motion Planning Algorithms 运动规划算法的自动参数整定 Jos´e Cano, Yiming Yang, Brun ...
- Following a Select Statement Through Postgres Internals
This is the third of a series of posts based on a presentation I did at the Barcelona Ruby Conferenc ...
- Github上的1000多本免费电子书重磅来袭!
Github上的1000多本免费电子书重磅来袭! 以前 StackOverFlow 也给出了一个免费电子书列表,现在在Github上可以看到时刻保持更新的列表了. 瞥一眼下面的书籍分类目录,你就能 ...
- Github 的一个免费编程书籍列表
Index Ada Agda Alef Android APL Arduino ASP.NET MVC Assembly Language Non-X86 AutoHotkey Autotools A ...
- Boyer-Moore algorithm
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html Main features performs the comparisons from ri ...
- 字符串匹配--Karp-Rabin算法
主要特征 1.使用hash函数 2.预处理阶段时间复杂度O(m),常量空间 3.查找阶段时间复杂度O(mn) 4.期望运行时间:O(n+m) 本文地址:http://www.cnblogs.com/a ...
- Introduction to Machine Learning
Chapter 1 Introduction 1.1 What Is Machine Learning? To solve a problem on a computer, we need an al ...
随机推荐
- 类嵌套_list泛型_餐馆点菜例
form1内容: private void button1_Click(object sender, EventArgs e) { //声明并初始化一张点菜清单 yiduicai danzi = ne ...
- j.u.c: Java并发包的5大块
//TODO Executors: ExecutorService executor = Executors.newFixedThreadPool(10);... newForkJoinPool(). ...
- node-exporter常用指标含义,比如在prometheus中查询node_load1的指标数据
参考: https://blog.csdn.net/yjph83/article/details/84909319 https://www.gitbook.com/book/songjiayang/p ...
- zynq开发板外设配置演示
有幸得到米尔电子zynq系列开发板Z-turn Board试用体验,下面说说我这款zynq系列的Z-TURN板子外设配置.从Z-turn Board原理图上看,目前可以配置的FPGA管脚大概有100多 ...
- CSS 多列布局
CSS3 新增多列布局适合排版很长的文字内容,让其多列显示. 一.多列布局 语法格式: columns:column-width | column-count; column-width:定义每列的宽 ...
- ajax加载验证码这样不断刷新的文件无法刷新问题
看了很多网站,在前端不设置缓存,这样会把需要缓存的数据漏掉 觉得欺骗浏览器的方式很不错,方式如下 为了在所有浏览器上都能实现点击验证码的刷新功能,我们可以在上述代码中添加随机参数,对浏览器进行欺骗. ...
- 机器学习笔记4:SVM支持向量积的推导过程
内容来自:https://github.com/GreedyAIAcademy/Machine-Learning 最初 支持向量机的目的:找到一条好的分割线 什么杨的分割线最好? 有最大间隔的分割线最 ...
- 92. 反转链表 II.反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。
public ListNode reverseBetween(ListNode head, int m, int n) { ListNode dummy = new ListNode(0); //虚拟 ...
- linux启动介绍
1. linux内核3.0之前,使用init(初始化 )进程管理的启动程序.一旦升级到3.0(centos7)使用systemd的方式进行管理. 2. 启动模式:启动后执行哪些典型的操作.vi/etc ...
- nginx.从路人到入门
nginx 提供各种各样的服务器功能,本文记录 nginx 最基础的操作: 开启.停止.重载配置 静态文件服务器 反向代理 本文操作系统环境为 ubuntu18 安装 官方安装指导 开启.停止.重载配 ...