ROS Industrial 软件包_笛卡尔路径规划器_介绍

2024-04-28 04:58

本文主要是介绍ROS Industrial 软件包_笛卡尔路径规划器_介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

笛卡尔(Descartes)

概要

笛卡尔(Descartes)是ROS-Industrial项目,用于对未定义的笛卡尔轨迹执行路径规划

 

动机

当前的MoveIt / ROS接口专注于拾取pick和放置place应用。在典型的拾取和放置应用中,起始位置和目标位置是路径规划者的唯一输入。相比之下,许多工业应用必须遵循预定义的笛卡尔路径,不仅起始和结束位置很重要,而且两者之间的路径也很重要。一些常见的例子是涂漆,机械加工和焊接。不幸的是,仅通过应用逆运动学解决方案来解决笛卡尔路径规划问题会导致有限的解决方案集,而没有利用应用程序的灵活性。实际上,笛卡尔路径通常是半约束的。例如,在加工应用中,需要五个自由度(5DOF)路径,其中未定义第六DOF(围绕刀具的方向)。无法利用这些开放约束的路径规划器(例如,基于逆运动学(IK)的规划器)会限制找到有效解的可能性,即使该解决方案可能存在于半约束空间中。

 

软件架构

笛卡尔使用轨迹点(trajectory points),机器人模型(robot models)和规划器(planners)来生成符合给定过程约束的关节轨迹。

·轨迹点(trajectory points)定义沿路径的独立的点(以时间为序)。这些点封装了在给定用户的过程要求(包括约束/公差)的情况下如何搜索有效的关节解决方案的逻辑。

·机器人模型(robot models)定义必须完成给定轨迹的机器人的物理特征。机器人模型执行诸如正向和反向运动学以及有效性检查之类的计算。

·规划器(planners)是笛卡尔体系结构的最高层次的组成部分。它们负责通过给定机器人模型的一系列轨迹点找到有效和最佳的解决方案。

这些主要组件中的每一个都有一个单独的程序包,每个程序包都提供了参考实现。

 

结构

笛卡尔软件包集分为以下软件包:

1. descartes_core

descartes_core包定义了轨迹点(trajectory points),机器人模型(robot_models)和计划器(planners)的接口。 有关与这些概念相关的API的更多信息,请参阅文档。descartes_core程序包为轨迹计划创建关节轨迹。 轨迹计划通常是在空间中定义不明确的路径,允许运动/动态公差,例如未指定的工具滚动。

 

2. descartes_moveit

descartes_moveit软件包提供了使用MoveIt!提供其功能的Descartes robot_model的参考实现。 有关详细信息,请访问descartes_moveit。该软件包通过使用MoveIt以提供正向和反向运动学解决方案以及配置有效性检查实现了笛卡尔机器人模型。 笛卡尔的用户在创建/初始化机器人模型之后通常不需要直接使用。 路径规划器被设计用于在此方面进行繁重的工作。

 

3. descartes_planner

descartes_planner软件包包含规划程序的参考实现,可以使用不同算法为轨迹提供解决方案。有关详细信息,请访问descartes_planner。该软件包包含笛卡尔计划器的实现。笛卡尔计划器负责智能搜索给定轨迹(具有公差)的有效机器人配置,并生成一系列关节配置形式(关节轨迹点)的解决方案。

参考实现

笛卡尔目前提供轨迹规划器的两种参考实现。 两者都接受输入的任意轨迹点序列,并输出一系列的关节轨迹点。

Ⅰ.密集规划器

第一个也是最直接的规划器是DensePlanner。它需要密集的轨迹,并试图通过这些点找到一条路径,以使整体关节运动最小化。

从概念上讲,它执行以下操作:

对于每个轨迹点计算该点所有逆运动学解。这些是使用轨迹点实现的采样逻辑以及机器人模型的静态/动态知识计算得出的。

对于每对连续点,计算起点的每个关节解和终点的每个关节解之间的移动成本和可行性。

根据数据构建图形,其中顶点表示运动学解决方案,边表示运动成本。

使用Dijkstra算法在此图上搜索从任何起始配置到任何结束配置的最低成本路线。

 

Ⅱ.稀疏规划器

