Simulink 和 Gazebo联合仿真控制机械臂【Matlab R2022a】

逛 B 站,偶然发现一个 up 主上传的视频,可以实现 Simulink 中搭建机器人的控制器设计,对运行在虚拟机中 Gazebo 中的机械臂进行控制,链接:三关节机械臂Gazebo-Simulink联合仿真,这让我很感兴趣,Matlab 中大量的轮子对控制器、规划器的设计非常有帮助,并且,能够大大提升算法开发和调试的效率,因此,决定要了解一下,毕竟最近做的控制器设计都是在 Matlab 中进行的,要是有 Gazebo 这样强大的物理仿真软件来验证运行效果岂不是如虎添翼!

顺藤摸瓜,发现 Matlab 官方提供了相关 demo ,链接: Control Manipulator Robot with Co-Simulation in Simulink and Gazebo。该 demo 旨在通过 Simulink 和 Gazebo 联合仿真实现对机械臂的控制。具体是指:针对 UR10 机械臂,使用逆运动学实现笛卡尔空间位姿到关节空间关节角的解算,然后应用具有动态补偿前馈项的关节空间 PD 控制器来控制机械臂运动。

然而我们知道控制是实时的,其中包含控制指令的发送,机器人状态的反馈。为了实现上述要求,Matlab 官方为用户提供了以下几个核心模块:

  • Gazebo Pacer:仿真时间同步模块;
  • Gazebo Read:根据设定的 Topic 和 Message type 从 Gazebo 接收相应的 Message;
  • Gazebo Apply Command:向 Gazebo simulation 发送指令;
  • gzlink、gzjoint、gzworld:函数作为机器人模型参数查询接口。

Step 1、Set Up Gazebo with Robot Model and Plugin

在此之前,有一个教程是为了测试基本的 Matlab 和 Gazebo 之间的通信:Perform Co-Simulation between Simulink and Gazebo。

这里,我没用官方提供的虚拟机,采用的自己的 Linux 操作系统,为了实现通信,需要在 Linux 中手动配置相关插件,这个按照步骤来就行了。

我将在 Matlab 中生成的 GazeboPlugin.zip 放到了 /usr/src路径下,然后编译。
在这里插入图片描述
这里应该注意 Gazebo 的环境变量设置问题,不然每次开 Gazebo 加载 world 都得 export,可以把这个编译好的插件路径写入 bashrc 。

最后可以通过在 Matlab 中接收并观察到 Gazebo 中的传感器信息来验证已经建立了 Matlab 和 Gazebo 之间的通信。

下面 demo 是配置 UR 机械臂仿真环境的教程:Configure Gazebo and Simulink for Co-simulation of a Manipulator Robot。
通信建立起来之后,下一步就是配置 UR10 机械臂的 Gazebo world 文件。按照教程,把 UR 机械臂克隆到自己建立的工作空间之后,用 roslaunch ur_gazebo ur10.launch 打开,然后使用 Gazebo save world as 将当前世界保存为Ur10BasicWithPlugin.world,这里边有个问题,需要将ros_control 这个插件注释掉,不然用 Gazebo 打开这个 world 的时候会报错。

在这里插入图片描述

注释之后,就能正常打开了:
在这里插入图片描述接下来,运行 Simulink,配置好 IP 地址,建立通信之后,运行提供的 Simulink 仿真,就能够实现对机械臂的笛卡尔空间位置控制了,至此,环境配置完毕。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

60岁的机器视觉工程师,你还在敲代码?不想做机器视觉工程师,还可以做什么?机器视觉工程师职业生命线有多长​?

如果按程序员参加工作时间为22岁计算,平均退役年龄为35岁计算的话,程序员的职业寿命大概为14年。为什么程序员的职业生命线如此短暂呢?大致有以下几点—— 1、编程技术层出不穷,迭代速度非常快,这时候就需要我们不断的学习,不断地保持学习能力,当随着年龄的增长我们的学…

K8S系列之污点和容忍度详细分析

架构图 本篇文档主要介绍污点和容忍度的关系。 污点和容忍度 污点顾名思义就是脏的东西,给节点添加污点来限制pod调度到该节点上,如果pod可以容忍这种污点就可以被调度到有污点的节点上,如果不能容忍就不能被调度到该节点上。 污点作用于节…

Java版本企业电子招采系统源码——信息数智化招采系统

信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stre…

Nginx实现负载均衡

张三开发了一个分享文学作品的网站,刚开始入驻的作者不多,可谓是人烟稀少。但入驻的作者们信念坚定,孜孜不倦地更新着自己的作品,功夫不负有心人,作品迎来了爆发式的阅读增长量,终于,大访问量使…

YooAsset | Unity资源管理方案

跳转官方仓库地址 一、说明 可空包、可首包DLC、可满足限制包体的需求、可玩家自己制作MOD上传到服务器、可分工程构建;支持内置渲染管线、可编程渲染管线;支持完整路径、可寻址资源定位;基于标签打包,自动分析冗余,基…

有效和无效的帮助中心区别在哪?如何设计有效的帮助中心?

