python机器人库(robotics-toolbox-python)的运用

本文详细介绍了如何运用python机器人库robotics-toolbox-python,包括创建机械臂模型、正逆运动的实现,以及DH参数的解析。该库提供了丰富的机器人模型和算法,支持移动机器人和机械臂的运动学、动力学计算,适合学习和教学。
摘要由CSDN通过智能技术生成

python机器人库(robotics-toolbox-python)的运用

Python 机器人库的运用



前言

找了半天发现网上关于python机器人库的资料很少,而目前我的项目要用到相关的东西,查询官网过后总结一下。

一、相关概要

这个工具箱为 Python 带来了机器人特定的功能,并利用 Python 的可移植性、普遍性和支持性的优势,以及线性代数(numpy、scipy)、图形(matplotlib、three.js、WebGL)的开源生态系统的能力,交互式开发(jupyter、jupyterlab、mybinder.org)和文档(sphinx)。

工具箱提供了用于表示串行链接机械手的运动学和动力学的工具 - 您可以轻松地以 Denavit-Hartenberg 形式创建自己的工具,导入 URDF 文件,或使用来自 Franka-Emika 的 30 多种提供的知名当代机器人模型, Kinova、Universal Robotics、Rethink 以及 Puma 560 和 Stanford arm 等经典机器人。

该工具箱还将支持具有机器人运动模型(独轮车、自行车)、路径规划算法(bug、距离变换、D*、PRM)、运动动力学规划(晶格、RRT)、定位(EKF、粒子滤波器)等功能的移动机器人,地图构建 (EKF) 和同时定位和映射 (EKF)。

工具箱提供:

成熟的代码,为相同算法的其他实现提供一个比较点;
例程通常以简单明了的方式编写,易于理解,但可能以牺牲计算效率为代价;
可供学习和教学阅读的源代码;
与 Robotics Toolbox for MATLAB 的向后兼容性
该工具箱利用Python 的空间数学工具箱来提供对 SO(n) 和 SE(n) 矩阵、四元数、扭曲和空间向量等数据类型的支持

二、必要的库的安装

  1. 需要 Python >= 3.6
  2. spatialmath-python
  3. numpy
  4. numpy-stl
  5. vpython(这个库确实不知道怎么安装,但是安装不上也不影响后续,如果有知道到的可以,一起交流)
  6. python机器人工具箱
 % git clone https://github.com/petercorke/robotics-toolbox-python.git
 % cd robotics-toolbox-python
 % pip install -e .

1.创建机械臂模型

步骤一:在模型库里面创建一个名为’MYROBOT.py’的文件,其中MYROBOT是机器人的描述性名称,它是一个有效的文件名和Python类名。
E:\pyproject\defecate\robotics-toolbox-python\roboticstoolbox\models\DH\MYROBOT.py这是我的地址

步骤二:加载库

from math import pi
import numpy as np
from roboticstoolbox import DHRobot, RevoluteDH, PrismaticDH, RevoluteMDH, PrismaticMDH

最后一行很重要,它定义了所有可能的类的可能。不会全部使用它们,为了保持整洁,你可以删除那些你不用的。这就是他们的目的;

‘RevoluteDH’用于使用标准DH参数的转动关节

‘PrismaticDH’用于使用标准DH参数的移动关节

‘RevoluteMDH’用于使用MDH参数的转动关节

‘PrismaticMDH’用于使用MDH参数的移动关节

步骤三:描述机械臂,记录下使用的单位、DH参数以及对模型来源的引用。

class MYROBOT(DHRobot):
    """
    Create model of MYROBOT manipulator
    KR5()是一个用标准DH约定对Kuka KR5机器人建模并描述其运动学特征的类。
       .
       定义的关节构型为:
       qk1,公称工作位置1
       qk2,公称工作位置2
       qk3,公称工作位置3.

    :notes:
       .使用国际计量单位米
       .包括一个11.5厘米的工具在z方向
       .

    :references:
       .
       .
       .

    """

步骤四:在’init_’,通过创建适当的链接类的实例来定义一组链接变量

def __init__(self):

        deg = pi/180

        L0 = RevoluteDH(
            d=0,          # link length (Dennavit-Hartenberg notation)
            a=0,          # link offset (Dennavit-Hartenberg notation)
            alpha=pi/2,   # link twist (Dennavit-Hartenberg notation)
            I=[0, 0.35, 0, 0, 0, 0],  # inertia tensor of link with respect to
                                      # center of mass I = [L_xx, L_yy, L_zz,
                                      # L_xy, L_yz, L_xz]
            r=[0, 0, 0],  # distance of ith origin to center of mass [x,y,z]
                          # in link reference frame
            m=0,          # mass of link
            Jm=200e-6,    # actuator inertia
            G=-62.6111,   # gear ratio
            B=1.48e-3,    # actuator viscous friction coefficient (measured
                          # at the motor)
            Tc=[0.395
  • 25
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值