用于机器人教育和研究的Python库
roboticstoolbox-python的Python项目详细描述
Python机器人工具箱
A Python implementation of the Robotics Toolbox for MATLAB® |
概要
这个工具箱为Python带来了特定于机器人的功能,并利用 Python的普遍性和可移植性的优势 线性代数(numpy,scipy)的开源生态系统,图形 (matplotlib,三.js,WebGL),交互式开发(jupyter,jupyterlab, mybinder.org网站),和文档(斯芬克斯)。在
工具箱提供了用于表示 串行链接操纵器-你可以很容易地创建你自己在德纳维哈滕伯格 形成、导入一个URDF文件,或者使用30多个提供的知名模型 来自Franka Emika、Kinova、Universal Robotics的当代机器人 以及经典的机器人,如彪马560和斯坦福手臂。在
工具箱还将支持具有机器人运动模型功能的移动机器人 (独轮车,自行车),路径规划算法(错误,距离变换,D*, PRM)、动力学规划(lattice,RRT)、定位(EKF、粒子滤波)、, 地图生成(EKF)和同步定位与制图(EKF)。在
工具箱提供:
- 成熟的代码,为其他代码提供了一个比较点 相同算法的实现
- 通常以直截了当的方式编写的例程 允许容易理解,也许以计算为代价 效率
- 可供学习和教学阅读的源代码
- 与MATLAB机器人工具箱的向后兼容性
代码示例
我们将加载一个Franka Emika熊猫机器人的模型 修改(克雷格公约)德纳维特-哈滕贝格表示法
importroboticstoolboxasrtbrobot=rtb.models.DH.Panda()print(robot)┏━━━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓┃aⱼ₋₁┃⍺ⱼ₋₁┃θⱼ┃dⱼ┃q⁻┃q⁺┃┣━━━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━╋━━━━━━━━━╋━━━━━━━━┫┃0.0┃0.0°┃q1┃0.333┃-166.0°┃166.0°┃┃0.0┃-90.0°┃q2┃0.0┃-101.0°┃101.0°┃┃0.0┃90.0°┃q3┃0.316┃-166.0°┃166.0°┃┃0.0825┃90.0°┃q4┃0.0┃-176.0°┃-4.0°┃┃-0.0825┃-90.0°┃q5┃0.384┃-166.0°┃166.0°┃┃0.0┃90.0°┃q6┃0.0┃-1.0°┃215.0°┃┃0.088┃90.0°┃q7┃0.107┃-166.0°┃166.0°┃┗━━━━━━━━┻━━━━━━━━┻━━━━━┻━━━━━━━┻━━━━━━━━━┻━━━━━━━━┛┌─────┬───────────────────────────────────────┐│tool│t=0,0,0.1;rpy/xyz=-45°,0°,0°│└─────┴───────────────────────────────────────┘┌─────┬─────┬────────┬─────┬───────┬─────┬───────┬──────┐│name│q0│q1│q2│q3│q4│q5│q6│├─────┼─────┼────────┼─────┼───────┼─────┼───────┼──────┤│qz│0°│0°│0°│0°│0°│0°│0°││qr│0°│-17.2°│0°│-126°│0°│115°│45°│└─────┴─────┴────────┴─────┴───────┴─────┴───────┴──────┘T=robot.fkine(robot.qz)# forward kinematicsprint(T)0.7071070.70710700.0880.707107-0.7071070000-10.8230001
(不显示Python提示以便于复制和粘贴代码,控制台输出缩进)
我们可以很容易地解逆运动学。我们首先选择一个SE(3)姿势 根据位置和方向(末端执行器z轴向下(A=-z)和手指定义 平行于y轴的方向(O=+y)。在
^{pr2}$请注意,因为这个机器人是冗余的,我们除了末端执行器姿势外,对手臂的配置没有任何控制,也就是说,我们无法控制肘部的高度。在
我们可以设置从垂直qz
配置到这个拾取配置的路径
qt=rtb.trajectory.jtraj(robot.qz,q_pickup,50)robot.plot(qt.q,movie='panda1.gif')
它使用默认的matplotlib后端。灰色箭头显示关节轴,彩色框架显示末端效应器姿势。在
现在让我们加载同一个机器人的URDF模型。运动表示不再存在 基于Denavit-Hartenberg参数,它现在是一个刚体树。在
robot=rtb.models.URDF.Panda()# load URDF version of the Pandaprint(robot)# display the model┌───┬──────────────┬─────────────┬──────────────┬─────────────────────────────────────────────┐│id│link│parent│joint│ETS│├───┼──────────────┼─────────────┼──────────────┼─────────────────────────────────────────────┤│0│panda_link0│-││││1│panda_link1│panda_link0│panda_joint1│tz(0.333)*Rz(q0)││2│panda_link2│panda_link1│panda_joint2│Rx(-90°)*Rz(q1)││3│panda_link3│panda_link2│panda_joint3│ty(-0.316)*Rx(90°)*Rz(q2)││4│panda_link4│panda_link3│panda_joint4│tx(0.0825)*Rx(90°)*Rz(q3)││5│panda_link5│panda_link4│panda_joint5│tx(-0.0825)*ty(0.384)*Rx(-90°)*Rz(q4)││6│panda_link6│panda_link5│panda_joint6│Rx(90°)*Rz(q5)││7│panda_link7│panda_link6│panda_joint7│tx(0.088)*Rx(90°)*Rz(q6)││8│@panda_link8│panda_link7│panda_joint8│tz(0.107)│└───┴──────────────┴─────────────┴──────────────┴─────────────────────────────────────────────┘
我们可以在基于浏览器的三维仿真环境中实例化我们的机器人。在
env=rtb.backends.Swift()# instantiate 3D browser-based visualizerenv.launch()# activate itenv.add(robot)# add robot to the 3D sceneforqkinqt.q:# for each joint configuration on trajectoryrobot.q=qk# update the robot stateenv.step()# update visualization
开始吧
安装
您需要Python>;=3.6
使用pip
从PyPI安装快照
pip3 install roboticstoolbox-python
可用选项包括:
将选项放在逗号分隔的列表中,如下所示
pip3 install roboticstoolbox-python[optionlist]
Swift-sim,一个基于web的可视化工具,是 作为机器人工具箱的一部分安装。在
来自GitHub
从GitHub安装最新版本
git clone https://github.com/petercorke/robotics-toolbox-python.git
cd robotics-toolbox-python
pip3 install -e .
举几个例子
^{
或者你可以运行它们,在mybinder.org上进行实验。在
- 项目
标签: