【动手学运动规划】 4.1 图搜的基础

news2024/11/26 13:55:10

🏰代码及环境配置:请参考 环境配置和代码运行!


4.1.1 基础概念

4.1.1.1 Configuration Space(配置空间)

  • configuration: 机器人上每一点位置的完整说明
  • degrees of freedom: 机器人能够独立移动或旋转的关节数量(下图所示有4个自由度)

  • configuration space(C-space): 机器人所有可能配置的n维空间,在C-space中,机器人的每个configuration就是一个点,下图即为一个机器人的configuration space,其中 A ( q ) A(q) A(q)是机器人的configuration,白色区域对于 A ( q ) A(q) A(q)是安全的,浅灰色区域是 A ( q ) A(q) A(q)和障碍物之间可能的碰撞区域。

4.1.1.2 C-space Obstacle

  • Planning in workspace

    workspace就是机器人真实的一个工作空间,即我们所处的物理世界。但如果在workspace中进行机器人的路径规划是比较麻烦的,主要是由于:

    1. 每个机器人拥有不同的形状和大小
    2. 碰撞检测需要知道机器人的几何信息
  • Planning in C-space

    1. 在C-space中,机器人可以抽象为一个点
    2. 感知到的障碍物信息可以提前部署到C-space中,我们成为C-obstacle
    3. 此时,可以将C-space分为自由空间C-free和障碍物空间C-obstacle,即 C s p a c e = ( C o b s t a c l e )   U   ( C f r e e ) C_{space} = (C_{obstacle})\ U\ (C_{free}) Cspace=(Cobstacle) U (Cfree)
    4. 然后路径规划就可以在C-free中找一个连接 q s t a r t q_{start} qstart q g o a l q_{goal} qgoal的路径

如下图:我们将在workspace中的规划问题转为C-space下的规划问题,此时在路径规划时,将机器人当成一个点来处理,极大地降低复杂度。

4.1.2 图

图是一种抽象的数据结构,用于表示对象之间的关系或连接。它由节点(也称为顶点)和边组成,节点代表实体或对象,而边则表示这些实体或对象之间的某种关系或连接。

4.1.2.1 图的基本组成

  • 节点(Vertex):图中的基本元素,通常表示为圆圈、点或任何其他形状的符号。节点可以代表任何事物,如人、地点、事物、概念等。
  • 边(Edge):连接两个节点的线段或箭头,表示这两个节点之间存在某种关系或连接。边可以是有向的(表示单向关系)或无向的(表示双向关系)。

4.1.2.2 图的类型

  • 无向图(Undirected Graph):图中的边都是无向的,即没有箭头表示方向。在无向图中,如果两个节点之间有边相连,则它们是相邻的。

  • 有向图(Directed Graph):图中的边都是有向的,即每条边都有一个箭头表示方向。在有向图中,如果两个节点之间有一条从A指向B的边,则称A是B的前驱,B是A的后继。

  • 加权图(Weighted Graph):图中的每条边都有一个与之相关联的权值(也称为权重或成本),表示两个节点之间连接的某种度量或代价。

4.1.2.3 图的表示方法

图可以用多种方式进行表示,常见的表示方法有邻接矩阵和邻接表两种。

  • 邻接矩阵(Adjacency Matrix):使用二维数组来表示图。数组的行和列分别对应图中的节点,数组中的元素表示节点之间是否存在边以及边的权重(对于加权图)。
    下图为带权有向图的邻接矩阵:

  • 邻接表(Adjacency List):使用数组或链表的数组来表示图。每个节点对应一个链表或数组,链表中存储与该节点直接相连的节点以及边的权重(对于加权图)。
    下图为无向图的临接表:

4.1.2.4 状态空间图(State Space Graph)

  • 状态空间图是搜索算法的数学表示,用于将问题抽象成图的形式。
  • 每一个搜索问题都有一个对应的状态空间图。
  • 常见的状态空间图有:grid map,probabilistic map, state graph sampled state space和state graph sampled control space等,如下图所示:

4.1.3 图搜索概述

基于图搜索的大致流程如下:

  • 维护一个container去存储将要访问的节点
  • container初始化的时候只有起始节点 x s t a r t x_{start} xstart
  • 开始循环
    • 从container中取出一个节点,取出的规则需要遵循提前定义好的reward function
    • 获得取出节点的所有邻节点
    • 将所有的邻节点放入container
  • 结束循环

其中核心在于如何以高效的方式从container中取出正确的节点,以便尽快达到目标状态,基于此,我们在接下来将介绍以下几种搜索算法 —— DFS (深度优先搜索) 、BFS (广度优先搜索)、Dijkstra、A*、Hybrid A*等。

推荐阅读

  • 端到端理论与实战
  • 动手学轨迹预测
  • 动手学运动规划
  • 动手学行为决策
  • 强化学习入门笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2236282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何用彩屏显示精美的动画

1什么样的动画是精美的? 1)视觉暂留 视频播放的原理基于人眼的视觉暂留现象。‌视频是由一系列静态图像(帧)组成的,这些图像以特定的频率(帧率)连续播放,使得人眼无法区分单帧图像&…

信息安全工程师(81)网络安全测评质量管理与标准

一、网络安全测评质量管理 遵循标准和流程 网络安全测评应严格遵循国家相关标准和流程,确保测评工作的规范性和一致性。这些标准和流程通常包括测评方法、测评步骤、测评指标等,为测评工作提供明确的指导和依据。 选择合格的测评团队 测评团队应具备相关…

【CTFN】基于耦合翻译融合网络的多模态情感分析的层次学习

