MATLAB和Python发那科ABB库卡史陶比尔工业机器人模拟示教框架

news2024/10/6 18:29:29

🎯要点

🎯模拟工业机器人 | 🎯可视化机器人DH 参数,机器人三维视图 | 🎯绘制观察运动时关节坐标位置、速度和加速度 | 🎯绘制每个关节处的扭矩和力 | 🎯图形界面示教机器人 | 🎯工业机器人模型​ | 🎯计算工业机器人正向和反向运动学、正向和反向动力学

📜机器人用例

📜人形机器人训练模型:Python人形机踊跃跨栏举重投篮高维数动作算法模型

📜机器人集群:​C++和Python蚂蚁搬食和蚊虫趋光性和浮标机群行为算法神经网络

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python惯性单元标定

首先我们来描述一下惯性测量单元的模型。对于陀螺仪和加速度计,其形式为
x ˉ = T x + b + n \bar{x}=T x+b+n xˉ=Tx+b+n

  • x x x - 在参考体坐标系中解析的真实运动矢量(角速率或比力)
  • x ~ \tilde{x} x~ - 测量向量
  • T T T - 接近恒等式的变换矩阵:对角线元素定义比例因子误差,非对角线元素定义轴未对齐
  • b b b - 偏差向量,在这种情况下假设是恒定的,从某种意义上说,它是变化偏差中最重要的恒定部分
  • n n n - 噪音和未考虑的影响

在这里,我们考虑 MEMS 类型的惯性测量单元,它们往往具有显着的噪声、随机和温度偏置不稳定性。对于精确的惯性测量单元,原则上方法是相同的,但在处理偏差方面更加细致。陀螺仪和加速度计的校准方法不同。

在此过程中不会精确估计偏置矢量,因为通常必须在整个温度范围内测量它,并且无论如何它都不会很稳定。但粗略估计并消除以获得变换矩阵的正确估计

对 3 个轴中的每一个重复校准过程:

  • 将惯性测量单元保持静止 30-60 秒,并估计当前陀螺仪偏差(加上地球角速率)作为其平均读数
  • 将惯性测量单元绕轴旋转 360 度(也可以是其他角度),角速度可达到显著水平(20-50 度)

偏差测量是加速度计校准过程所固有的。此外,通常加速度计对温度变化的偏置敏感性较低,并且单个偏置值可能是合适的。校准是通过将每个 IMU 轴垂直向上和向下放置并计算平均读数的一半和和一半差来完成的,以获得变换矩阵元素和偏差。具体的计算可以在代码中看到。

首先创建一个 T 对象。我们假设该表稍微不水平,并且其轴之间存在小的非正交性(在弧秒级别)。航向角是任意的。

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import trapezoid

plt.rcParams['figure.figsize'] = (10, 6)
plt.rcParams['axes.grid'] = True
plt.rcParams['font.size'] = 12
table_lla = [55, 58, 0]
table_rph = [-2/3600, 1/3600, 137]
axes_nonorthogonality = 3/3600

table = pyx.sim.Tutable(table_lla, table_rph, axes_nonorthogonality)

现在执行旋转命令,将用于校准的段被专门标记(使用 label=…)。

table.rest(30, label='gyro_bias_x')
table.rotate('outer', 360, label='gyro_rot_x')

table.rest(30, label='gyro_bias_z')
table.rotate('inner', 360, label='gyro_rot_z')
table.rest(5)

table.rotate('inner', -90)
table.rest(30, label='gyro_bias_y')
table.rotate('outer', 360, label='gyro_rot_y')
table.rest(5)

table.rest(10, label='accel_z_down')
table.rotate('outer', 180)
table.rest(10, label='accel_z_up')

table.rotate('outer', 90)
table.rest(10, label='accel_x_down')
table.rotate('outer', 180)
table.rest(10, label='accel_x_up')

table.rotate('inner', 90)
table.rest(10, label='accel_y_down')
table.rotate('inner', 180)
table.rest(10, label='accel_y_up')

生成理想的惯性测量单元数据。

trajectory, imu_ideal, labels = table.generate_imu(0.01)

现在让我们定义测量单元误差参数(生成随机给定的统计模型)。

