在moveit2中实现四连杆及曲柄滑块

news2024/11/24 5:50:10

对于一些特殊的(比如说机械构件闭环的、存在被动关节的)运动模型,该如何用urdf模型描述该模型,且在MoveIt2中进行仿真?下面提供一个思路,仅供参考。

四连杆机构

结构介绍

该机构的组成如下图所示。
粉红色、蓝色的底座为固定机构,黄色、灰色、青色的三根杠与彼此之间、与底座之间都是铰链连接,可以转动。其中黄色与灰色杆子连接部分的关节为主动轴,可以主动发起旋转(可以理解在此处装了马达)。
在这里插入图片描述

urdf文件

fourbar.urdf

<?xml version="1.0"?>
<robot name="fourbar">

  <!-- base link -->
  <link name="base_link">
    <visual>
      <origin xyz="0 0 -0.06" rpy="0 0 0"/>
      <geometry>
        <cylinder length="0.12" radius="0.20"/>
      </geometry>s
      <material name="wtf0">
        <color rgba="0.9 0.2 0.3 1.0" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 -0.06" rpy="0 0 0"/>
      <geometry>
        <cylinder length="0.12" radius="0.20"/>
      </geometry>
    </collision>
  </link>

  <link name="bar1">
    <visual>
      <origin xyz="0 0 0.75" rpy="0 0 0"/>
      <geometry>
        <box size="0.15 0.1 1.5"/>
      </geometry>
      <material name="wtf1">
        <color rgba="0.5 0.5 0.3 1.0" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0.75" rpy="0 0 0"/>
      <geometry>
        <box size="0.15 0.1 1.5"/>
      </geometry>
    </collision>
  </link>

  <joint name="joint1" type="continuous">
    <parent link="base_link" />
    <child link="bar1" />
    <origin xyz="0 0 0" rpy="0 0 0"/>
    <axis xyz="0 1 0"/>
  </joint>

  <link name="bar2">
    <visual>
      <origin xyz="0 0 0.5" rpy="0 0 0"/>
      <geometry>
        <box size="0.15 0.1 1.0"/>
      </geometry>
      <material name="wtf2">
        <color rgba="0.5 0.5 0.6 1.0" />
      </material>
    </visual>
    <collision>
      <geometry>
        <box size="0.15 0.1 1.0"/>
      </geometry>
      <origin xyz="0 0 0.5" rpy="0 0 0"/>
    </collision>
  </link>

  <joint name="joint2" type="continuous">
    <parent link="bar1" />
    <child link="bar2" />
    <origin xyz="0 -0.1 1.5" rpy="0 2.5 0" />
    <axis xyz="0 1 0"/>
  </joint>

  <link name="bar3">
    <visual>
      <origin xyz="0 0 0.75" rpy="0 0 0"/>
      <geometry>
        <box size="0.15 0.1 1.5"/>
      </geometry>
      <material name="wtf3">
        <color rgba="0.1 0.5 0.7 1.0" />
      </material>
    </visual>
    <collision>
      <geometry>
        <box size="0.15 0.1 1.5"/>
      </geometry>
      <origin xyz="0 0 0.75" rpy="0 0 0"/>
    </collision>
  </link>

  <joint name="joint3" type="continuous">
    <parent link="bar2" />
    <child link="bar3" />
    <origin xyz="0 -0.1 1.0" rpy="0 -0.45 0" />
    <axis xyz="0 1 0"/>
  </joint>

  <link name="base_link2">
    <visual>
      <origin xyz="0 0 -0.06" rpy="0 0 0"/>
      <geometry>
        <cylinder length="0.12" radius="0.20"/>
      </geometry>
      <material name="wtf4">
        <color rgba="0. 0.1 0.5 1.0" />
      </material>
    </visual>
    <collision>
      <geometry>
        <cylinder length="0.12" radius="0.20"/>
      </geometry>
      <origin xyz="0 0 -0.06" rpy="0 0 0"/>
    </collision>
  </link>

  <joint name="joint4" type="continuous">
    <parent link="bar3" />
    <child link="base_link2" />
    <origin xyz="0 0 1.5" rpy="0 -2.05 0" />
    <axis xyz="0 1 0"/>
  </joint>

</robot>

MoveIt设置