同样用了翻译模块的论文->MTMSA 代码地址->github地址 abstract 多模态情感分析是一个具有挑战性的研究领域,涉及多个异构模态的融合。主要的挑战是在多模式融合过程中出现一些缺失的模式。然而,现有的技术需要所有的模态作为输入,因…

1.每日SQL----2024/11/7

题目: 计算用户次日留存率,即用户第二天继续登录的概率 表: iddevice_iddate121382024-05-03232142024-05-09332142024-06-15465432024-08-13523152024-08-13623152024-08-14723152024-08-15832142024-05-09932142024-08-151065432024-08-131123152024-…

安利一款开源企业级的报表系统SpringReport

SpringReport是一款企业级的报表系统,支持在线设计报表,并绑定动态数据源,无需写代码即可快速生成想要的报表,可以支持excel报表和word报表两种格式,同时还可以支持excel多人协同编辑,后续考虑实现大屏设计…

使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径

在进行WPF开发时,System.Windows.Forms.FolderBrowserDialog的选择文件夹功能不支持输入路径: 希望能够获得下图所示的选择文件夹功能: 于是,通过NuGet中安装Ookii.Dialogs.Wpf包,并创建一个简单的工具类: …

RHCE---搭建lnmp云存储

一、恢复快照后,检查安全性(查看selinux 以及防火墙) 二、搭建LNMP环境 [rootserver ~]# yum -y install nginx mariadb-server php*三、上传软件 1、将nextcloud-25.0.1.zip压缩包传递到根目录下 2、解压缩nextcloud-25.0.1.zip &#xf…

Day95 Docker

Docker的使用 1、Docker是什么 docker是一个用来管理镜像的容器 容器(container):可以装东西 镜像( image ):所谓的镜像,你可以认为就是一个虚拟机 虚拟机:用软件代理硬件来模拟整个计算机的这样一套软件就成为 虚拟机 镜像说白了…

从分析Vue实例生命周期开始,剖析Vue页面跳转背后执行过程

文章目录 1.概要2.Vue实例生命周期3.生命周期函数解释4.存在父子组件情况页面执行过程5. 分析路由跳转页面执行过程6.扩展补充7.小结 1.概要 本文旨在分析Vue页面进行路由切换时,Vue背后的运行过程,旨在让大家更加清晰地明白Vue页面运行过程中钩子方法的…

超分辨重建——复现SwinIR网络推理测试(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《图像增强》 &a…

【青牛科技】应用方案 | D75xx-150mA三端稳压器

概 述 D75XX系列是一套三端高电流低压稳压器。它们可以提供 150mA 的输出电流和允许输入电压高达30V。它们有几个固定的输出电压范围为3.0 V至5.0 V。CMOS 技术确保低电压降和低静态电流。 虽然这些设备主要设计为固定电压调节器,但它们可以与外部元件一起使用&…

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测 目录 BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 …

WPF 打包

打包为单个exe文件直接运行 - - -版本.NET8 新建WPF项目 右键 - 发布 选择发布文件夹 选择发布文件夹 选择发布文件夹 配置 配置,保存 发布 WPF 打包为exe安装程序 示例 实现思路 引导项目中嵌入其它项目可运行目录的zip引导项目中解压zip文件到指定文件夹是…

三维测量与建模笔记 - 3.3 张正友标定法

上图中,提到了世界坐标系在张正友标定法中的设计,可以理解为将世界坐标系的原点放到了棋盘格左上角点的位置,并且棋盘格平面上所有点的Z为0,将Z规定为0的话,可以简化掉一个维度(列向量r3)。去掉…

【解决办法】无法使用右键“通过VSCode打开文件夹”

个人博客:苏三有春的博客 前言 作者的编程环境为VScode,工作时常使用VScode打开整个工程文件夹。如果先打开VScode再从VScode中选择文件夹打开效率太慢,作者一般使用的方式是右键文件夹,直接选择"通过code打开文件夹"…

推荐一款ETCD桌面客户端——Etcd Workbench

Etcd Workbench 我相信很多人在开始管理ETCD的时候都去搜了Etcd客户端工具,然后找到了官方的Etcd Manager,但用完之后发现它并不好用,还不支持多连接和代码格式化,并且已经好几年不更新了,于是市面上就有了好多其他客…

Docker配置及简单应用

谈论/理解 Docker 的常用核心部分,以下皆在 Ubuntu 操作系统下进行 1 国内源安装 Docker-ce 1.1 配置 Linux 内核流量转发 因为docker和宿主机的端口映射,本质是内核的流量转发功能,所以要对其进行配置 1.1.1 未配置流量转发 如果没有配置流…

(十二)JavaWeb后端开发——MySQL数据库

目录 1.数据库概述 2.MyQSL 3.数据库设计 DDL 4.MySQL常见数据类型 5.DML 1.数据库概述 数据库:DataBase(DB),是存储和管理数据的仓库 数据库管理系统:DataBase ManagementSystem(DBMS),操纵和管理数据库的大型软件 SQL&a…

fastadmin后台列表根据所选中的行统计指定字段|fastadmin点击checkbox或反选统计某个字段的值

当选中对应行时,统计选中行的用户注册数和用户点击数。 此项功能需要有 点击全选触发事件、点击反选触发事件、勾选某一行触发事件、反选某一行触发事件,用到fastadmin自带的表格事件功能,参考:https://doc.fastadmin.net/doc/19…

stm32使用串口DMA实现数据的收发

前言 DMA的作用就是帮助CPU来传输数据,从而使CPU去完成更重要的任务,不浪费CPU的时间。 一、配置stm32cubeMX 这两个全添加上。参数配置一般默认即可 代码部分 只需要把上期文章里的HAL_UART_Transmit_IT(&huart2,DATE,2); 全都改为HAL_UART_Tra…