ROS moveit cartesian_demo 机械臂笛卡尔空间路径速度限制

由于之前修改了moveit_config包下的joint_limits.yaml文件加快了虚拟机械臂的运动速度,导致我在跑笛卡尔空间路径的例程时,机械臂的速度过快。本来想通过加上下面这两句控制运行速度。

arm.setMaxAccelerationScalingFactor(0.1);arm.setMaxVelocityScalingFactor(0.1);

但加上并编译过后,重新运行时发现并没有减慢在跑规划路径时的速度。
后来在古月居的论坛上发现了这个

原来这两句对computeCartesianPath()并不起作用。但古月在这里也没有继续回复解决方法。我也只好继续找如何解决。幸运的是,我在这篇博客的内容中找到了答案—轨迹重定义。

因为computeCartesianPath()最终得到的就是一条运动轨迹,我们只需要对这条轨迹的速度相关属性就行修改即可达到控制机械臂运动速度的目的。
下面附上轨迹重定义的代码:

void scale_trajectory_speed(moveit::planning_interface::MoveGroupInterface::Plan &plan, double scale)
{int n_joints = plan.trajectory_.joint_trajectory.joint_names.size();//获取关节个数for(int i=0; i<plan.trajectory_.joint_trajectory.points.size(); i++)//通过for循环对plan中所有的轨迹点作一个遍历{plan.trajectory_.joint_trajectory.points[i].time_from_start *= 1/scale;//速度变慢,时间变长为 1/scale 倍for(int j=0; j<n_joints; j++)//遍历各个关节,每一个关节的速度和加速度数据都要作一个尺度的变化{plan.trajectory_.joint_trajectory.points[i].velocities[j] *= scale;//速度变化为原来的 scaleplan.trajectory_.joint_trajectory.points[i].accelerations[j] *= scale*scale;//加速度变化为原来的 scale * scale}}
}

添加完轨迹重定义的函数之后,我们还需要在执行plan前利用这个轨迹重定义函数对computeCartesianPath()生成的轨迹进行速度修改。

scale_trajectory_speed(plan,0.1);
arm.execute(plan);

最后编译运行我们的代码即可。

ROS moveit cartesian_demo 机械臂笛卡尔空间路径速度限制相关推荐

  1. ROS moveit 机械臂笛卡尔空间运动

    机械臂moveit编程(python) 机械臂在笛卡尔空间的运动只能走点到点的直线运动,通过将位姿点加入waypoints中,机械臂会一次按照waypoints中的唯一依次沿直线运动到下一个点. 程序 ...

  2. matlab机械臂工作空间代码_ROS中机械臂笛卡尔空间规划姿态求解无效-Moveit!

    1 任务描述 在使用Moveit对机械臂运动进行规划时,我们定义Pose,然后规划,目标位姿Pose的定义代码如下: target_pose = PoseStamped() target_pose.h ...

  3. MoveIt编程实现笛卡尔空间机械臂运动

    前两篇文章是关于在关节空间中进行机械臂的运动控制: MoveIt简单编程实现关节空间机械臂运动(逆运动学) MoveIt简单编程实现关节空间机械臂运动(正运动学) 通过对关节空间下的机器人6个轴进行控 ...

  4. 02论文分享与分析——基于ROS的移动机械臂底层规划及运动仿真

    [1]钱伟. 基于ROS的移动操作机械臂底层规划及运动仿真[D].哈尔滨工业大学,2015. 0.摘要 钱伟学长的论文在我学习轨迹规划初期就开始阅读,在学习过程中,也对于很多疑惑的问题,找寻到了答案, ...

  5. ROS笔记(35) 笛卡尔运动规划

    ROS笔记(35) 笛卡尔运动规划 1. 笛卡尔运动规划 2. 启动轨迹可视化机械臂 3. 运动规划 4. 部分代码解析 5. 启动规划 1. 笛卡尔运动规划 而在ROS笔记(34) 工作空间规划 中 ...

  6. 驱动器空间、关节空间与笛卡尔空间

    驱动器空间.关节空间与笛卡尔空间 一般来说,操作臂的位置和姿态描述有三种表示方法,分别为驱动器空间描述.关节空间描述和笛卡尔空间描述.三者之间有如下的映射关系: 在进行机械臂运动学分析时,我们必须弄清 ...

  7. 笛卡尔空间轨迹规划(直线、圆弧)

    目录 毕设(5)-笛卡尔空间轨迹规划(直线.圆弧) 直线轨迹规划 圆弧轨迹规划 Matlab代码验证 毕设中用到了很多代码,其中一部分我通过看书和看论文学习并实现的代码,会通过Gitee仓库分享出来, ...

  8. 「 运动控制 」“关节空间与笛卡尔空间进行轨迹规划”研究

    1.什么是轨迹规划? 轨迹规划是指根据作业任务的要求,确定轨迹参数并实时计算和生成运动轨迹. 2.轨迹规划目的 它是机器人研究领域中的一个很重要的内容,是工业机器人控制的依据,所有控制的目的都是要围绕 ...

  9. 笛卡尔空间直线轨迹规划——S型曲线加减速插补算法(含MATLAB仿真验证代码)

    写这个算法,是因为博主正在做一个机械臂和全向小车的项目,里面涉及需要笛卡尔空间做直线轨迹的规划.通常的算法有梯型加减速,这个算法只是速度连续,加速度并不连续.所以实际冲击较大,无法实现柔性控制.况且网 ...

  10. (学习用1)调用用RRT算法进行笛卡尔空间轨迹规划和关节空间轨迹规划

    在MoveIt中,可以通过调用computeCartesianPath()函数来使用RRT算法进行笛卡尔空间轨迹规划,可以通过调用computeJointSpacePath()函数来使用RRT算法进行 ...

最新文章

  1. Python语言编程之正则表达式模式
  2. Foreman安装配置
  3. Serverless简介
  4. pythonsuper多重继承_Python super()函数使用及多重继承
  5. CV Code | 计算机视觉开源周报 20190603期
  6. Linux 各种压缩类型文件 解压命令 整理 tar.bz2 tar.gz tgz等等
  7. [转帖]Windows 上面IE的历史
  8. centos 查看版本号方法
  9. MapProxy的部署与TMS地图服务代理
  10. 基于tesseract的文字识别
  11. TIPC Cluster5
  12. 电脑上怎么绘制流程图以及在线绘制方法
  13. 使用fiddler进行发包
  14. STM32 在flash中存储float数据
  15. 高效深度学习:让模型更小、更快、更好!
  16. PCB Gerber
  17. php在线播放bt,yunBT:一个基于ThinkCMS的多用户BT离线下载程序,支持在线播放
  18. 3dsmax常用操作(持续更新)
  19. python要多久_怎么自学python,大概要多久?
  20. 计算机实训室英语,计算机英语教学实训设计研究

热门文章

  1. php phacon 关联模型吗,Phalcon模型
  2. 面对复杂问题时,系统思考助你理解问题本质
  3. asp.net配置web.config显示详细错误信息
  4. 世界5G大会 大兴机场 随记
  5. una到底啥意思_Una_英文名Una是什么意思
  6. 【Ubuntu16.04】搭建Hyperledger Fabric环境
  7. 2021年中式面点师(初级)证考试及中式面点师(初级)模拟考试题
  8. AntV G2 Tooltip
  9. 最全面的 Fiddler 教程讲解
  10. android webview html 字体大小,Android webview设置字体大小,适配屏幕,夜间模式