关于如何根据urdf文件搭建MoveIt2工程,可以看看我之前写的:【在ROS2中,通过MoveIt2控制Gazebo中的自定义机械手】
步骤和之前的类似,主要注意一下这几个问题。
起始link和终点link分别选base_link、base_link2:
在这里插入图片描述
设置好主动关节和从动关节
在这里插入图片描述可以看到,虽然像那么一回事了,虽然末端还是会抖动。

四连杆机构

主要的难点在于urdf无法描述闭环的结构树。理论上base_link2是要固定到base_link上的,但是不允许这样做。
因此只能在moveIt中控制好终端机构的位姿来见解实现了。

曲柄滑块机构

如何在moveit中实现下面这个曲柄滑块机构?【图像来源】
在这里插入图片描述思路和前面的四连杆机构类似,

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

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

相关文章

加密解密软件VMProtect入门使用教程(九)许可制度之许可系统功能

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

前端综合项目-个人博客网页设计

个人博客前端部分设计 文章目录 前端综合项目-个人博客网页设计1. 预计效果2. 公共样式设计2.1 背景设计2.2 导航栏设计2.3 博客列表页和博客详情页的共同内容2.3.1 页面划分css设计2.3.2 左侧card内容2.3.3 右侧article内容 3. 博客列表页4. 博客详情页5. 博客登录页5.1 页面划…

赛效:怎么在99医院库平台查询科室医生坐诊的时间?

如果想要了解更多生活中常用的工具的使用方法&#xff0c;可进入赛效官方网站查看应用软件或者应用问答栏目查看详情。 很多人在去医院就诊时&#xff0c;往往会提前查询下就诊医院当天坐诊的医生有哪些&#xff0c;如果可以直接在网上进行预约的话&#xff0c;通过网络预约要…

word中图标格式的美化

目录 1. 修改行号2. 调整图表格式2.1 方法1 &#xff08;不推荐&#xff09;2.2 方法2 3. 参考链接 1. 修改行号 2. 调整图表格式 要达到下图的效果 2.1 方法1 &#xff08;不推荐&#xff09; 利用“一系列格式操作”设置表格格式。&#xff08;该方法不具有可复制性&#…

网络性能测试工具

什么是网络测试 网络测试是用于定量或定性测量 IT 基础架构性能的过程。这是一个原始级别的故障识别&#xff0c;不需要大量的历史数据。对于更高级的监视&#xff0c;使用网络监视工具。 什么是网络测试工具 网络测试工具是一组工具&#xff0c;可帮助测量网络各个方面的性…

ASO优化之如何选择手游的行业词和竞品词

应用商店的搜索关键词转化率占应用总下载转化率的65%。这表明&#xff0c;用户会知道自己想要什么&#xff0c;更倾向于去应用商店寻找特定的应用程序。因此如果能让他们相信我们的应用正是他们所寻找的&#xff0c;那么关键词优化就很重要了。 那么我们该如何选择手游的行业词…

中文文献如何查找下载最高效

提到查找下载中文文献我们就会想到知网、万方、维普等中国知名数据库&#xff0c;很多高校都订购了这些数据库资源&#xff0c;但各个高校订购的资源不仅内容上不一样&#xff0c;而且都不是数据库的全部资源&#xff0c;超出订购范围的文献资源是下载不到的&#xff0c;如下图…

探索iOS之CoreAudio核心音频框架

iOS的CoreAudio分为三层&#xff1a;应用服务层、驱动层、硬件层。其中&#xff0c;应用服务层包括&#xff1a;AudioQueue Service、AudioPlayer Service、AudioSession Service、AudioFile Service、AudioUnit等。 一、CoreAudio整体架构 CoreAudio的整体架构自顶向下是Ser…

求最小生成树(Prim算法与Kruskal算法与并查集)

目录 1、案例要求2、算法设计与实现2.1 Prim算法2.1.1 构造无向图2.1.2 编写Prim算法函数2.1.3 实现代码2.1.4 运行结果截图 2.2 Kruskal算法2.2.1 构造无向图2.2.2 编写并查集UnionFind类2.2.3 编写Kruskal算法2.2.4 实现代码2.2.5 运行结果截图 3、总结 1、案例要求 利用贪心…

CameraLink 高清医学影像分析模块

FMC-XM202是一款基于FMC接口标准的1路CameraLink Full模式&#xff08;或者2路CameraLink Base模式&#xff09;采集、1路HDMI&#xff08;DVI&#xff09;视频输出的子卡模块&#xff0c;该模块具有2个CameraLink端口&#xff08;SDR&#xff0c;26PIN&#xff09;&#xff0c…

