petercorke / robotics-toolbox-python简介

 

剧情简介:这个工具箱为Python带来了机器人特有的功能,并充分利用了Python的可移植性、普遍性和支持的优势,以及线性代数(numpy, scipy)、图形(matplotlib, three)的开源生态系统的能力。交互式开发(jupyter,jupyterlab, mybinder.org)和文档(sphinx)。工具箱提供了工具,代表串行连接运动学和动力学的操纵者,您可以轻松地创建自己的Denavit-Hartenberg形式,导入URDF文件,或使用超过30提供模型从Franka-Emika著名当代机器人,Kinova,万能机器人,反思以及古典机器人如彪马560年斯坦福大学的手臂。这个工具箱还将支持移动机器人的功能,包括机器人运动模型(独轮车、自行车)、路径规划算法(bug、距离变换、D*、PRM)、运动动态规划(lattice、RRT)、定位(EKF、粒子滤波)地图构建(EKF)和同步定位和映射(EKF)。工具箱提供了:成熟的代码,并为相同算法的其他实现提供一个比较点;例程通常以简单易懂的方式编写,便于理解,可能会牺牲计算效率;源代码,可以读为学习和教学与MATLAB的机器人工具箱向后兼容这个工具箱利用了Python的空间数学工具箱来提供对诸如SO(n)和SE(n)矩阵、四元数、扭转和空间向量等数据类型的支持。

第一步:安装这个包,通过pycharm安装,先建立一个工程,使用虚拟环境。然后在teminal里面通过pip3 install roboticstoolbox-python进行安装。

第二步:引用库并建立一个机器人变量,并进行打印和观察数据结构。

在Python console输入以下命令,查看建立的机器人的DH参数模型。右侧可以看到这个机器人变量的里面的具体内容。
import roboticstoolbox as rtb
robot = rtb.models.DH.Panda()
print(robot)

 

第三步:机器人的正运动学函数

输入机器人正向运动学并查看结果及相关变量结构
T = robot.fkine(robot.qz)  # forward kinematics
print(T)

第四步:机器人的反运动学计算

