一个适合初学者入门机器人建模、控制和仿真的demo项目,代码已开源!

本文分享了一个机器人领域入门学习的工程练习demo,通过CoppeliaSim实现2连杆机器人的运动学建模、轨迹规划,包含Matlab代码和插值算法。适合对机器人感兴趣但缺乏经验的学习者参考。
摘要由CSDN通过智能技术生成

最近整理了一下自己带新同学做机器人领域入门学习时需要完成的一个工程练习demo,在此分享,可以作为机器人领域的初学者们学习机器人的运动学建模、轨迹规划以及机器人仿真(基于CoppeliaSim)的入门教程。

demo的代码已开源,github上的开源仓库地址:https://github.com/chauby/two_link_arm_in_coppeliasim

欢迎有需要的读者下载使用,最终可以实现的效果如下:

这是一个简易的2连杆机器人模型,使用的是CoppeliaSim的简单圆柱来构成的,包含2个可控制的旋转关节。

  • 第一个视频中是直接对每个关节单独控制,给定正弦的参考曲线的运动结果;

  • 第二个视频中的机器人末端轨迹使用的是基于插值的方法,可以根据给定的多个中间点(视频中的小圆球)生成通过这些点的平滑轨迹。然后使用机器人的逆运动学求解关节的参考轨迹并对每个关节进行控制。

一. 该demo代码包含什么内容

该demo文件夹截图如下所示,包含code、scenes、video三个文件夹。

46ee6982c6e4bfb9c82bc86f40693000.png

其中:

  • Code:这下面是所有的代码。代码使用的是Matlab语言编程,其中文件夹CoppeliaSim中包含的是使用Matlab控制CoppeliaSim中的机器人模型运动的代码,基于类编程实现;文件夹PVT是一个三次多项式插值方法的实现,可以基于多个给定点的位置、速度和时间生成平滑的参考轨迹;文件夹RobotModel是《仿人机器人》一书中关于机器人运动学建模的代码实现,其中的一部分代码用于了本项目的机器人建模;VREP_RemoteAPIs是Maltab与CoppeliaSim通讯控制的底层代码;剩下的两个m文件即是机器人模型的控制demo,对应上述两个展示视频。

  • Scenes:包含2个CoppeliaSim的工程文件,在这两个文件中分别有1个简易的二连杆机器人模型,可以用于展示代码对于机器人模型的控制结果。其中第一个模型是机器人的基座在地面上的情况,对应上述第一个视频;第二个模型是机器人的基座在空中的情况,对应上述第二个视频。

  • Video:包括3个视频文件,分别展示了在CoppeliaSim中对所创建的机器人模型进行简单关节控制和轨迹插值控制的效果,其中两个已经在本文中展示。

二. 该demo项目的代码有什么特点

在这个简单的demo项目中,对机器人编程建模使用的不是传统的DH法,使用的是《仿人机器人》中的建模方法,类似于旋量法。模型的代码中有对双足机器人腿部运动学建模的完整实现,其中所涉及到的双足机器人腿部模型自由度和关节分配如下图所示:

cedca7f93cc0c41cd81d47b0865c005c.png

本文所展示的简单demo只是该模型应用到机械臂建模中的一个简单应用,该模型完全可以作为双足机器人的运动学建模使用。对于双足机器人,这里也有一部分基于倒立摆模型和ZMP预观控制算法的代码可以参考:

  • https://github.com/chauby/BipedalWalkingRobots

  • https://github.com/chauby/ZMP_preview_control

此外,该demo项目的代码包含了基于PVT插值方法(Position-Velocity-Time)的机器人轨迹生成算法,这是一种插值方法,可以给定轨迹上多个必须要通过的中间点来生成必要的轨迹。并且,可以任意指定通过这些点的速度和时间,从而生成满足要求的轨迹。

6fb490c402bea0af82ceb64e7b8e2392.png

关于PVT的插值,可以看这个代码,使用的是Python语言实现:https://github.com/chauby/PVT_Spline

本文中所使用的是Matlab语言的实现,效果相同。

三. 初学者如何学习使用?

1. 知识储备:

需要有Matlab编程基础,需要有线性代数、微积分等基础知识,需要了解机器人关节的基本控制过程,比如PID控制算法;

本文所涉及的机器人建模部分的代码实现原理在《仿人机器人》这本书中的第一章节和第二章节,可以认真学习这部分知识,要能理解机器人的正运动学、逆运动学等计算过程,尤其是基于雅可比的机器人逆运动学计算方法。

2. 机器人仿真平台CoppeliaSim:对使用CoppeliaSim软件进行机器人仿真不熟悉的读者可以参考这一系列的介绍教程:https://zhuanlan.zhihu.com/p/121571253

这个系列的文章可以带初学者认识和了解机器人的仿真环境CoppeliaSim,但是需要注意的是CoppeliaSim的版本。上述CoppeliaSim的教程推荐使用4.1版本的CoppeliaSim,本文涉及到的项目所使用的是4.4版本的CoppeliaSim,应该也可以在4.1版本中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

沙漏AI机器人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值