gyro_model = pyx.iner_sens.EstimationModel(
    bias_sd=400 * pyx.transform.DH_TO_RS, 
    noise=1 * pyx.transform.DRH_TO_RRS,
    bias_walk=20 * pyx.transform.DH_TO_RS / 60,
    scale_misal_sd=0.01
)
accel_model = pyx.iner_sens.EstimationModel(
    bias_sd=0.2,
    noise=0.1 / 60,
    bias_walk=0.003 / 60,
    scale_misal_sd=0.01
)
rng = np.random.RandomState(0)
gyro_parameters = pyx.iner_sens.Parameters.from_EstimationModel(gyro_model, rng)
accel_parameters = pyx.inert_sens.Parameters.from_EstimationModel(accel_model, rng)

并应用参数来获取最终的惯性测量单元读数:

imu = pyx.inert_sens.apply_imu_parameters(imu_ideal, 'rate', 
                                                 gyro_parameters, accel_parameters)

让我们绘制惯性测量单元读数来演示校准过程是如何组织的。

plt.plot(imu[pyx.GYRO_COLS], label=['gyro_x', 'gyro_y', 'gyro_z'])
plt.xlabel("System time, s")
plt.title("Gyro readings in rad/s")
plt.legend()

现在数据已准备好估计惯性测量单元校准参数。

👉参阅&更新:计算思维 | 亚图跨际

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

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

相关文章

深入编译与体验开源车载Linux操作系统AGL

随着汽车行业的智能化和互联化趋势日益明显,车载系统作为汽车的重要组成部分,其性能和功能也受到了越来越多的关注。Linux作为一款开源的操作系统,具有稳定性高、安全性强、可定制性好等优点,因此成为了车载系统领域的热门选择。 …

内容为王:揭秘顶尖品牌的内容营销制胜法宝

内容营销是当今互联网市场推广领域的热门话题,因为它可以帮助企业更好地与受众沟通、建立品牌口碑,增加销售量。 根据咱们何策网的资源库里的SocialBeta2024年最新《2024 内容营销 10 大趋势》的报告来看,品牌在未来内容营销中最应该注重的是…

2023-2024华为ICT大赛中国区 实践赛昇腾AI赛道 全国总决赛 理论部分真题

Part1 MindSpore模块(7题): 1、MindSpore深度学习框架的候选运行时支持多种硬件平台,包括CPU、GPU、NPU等。以下关于MindSpore后端的描述中,正确的有哪些项?(多选题) A.MindSpore后端运行时负责将计算图转换为对应硬件平台的执行指令&…

SD NAND时序解析

一、SD NAND时序的重要性 在SD NAND的数据传输过程中,时序起着至关重要的作用。正确的时序确保了数据能够准确无误地在主机和SD NAND之间传输。 二、命令与读写时序 SD NAND的通信基于命令和数据传输,遵循以下时序规则: 命令与响应交互&…

KVB交易平台 :市场迎来新热潮!铜价会持续上涨吗?

近期,全球铜价出现明显上涨趋势。韩国光阳LME仓库的铜库存显著下降,市场对即时需求的增加作出了积极反应。供应端的紧张和需求端的复苏共同推动了铜价的上涨。 KVB外汇 分析师们对未来铜价保持谨慎乐观态度,认为长期内铜价有望保持稳定甚至进…

c++纵横字谜

1.实现一个纵横字谜 2.支持14x14的网格 3.可以查看答案 4.猜测错误会提示答案信息 5.从txt读取词汇 6.每次游戏开始 随机生成纵横字谜 n’h

Appium自动化测试框架3

滑动与拖拽 swipe 滑动时间的长短会影响最后的结果的 是有一定误差的 from appium import webdriver import time # 启动一个字典 包装相应的启动参数 desired_caps dict() # 平台的名字,安卓还是IOS 大小写无所谓 desired_caps[platformName] Android # 平台的…

gin项目部署到服务器并后台启动

文章目录 一、安装go语言环境的方式1.下载go安装包,解压,配置环境变量2.压缩项目上传到服务器并解压3.来到项目的根目录3.开放端口,运行项目 二、打包的方式1.在项目的根目录下输入以下命令2.把打包好的文件上传到服务器3.部署网站4.ssl证书 …

UserWarning: IPython History requires SQLite, your history will not be saved