我们可以很容易地解逆运动学。我们首先选择一个SE(3)位姿定义在位置和方向(末端执行器z轴向下(A=-Z)和手指方向平行于Y轴(0=+Y)。

官网上给第例子是下面的,不过ikine_unc函数好像没有,试了其他的也没有弄出来。

from spatialmath import SE3

T = SE3(0.8, 0.2, 0.1) * SE3.OA([0, 1, 0], [0, 0, -1])
sol = robot.ikine_unc(T)         # solve IK
print(sol.q)                    # display joint angles

	[-0.01044    7.876    1.557    -6.81    1.571    4.686   0.5169]

print(robot.fkine(sol.q))    # FK shows that desired end-effector pose was achieved

	Out[35]: 
	SE3:┏                                           ┓
		┃-1         -4e-08      0.000521   0.615    ┃
		┃ 2.79e-08   1          0.00013    0.154    ┃
		┃-0.000521   0.00013   -1          0.105    ┃
		┃ 0          0          0          1        ┃
		┗                                           ┛

第五步:绘制三维数据的机器人末端移动。

请注意,因为这个机器人是冗余的,我们没有任何控制手臂的姿势除了endeffector pose,即我们控制不了手肘。我们可以动画一个路径从垂直的qz配置到这个拾取的场景

q_pickup=[-0.01044,7.876,1.557,-6.81,1.571,4.686,0.5169]#官网的例子里面没有定义这个变量,我自己选了第四步的值。
qt = rtb.trajectory.jtraj(robot.qz, q_pickup, 50)
robot.plot(qt.q, movie='panda1.gif')

第六步:绘制一个动态实体机器人

它使用默认的matplotlib后端。灰色箭头表示关节轴,彩色边框表示末端姿势。现在让我们加载同一机器人的URDF模型。运动学表示不再基于DenavitHartenberg参数,它现在是一个刚体树。

robot = rtb.models.URDF.Panda()  # load URDF version of the Panda
print(robot)    # display the model

符号@表示该链接作为末端执行器,即riqbody树中的叶节点。我们可以在基于浏览器的3d模拟环境中实例化我们的机器人。

env = rtb.backends.Swift()  # instantiate 3D browser-based visualizer
env.launch()                # activate it
env.add(robot)              # add robot to the 3D scene
执行下面的for循环,机器人就会动起来。
for qk in qt.q:             # for each joint configuration on trajectory
      robot.q = qk          # update the robot state
      env.step()            # update visualization

 

总结:GitHub上还有其他的例子可以自己尝试。https://github.com/petercorke/robotics-toolbox-python.git

petercorke就是编制matlab机器人工具箱的

mbot机器⼈巡线程序_mBot机器⼈编程——⽤机器⼈的逻辑思 考问题 mBot机器⼈编程 ——⽤机器⼈的逻辑思考问题 ⽂/陈林 提到机器⼈,想必⼤家都不会陌⽣。但如果问到什么是机器⼈时,似乎⼼中的答案并不是那么的确切了,甚⾄不知道如何回答这个问题。如 果你也对什么是机器⼈这个问题感到⽆从回答的话,那就对了,因为国际上并未有⼀个准确的定义。 什么是机器⼈? 如果你尝试去百度,你会得到:机器⼈(Robot)是⼀种能够半⾃主或全⾃主⼯作的智能机器。⽽你查阅辞海时,⼜能得到:⼀种可以接受感 应到周围变化及输⼊的机器,通常具有某种程度的⼈造智慧。⽽维基百科⾥描述的是:机器⼈包括⼀切模拟⼈类⾏为或思想与模拟其他⽣物 的机械。因此,每次课我都会⿎励孩⼦们尝试为⾃⼰所理解的机器⼈下⼀个定义。这次我也收获到了很多不同的答案,有认为机器⼈是能独 ⽴完成某⼀具体事情的机械装置,有认为机器⼈是能协助⼈完成⼯作的机器,也有同学认为机器⼈就是拓展⼈类某⼀能⼒的机械。 你为什么学习机器⼈? 机器⼈已经逐渐⾛⼊了我们的⽣活,为⼈们带来了巨⼤的便利,我们⼏乎可以预⾔,机器终将取代我们绝⼤部分的⼯作,为⼈们的⽣活带来 巨⼤的便利,包括医疗、公共服务、家庭⽣活和教育等。对的,在教育中,机器⼈除了可以充当我们的AI⽼师,如"有道"提供的"AI"英 语教育等,还可以作为学习和⾛进机器⼈世界的⼀个教育载体。很少有⼀门学科能同时涵盖了数学、物理、计算机、机械⼯程等领域。因 此,学习机器⼈可以做到多学科的融合。 如何学习机器⼈? 说起机器⼈的历史,早在1959年,机器⼈之⽗约瑟夫·恩格尔伯格便制造了世界上第⼀台⽤于⼯业⽣产的可编程机器⼈。到如今,机器⼈ 已经可以做到如索菲亚那种对答如流,能做出超过60多种表情的机器⼈,⼜或者如同波⼠顿公司⽣产的能奔跑和空翻的敏捷机器⼈。机器 ⼈发展如此迅速,要想学习机器⼈,就需要知道最根本的底层逻辑。尽管拓展到智能硬件,我们依然可以这样说,绝⼤部分的智能机械实现 逻辑都是:接收信息 处理信息 输出控制指令。因此我们的课程中包含了⼤量的项⽬,并且每⼀个项⽬都是遵循这样的逻辑实现的。 ⽤mBot机器⼈来开启你的学习之旅! mBot是MakeBlock公司⽣产的⾯向⼴⼤青少年的教育机器⼈,它⽀持图形化编程和c语⾔代码编程。其机器⼈⼤脑主板集成了RGB彩灯、 红外接收模块、蜂鸣器、电源模块和红外发射模块等。且包含了直流电件、红外遥控、蓝⽛、超声波、灰度传感器等多种外设。⾮常适合我 们初学者作为第⼀个⼊门编程和机器⼈的教具。 我们都做了些什么项⽬? 机器⼈的组装 学习mBot机器⼈的第⼀步,就是组装你⾃⼰的机器⼈,从每⼀个模块的搭建到拧上第⼀个颗螺丝再到装上电池贴上标签。是的,每⼀步都 由你⾃⼰完成,让你的机器⼈赋予上特殊的意义。 轨迹⾏⾛ 组装好的你的机器⼈了!快来试试机器⼈能跑起来吗?⾛个正⽅形试试: 超声避障 超声波模块会发出40Khz的超声波,并在阈值时间内,等待返回波,当接收到返回波时,利⽤声⾳在空⽓中的传播速度便可以计算出障碍物 的距离,当距离过近时认定为有障碍,通过控制电机让机器⼈转开。对的,机器⼈编程中,程序的⼀⼤结构就是分⽀语句。对于机器⼈⽽ ⾔,有太多的不确定性了,需要通过假设的⽅法来将接收到的信息分情况处理。这也就是规则,当它掌握的规则越多,它就越智能。 机器⼈⾛迷宫 机器⼈⾛迷宫灵感来源于"电脑⿏"⾛迷宫竞赛,我们的机器⼈在超声波的帮助下,能够轻松分辨出前⽅是否有障碍物,这样也就⾜够⾛⼀ 个简单的迷宫了。同学们尝试了利⽤随机数实现在碰到墙壁时,随机左右转,防⽌陷⼊死循环。最后在多次尝试后,挑战成功! 循线机器⼈ 利⽤双灰度传感器,加上四条规则: 1. 左边看到⽩⾊右转(左偏了) 2. 右边看到⽩⾊左转 3. 两边都为⽩停⽌ 4. 两边都为⿊前进 是的,⼈类之所以聪明,就是掌握了⼤量的规则,事物间的规则等。当我们教会机器⼈⼀些简单的规则后,它也就变得智能了。 送餐机器⼈ 很明显,我们的机器⼈⼏乎具备了简易送餐机器⼈的全部功能,能够按照指定线路⾏⾛,能够实时检测障碍物,最后就只差记录站点了。对 的,如果掌握变量的使⽤,你就可以尝试综合已经学习过的知识点,完成⼀个送餐机器⼈制作。 写在最后 初学机器⼈,你可能会发现,我们只不过是在交给机器⼈⼀些具体的规则,⽆论是让他完成智能声光控,亦或者让其送个餐,⾃动打扫⼀下 卫⽣等等,都是在不断的教会它更多的规则,让它在遇到问题的能够处理。⽽如果它变得能够处理⼀些突发性的问题,或者说当它能够创造 规则的时候,也就是⼈所具备的能⼒!⽽让机器⼈具备或延伸⼈的智能,也就是到了⼈⼯智能的领域了!
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leecheni

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值