简单线性线性回归

文章目录 brief直线回归的一般形式参数计算y观测值和回归值的关系基本前提假定假设检验直线回归的变异来源自由度问题&#xff1a;假设检验 多元线性回归 brief 当研究两个有因果关系的变量时&#xff0c;我们希望建立一个方程式表示两者的关系&#xff0c;这样有一个变量得知…

公司里的5种人,建议马上开除

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID&#xff1a;jishulingdaoli) 多年前&#xff0c;马云在某期湖畔大学开学演讲时&#xff0c;说了一句经典名言&#xff1a;“小公司的成败在于你聘请什么样的人&#xff0c;大公司的成败在于你开除什么样的人。”K哥觉得&#xff0…

Ocean Optics USB2000光谱仪无法在Win10/8系统运行

1、问题描述 USB2000型光谱仪&#xff0c;由于生产年代过于久远&#xff0c;虽然能被Win10系统识别&#xff0c;但是驱动程序安装完成后依然报错&#xff0c; 提示&#xff1a;该设备无法启动。&#xff08;代码 10&#xff09; 请求USB BOS 描述符失败。 运行SpectraSuite软件…

操作系统原理 —— 什么是信号量,信号量如何实现进程互斥、进程同步?(十五)

在之前的章节中&#xff0c;我们提到了进程互斥&#xff0c;以及进程互斥实现的几种方式&#xff0c;那么今天我们再来讲解一种&#xff0c;基于 信号量 来实现进程之间的同步、互斥的方式。 用户进程可以通过使用操作性提供的一对原语来对信号量进行操作&#xff0c;从而很方…

C语言基础知识:C语言中的指针

目录 1、为什么需要指针? 2、指针是什么&#xff1f; 3、指针与变量的关系 4、指针的分类 5、指针的用法 6、指针的运算 7、野指针 8、指针使用时的注意事项 同C语言中其他变量一样&#xff0c;把指针也可以看成是一种变量。不过&#xff0c;这种变量专门存储地址值。…

vscode链接远程服务器开发c++项目

因为要在linux环境下开发c应用&#xff0c;需要一个比较好用的远程工具。之前做深度学习的时候一直用vscode链接服务器写python&#xff0c;感觉用起来很舒服。 vscode下载安装这些就略过了&#xff0c;从插件安装和配置文件开始介绍 参考文章&#xff1a;https://zhuanlan.zh…

如何做一份精致的性能测试报告?

相比于普通的功能测试&#xff0c;性能测试对测试工程师的技能要求更高&#xff0c;一般来说&#xff0c;也只有中高级测试工程师才会有机会做性能测试。 对于题主关心的问题&#xff0c;我拆分出下面三个部分来做解答&#xff1a; 1、性能测试报告的目的 2、性能测试过程中的关…

【算法分析与设计报告】快递终端送货配送系统、基因序列比较、地图染色、文章查重系统、果园篱笆问题(附源码)

一、快递终端送货分配问题 问题描述 假设某快递终端投递站&#xff0c;服务n个小区&#xff0c;小区与快递点之间有道路相连&#xff0c;如下图&#xff0c;边上的权值表示距离。 图1-1 小区快递点图 现在设有m包裹&#xff0c;每个包裹都有自己的目的地及总量。 假设送货员一…

IPB072N15N3G-ASEMI代理英飞凌高压MOS管IPB072N15N3G

编辑&#xff1a;ll IPB072N15N3G-ASEMI代理英飞凌高压MOS管IPB072N15N3G 型号&#xff1a;IPB072N15N3G 品牌&#xff1a;英飞凌 封装&#xff1a;TO-263 最大漏源电流&#xff1a;31A 漏源击穿电压&#xff1a;600V RDS&#xff08;ON&#xff09;Max&#xff1a;99mΩ…

第四届“中国法研杯”司法人工智能挑战赛-刑期预测赛道三等奖方案

一、前言 本文将回顾第四届“中国法研杯”司法人工智能挑战赛-刑期预测算法赛道比赛。使用多任务预训练、然后进行微调的形式最终在比赛中取得了三等奖的成绩。 二、任务介绍 主办方在第一届“中国法研杯”比赛上提出了刑期预测任务&#xff0c;本届将针对往届刑期预测准确率…