关于如何让moveit输出固定时间步长的轨迹点
为什么使用Industrial_trajectory_filters包?因为Moveit生产的轨迹是等距而非等时的。但是在工业应用的机器人中,通常都是按照固定的周期来控制关节轴运动。因此moveit原生的轨迹与实际机器人控制需求之间存在不匹配,这就需要通过一定的方法或工具来进行对接。Industrial_trajectory_filters功能包便可以解决轨迹对接匹配问题。为了使用Industrial_trajectory_filters包,我们首先先要了解moveit中的Planning Request Adapters的概念。
#Planning Adapter
Planning Request Adapter是Moveit中的一个概念,它可以用来修改轨迹。在Moveit中已有的Planning adapter包括AddTimeParameterization、FixWorkspaceBounds、FixStartBounds、FixStartStateCollision、FixStartStatePathConstraints、CHOMPOptimizerAdapter等等。使用Planning Adapter的概念,多个运动规划算法可以在一个pipeline中使用来产生具有鲁棒性的运动规划。例如,一个运动规划的采样pipeline可能包含了一个初始的由OMPL产生的规划,然后由CHOMP来优化产生比单独使用OMPL或CHOMP更好的路径。类似地,使用Planning Adapter的概念,依赖于机器人的操作环境,其他的运动规划器也可以进行混合和匹配。
Filters
Industrial_trajectory_filters包中包含了过滤机器人轨迹的方法。这些方法针对于工业机器人的应用。
uniform_sample_filter
对一个规划的轨迹进行重采样,在采用点之间使用统一的时间步进。重采样通过在关节空间中使用一个高阶样条曲线来完成。该过滤器需要全定义的轨迹,即轨迹点包含位置、速度和加速度。
参数
sample_duration (float) — 两个路径点间的时间步进值(单位为秒)
n_point_filter
将轨迹减少为<=N个轨迹点。这个减少过程仅使用已存在的点(并不做重采样和插值的过程)。这个filter最好与均匀采样轨迹一起使用,但也不是必须的。如果轨迹本身就少于N个点,那么这个filter就不起作用。
参数
n_points (float) — 最大路径点数量(>=2)
在Moveit中应用Filter
Planning Request Adapter - 普通用法
为了在由Moveit产生的package中使用新的Planning Request Adapter,需要做下面的工作:
- 打开由moveit产生的实际机器人package中的ompl_planning_pipeline.launch文件,添加你的filter到planning_adapters列表的第一行:
<arg name="planning_adapters" value="my_filter_package/MyFilterdefault_planner_request_adapters/AddTimeParameterizationdefault_planner_request_adapters/FixWorkspaceBoundsdefault_planner_request_adapters/FixStartStateBoundsdefault_planner_request_adapters/FixStartStateCollisiondefault_planner_request_adapters/FixStartStatePathConstraints" />
- 在同样的launch文件中,用ROS的方式声明你的filter所使用的参数,例如
<param name="my_filter_parameter" value="0.005">
- 到了这里,你就可以使用filter了。从机器人的moveit配置包中运行demo.launch,并使用Rviz中的MovePlanningPlugin创建一个规划路径,如果filter有输出,那么就能直接看到生成的轨迹输出。
示例
下面的例子使用industrial_trajectory_filters包中的均匀采样过滤器。
- 按照上面的步骤,将UniformSampleFilter加入到planning_adapters中,并配置参数:
<arg name="planning_adapters" value="industrial_trajectory_filters/UniformSampleFilterdefault_planner_request_adapters/AddTimeParameterizationdefault_planner_request_adapters/FixWorkspaceBoundsdefault_planner_request_adapters/FixStartStateBoundsdefault_planner_request_adapters/FixStartStateCollisiondefault_planner_request_adapters/FixStartStatePathConstraints" />
<param name="sample_duration" value="0.2"/>
完成这样的配置后,再由Moveit生成的轨迹就是固定时间步进的均匀采样点。
关于如何让moveit输出固定时间步长的轨迹点相关推荐
- 【python】无规律时间步长时序数据转为固定步长
写在前面 日常可能会遇到时间步长无规律的数据,需要转化为固定时间步长,此时需要进行重采样或插值. 例子 在选择好时间间隔后,可以用pandas的resample来操作. import pandas a ...
- Fluent非稳态工况模拟中固定时间步数据输出
Fluent非稳态工况模拟中固定时间步数据输出 1. 在fluent操作界面中,双击解决方案中的报告定义(report definitions) 2. 弹出的界面中,点击new后选择需要进行报告的数据 ...
- 【Kettle】如何输出固定格式报表
我的工作是为公司分析部门提供数据,其中一部分是固定时间点提取的报表,这些报表的格式固定,每次机械化的修改参数→提取数据→复制粘贴,实在是繁琐.下面介绍一个我工作中使用kettle输出固定格式报表的例子 ...
- Multisim10中仿真时间步长与数码显示管的类型有关
用Multisim10仿真一个数字频率计数器,单个模块仿真很顺利,无论是计数部分还是秒脉冲发生电路都正常工作,但最后连起来仿真的时候就无语了,由于要测量1s内的输入信号的频率,按道理说如果输入信号是1 ...
- ansys workbench17.0 lsdyna模块设置时间步长
笔者在通过workbench中的lsdyna模块计算显式动力学分析时,遇到了得出结果时间步长过长的问题.由于受fluent思维的影响一直想改变分析设置的时间步长设置,但是一直找不到,今日通过看另一位大 ...
- STM32配置DAC输出固定电压和方波
STM32F103VCT6自带两个12位DAC,DAC的转换速度一直没有查到,网上有人说是1MHZ的频率,那就是1us了.ADC的转换时间在56MHZ工作频率下为1us,在72MHZ工作频率下为1.1 ...
- 【限流算法】java实现固定时间窗口算法
本文实现了一种基于java的固定时间窗口计数器算法 固定时间窗口计数器算法思想:在固定的时间窗口内,可以允许固定数量的请求进入.超过数量就拒绝或者排队,等下一个时间段进入. 优点:和令牌桶相比,这种算 ...
- openFOAM中时间步长计算参数是怎样读进程序的——初步理解框架
内容如题,在阅读完大量的基础代码之后,我们现在可以尝试解读一下chemFOAM中的程序流程.因为内容很多,所以会分好几个子标题讲完. 我们使用openFOAM的过程中,通常是从tutorials中找到 ...
- ansys时间步长怎么设置_在 ANSYS Workbench 的动态、静态仿真中,设置子步长(时间步长)的目的分别是什么?_学小易找答案...
[计算题]塔架静力-地震响应谱分析 Course-Work8_塔架响应谱分析.pdf [简答题]简述虚位移原理与最小势能原理? [简答题]如何对草图中几何模型进行尺寸标注? [简答题]记3-5个单词 ...
最新文章
- 阿里开源Sentinel流控框架基本介绍与简单使用
- 《Visual C++ 开发从入门到精通》——1.4 技术解惑
- mysql使用shell脚本部署_shell脚本部署mysql主从
- Hudson-ci/Using Hudson/Installing Hudson/Installing Hudson RPM--官方文档
- 17.深浅拷贝和写时拷贝
- linux 去掉登陆密码吗,Linux 清除 Windows用户登录密码
- Linux环境下Lapack软件包的编译和使用
- 2022年MySQL8 OCP最新题库整理,传授有缘人
- 微信小程序下拉刷新真机没效果_微信小程序下拉刷新上拉加载的两种实现方法...
- 爬取王者荣耀网站所有英雄皮肤图片
- 计算机桌面图标多一个箭头,怎么去掉电脑桌面图标箭头(一个小妙招解决win图标小箭头)...
- kernel - regulator
- 微信聊天记录删除了怎么恢复?通过这几种方法可以找回
- 法国大数据:智慧城市中的大数据
- 权值衰减weight decay的理解
- 微信小程序页面跳转后不显示内容
- python @符号
- Unity 小游戏-打砖块
- 【取模软件PCtoLCD2002使用教程】
- 投资理财-朋友好像的故事