稀疏计划程序建立在密集计划程序的工作原理之上,但是尝试通过“采样”给定轨迹来节省计算时间。稀疏计划程序对原始点的子集进行逆运动学,然后尝试使用关节空间插值和正向运动学来解决轨迹的其余部分。

例如,如果规划器必须求解点A,B和C。它可能会在A和C上进行逆运动学,然后尝试从中推论出B的关节解。它会通过运行正向运动学并将其与所需姿势进行比较来检查其推断。

局限性和失败模式

当前,规划器都无法解决由用户轨迹生成的关节空间图中的不连续性,并且如果发生以下任何情况都将失败:

·机器人模型无法达到轨迹上的点。

·一个点是可以到达的,但涉及到的配置翻转超过某个阈值。

 

4. descartes_trajectory

descartes_trajectory包包含用于常见类型的轨迹点的参考实现,例如定义特定笛卡尔姿势或特定关节配置的点。 在descartes_trajectory上有更多详细信息。

参考实现

笛卡尔提供了指定机器人路径的最常用方法的参考实现。对于更特殊的要求,您可以使用descartes_core中的界面创建自己的轨迹点。

 

关节轨迹点(JointTrajectoryPt)

descartes_trajectory :: JointTrajectoryPt表示机器人配置,该配置通过指定机器人中每个活动关节的位置来定义。该点可由名义关节位置和每个关节的一组允差来构造。

 

笛卡尔轨迹点(JointTrajectoryPt)

descartes_trajectory :: CartTrajectoryPt表示一种机器人配置,其中机器人的工具末端(例如激光切割头)处于指定的6DOF姿势。与关节轨迹点不同,笛卡尔点可能具有许多可能的关节解。姿势的笛卡尔分量和旋转分量均可容差。

给定笛卡尔点的样本空间是通过获取公差范围并使用用户定义的离散步长逐步遍历它们而生成的。这些点在内部由转换矩阵表示,该转换矩阵首先组合了到工具(x,y,z)坐标的平移,然后是围绕X,Y,Z轴顺序的移动轴的旋转。

 

轴对称点(JointTrajectoryPt)

descartes_trajectory :: AxialSymmetricPt表示具有自由旋转轴的特殊笛卡尔轨迹点。用户可以为末端执行器指定名义位姿,并指定代表解决方案的名义姿势轴的轴(X_AXIS,Y_AXIS或Z_AXIS)。所有其他容差均保持为零。这对于诸如搅拌之类的应用程序非常有用,而这些应用程序并不关心工具的确切偏航。

 

5. 笛卡尔实用程序(descartes_utilities)

该软件包包含与Descartes运动计划库一起使用的辅助例程,该例程简化了实际使用,但完全适合核心库。 这包括到ROS轨迹的转换以及类似的操作。

 

 

主要特点

笛卡尔作为路径规划库,经常与MoveIt进行比较。但是,它在几个关键方面与MoveIt不同:

·笛卡尔规划:MoveIt计划自由空间运动(即从A到B的运动),笛卡尔规划针对半约束笛卡尔路径(即其航路点可能小于完全指定的6DOF姿势的机器人)的机器人关节运动。

·高效,可重复,可扩展的规划:笛卡尔生成的路径看起来与人工生成的路径非常相似,但无需付出任何努力。这些计划也是可重复的且可扩展的,以适应问题的复杂性(简单路径的规划非常迅速,复杂路径需要时间,但仍然可以解决)。

·动态重新计划:计划完成后,路径计划结构将保留在内存中。当对所需路径进行更改时,几乎可以立即生成更新的机器人关节轨迹。

·离线计划:类似于MoveIt,但与其他计划者不同,笛卡尔主要致力于离线或感知/规划/动作应用。实时规划不是笛卡尔的功能。

 

应用领域

笛卡尔已经在多种ROS-Industrial应用中使用。 第一个应用程序涉及使用笛卡尔(Descartes)作为机器人路由的离线路径规划器。笛卡尔的第二个应用是机器人磨削应用的自动计划器。

 

 

 

 

参考

http://wiki.ros.org/descartes

https://roscon.ros.org/2015/presentations/ROSCon_Descartes.pdf

https://vimeo.com/142622435

 

 

 

这篇关于ROS Industrial 软件包_笛卡尔路径规划器_介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942375

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现