帮助中心就是一个丰富的知识库,可以对企业的潜在客户进行引导。不仅能够提升用户的使用体验还能为企业塑造更加专业的品牌形象,在使用过程中为用户提供帮助。帮助中心的目的就是为了解决用户在使用过程中遇到的困难,同时为用户的使用提供引导…

《操作系统》——计算机系统概述

前言: 在之前的【Linux】学习中,我们已经对常见指令已经开发工具等进行了详细的了解。紧接着,我们将要学习的便是关于【Linux进程】的基本知识。但是为了帮助大家更好的理解相关的知识概念,我先带领大家来学习关于《操作系统》这…

Kali工具集简介

Kali Linux提供了数种经过定制的专门为渗透测试设计的工具。工具都会按下图中下拉选单所示的方式按组分类聚合。了解工具是做渗透测试第一个认知。 口Information Gathering(信息收集) 这些都是侦察工具,用来收集目标网络和设备的数据。在这类工具中,从找出设备的工具到查看使…

李薇:大模型时代的数据变革

Datawhale干货 作者:李薇,上海人工智能实验室 前言 今天,我将向那些希望深入了解大模型的同学们,分享一些关于大模型时代的数据变革的知识。作为上海人工智能实验室OpenDataLab的产品主管,我会介绍我们在开放数据和大…

Android9.0 Charles 模拟器抓包

目录 只想做条安静的咸鱼,混吃等死又一天 一、下载并安装配置Charles 二、下载安装Postern 三、测试抓包 一、下载并安装配置Charles 1.Charles下载网址👇 Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Rev…

Python命名空间和作用域

命名空间定义了在某个作用域内变量名和绑定值之间的对应关系,命名空间是键值对的集合,变量名与值是一一对应关系。作用域定义了命名空间中的变量能够在多大范围内起作用。 命名空间在python解释器中是以字典的形式存在的,是以一种可以看得见…

vue项目打包成桌面应用并修改图标

目录 1. 打包为桌面应用 2.修改图标 1. 打包为桌面应用 1.在vux项目的终端执行打包 npm run build 2.会在项目文件夹里面出现一个dist文件夹 里面有这几个文件组成 3.在这里需要添加一个 package.json 文件 package.json 内容 {"name": "鼠标放图标上面的提…

【Linux】进程控制(文件操作符收尾+重定向)

上一回进程与文件系统我们主要看了很多文件描述符的知识 1.如何理解一切皆文件? 每个设备被打开时,OS给每个文件创建一个自己的struct file 里面填充自己的属性以及自己的缓冲区,其中还有函数指针,里面保存函数地址,通…

股票量价关系基础知识3

成交量变化的表现形式 成交量变化的表现形式主要有以下几种 一、缩量 一般界定当日成交量低于前一交易日成交量10%以上为缩量。 缩量往往发生在上升途中的回调末期、上涨末期以及股价下跌的中后期。一般下跌趋势中的缩量阶段,往往意味着股价仍未见底,不能…

DOM事件模型与事件委托

事件 JS与HTML之间的交互通过事件实现。 事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。 可以使用监听器来预定事件,以便事件发生时执行相应的代码。这种在传统软件工程中被称为观察者模式 事件流 事件流描述的是从页面中接受事件的顺序 事件冒泡 微软…

程序员的下一个风口

面对近一年的裁员潮,以及 GPT 出现带来的 AI 颠覆潮流,各种话题出现:「前端已死」、「后端已死」、「Copy/Paste 程序员将被 AI 取代」。程序员行业是否还有发展空间? 这一两年的就业机会是因为经济衰落周期内造成的,不…

MATLAB 常用数学函数和数组和字符串、元胞数组和结构体,MATLAB 编程,关系运算符和逻辑变量

目录 MATLAB 零基础学习 简介 使用平台 一、MATLAB 界面 二、基础操作 使用方法 常用数学函数 初等函数 三角函数 指数和对数 复数 标点符号 常用操作 三、文件类型 数组 一、数组基础知识 二、数组创建与操作 创建 数组操作 字符串数组 字符串、元胞数组…

移动互联网市场是不需要Android 开发了吗?

就近有不少朋友在吐槽:如今Android工作真的难找!从年初找到了现在,是市场不需要Android 开发人才了,人都迷茫了,是不是应该考虑转行了? 其实这种情况往年也是有的,但是今年显得的更严重一些。我…

在数据化知识经济的时代,你该学会如何经营好自己的知识管理

在当今的数据化知识经济时代,知识管理已经越来越成为了一个必备的技能。在这个竞争激烈的时代,拥有良好的知识管理能力,可以帮助我们更好地应对各种挑战和机遇。 如何经营好自己的知识管理 一、认识知识管理的重要性 知识管理是指通过系统…

回溯法--N皇后问题

N皇后问题 一、问题描述二、示例2.1 四皇后的2个可行解2.2 过程图示 三、问题分析3.1涉及到的概念递归回溯 3.2 分析 四、 代码实现4.1 实现思路宏观:微观: 4.2 递归函数NS图4.3 代码 一、问题描述 1、按照国际象棋的规则,皇后可以攻击与之处…
最新文章