UserWarning: IPython History requires SQLite, your history will not be saved 很久未打开pycharm,控制台出现爆红 解决方法: 重启pycharm,就好啦!!!我猜测可能是上次pycharm没有关闭就电脑关机&…

2024亚洲国际餐饮展览会(北京餐饮展|火锅展|预制菜展会)

2024北京餐饮展会,2024北京食材展会,2024北京火锅展会,2024北京火锅食材展会,2024北京预制菜展会,2024北京预制食材展会, 2024亚洲国际餐饮展览会(北京餐饮展|火锅展|预制菜展会) …

【pytorch13】激活函数及梯度

什么是激活函数 计算机科学家借鉴生物的神经元机制发明了计算机上的模型,这个模型与生物的神经元非常类似 激活的意思就是z变量要大于0,这一个节点才会激活,否则就会处于睡眠状态不会输出电平值 该激活函数在z0处不可导,因此不能…

[k8s生产系列]:k8s集群故障恢复,etcd数据不一致,kubernetes集群异常

文章目录 摘要1 背景说明2 故障排查2.1 查询docker与kubelet状态2.2 查看kubelet服务日志2.3 重启docker与kubelet服务2.3.1 首先kubelet启动起来了,但是报错master节点找不到2.3.2 查询kubernetes集群服务,发现etcd与kube-apiserver均启动异常 2.4 etcd…

Aavegotchi的Gotchiverse新地图: 沉睡的野兽即将苏醒!

Gotchi 守护者们,准备好了,因为我们要大开杀戒了! 加入我们吧(后果自负!),我们将深入Gotchiverse,前往奥姆夫山--我们虚拟世界中所有 FOMO 的炽热源头。 请继续阅读,了解…

vue中的坑·

常规 1.使用watch时,immediate true会在dom挂载前执行 2.使用this.$attrs和props 可以获取上层非原生属性(class/id) 多层次嵌套引用 设置的时候直接赋值,修改的时候即使用的双向绑定加上$set / nextick / fouceUpdate都不会同步…

关于Ubuntu系统中.config文件夹如何找到

Ubuntu中QT项目使用了setting保存配置,但是找不到配置文件保存了在哪里,找了一下: 因为QT里取的名字是: 于是下载everything搜索Nio,发现目录为/home/nio/.config 虽然已经下载了everything找到了,但是发现…

spring boot读取yml配置注意点记录

问题1:yml中配置的值加载到代码后值变了。 现场yml配置如下: type-maps:infos:data_register: 0ns_xzdy: 010000ns_zldy: 020000ns_yl: 030000ns_jzjz: 040000ns_ggglyggfwjz: 050000ns_syffyjz: 060000ns_gyjz: 070000ns_ccywljz: 080000ns_qtjz: 090…

通讯录(C语言详细版)

1. 前言 通讯录是在动态顺序表的基础上实现的,其实就是顺序表的每个元素存储的不再是数字,而是存储一个联系人的结构体,所以如果有些小伙伴看不懂的话,可以移步参考一下动态顺序表的实现:顺序表(C语言详细…

强强联合!当RAG遇到长上下文,滑铁卢大学发布LongRAG,效果领先GPT-4 Turbo 50%

过犹不及——《论语先进》 大学考试时,有些老师允许带备cheet sheet(忘纸条),上面记着关键公式和定义,帮助我们快速作答提高分数。传统的检索增强生成(RAG)方法也类似,试图找出精准的知识片段来辅助大语言模型(LLM)。 但这种方法其实有问题…

Oracle Database 23ai新特性:DB_DEVELOPER_ROLE角色

角色介绍 从 Oracle Database 23ai 开始,新角色“DB_DEVELOPER_ROLE”允许管理员快速分配开发人员为 Oracle 数据库设计、构建和部署应用程序所需的所有必要权限。(包括构建数据模型所需的系统权限以及监视和调试应用程序所需的对象权限)。通…

【期末复习】数据库系统概论(附带考点汇总)

第1章.绪论 目录 第1章.绪论1.1. 数据库系统概述1.1.1.基本概念1.1.2.产生和发展 1.2.概念模型1.2.1.三种模型1.2.2.概念模型1.2.3.关系模型 1.3.数据库系统结构1.3.1三级模式结构1.3.2.两级映像与数据独立性 第2章.关系型数据库2.1.关系2.2.关系操作2.2.1.基本关系操作2.2.2.关…