本文是双足机器人系列的第三篇,在前面的文章中我们介绍了2D线性倒立摆的基本理论,详见: 沙漏:【双足机器人(1)】线性倒立摆及其运动控制(附代码) 在这篇文章中我们要详细介绍3D线性倒立摆的基本内容,以及使用Python来实现3D线性倒立摆的简单仿真。 话不多说,先上一个最后的仿真视频: 代码已经开源,详见: https://github.com/chauby/BipedalWalk
1. 经典DMP的问题 本文是上一篇文章的续文,文章地址: Dynamic Movement Primitives介绍及Python实现与UR5机械臂仿真 本文目的在于介绍经典DMP的问题及其解决办法。同样地,所有的源代码均开源,详见: chauby/PyDMPs_Chaubygithub.com/chauby/PyDMPs_Chauby 首先,我们还是从这个基本的DMP公式出发: 其中,非
Dynamic Movement Primitives (DMP),中文译名为动态运动基元、动态运动原语等,最初是由南加州大学的Stefan Schaal教授团队在2002年提出来的,是一种用于轨迹模仿学习的方法,以其高度的非线性特性和高实时性,被应用到机器人的各个领域。时间已经过去了20年,DMP在机器人的规划控制领域也得到了长足的发展和应用,其优点得到了大家的肯定。 我当年在学习DMP的过程中
最近在CoppeliaSim中使用到了力传感器,之前也简单使用了一次,但是这次使用的时候发现力传感器读取得到的力的值有一些方向上的问题(正负值的问题),官方的说法比较模糊,因此决定自己总结一下,在此分享出来。 CoppeliaSim中的力/力矩传感器 在CoppeliaSim中提供了如下图所示的力矩传感器: 它可以测量沿着$x, y, z$三个坐标轴方向上的力以及绕这三个轴的扭矩。 使用方法 在
1. 简介 在上一期的文章中,我们对线性倒立摆在2D平面内的运动过程进行了分析,并给出了基于轨道能量的线性倒立摆控制过程。 【双足机器人(1)】线性倒立摆及其运动控制(附代码) 在本期文章中,我们将建立线性倒立摆模型的运动学模型,为后面进行倒立摆的仿真控制铺垫基础。最终,我们可以使用所构建的运动学模型控制倒立摆模型的末端机构来绘制心形图案,源代码已开源,详见文末。 在Python中使用绘图工具
1. 简介 在仿人双足机器人的控制里面,可以将机器人模型简化为一个线性倒立摆模型(下图来自梶田秀司教授的《仿人机器人》[1],中文电子版详见代码仓库),用于机器人的平衡控制和步态规划。线性倒立摆模型及其后续扩展的其他模型在双足机器人的研究中被广泛采用,取得了不错的控制效果。今天,我们就来聊一聊其中最经典,也是最基础的模型:线性倒立摆模型。 双足机器人 2. 线性倒立摆模型 在矢状平面内,线性
前言 今天我们来聊聊轨迹插值,在机器人的运动规划和控制领域,参考轨迹的生成是一个历史悠久的问题,已经发展出了一系列的方法。今天我们就来聊一聊轨迹插值领域中最常见的轨迹插值方法:多项式插值。 说明:本文约5000字,全部看懂需要一定的时间,建议先收藏。本文所涉及的代码全部开源,提供Matlab和Python两个版本,仓库地址详见文末。 首先,我们定义一下问题: 如下图所示,给定一些离散的数据点,我
【导读】 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo。使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中涉及到V-REP环境中的机器人感知和控制过程。没有看过前期学习笔记的读者,可以在文末找到往期文章地址。 V-REP自学笔记是一个系列教程,发补在专栏:AI与机器
【导读】 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo。使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中涉及到V-REP环境中的机器人感知和控制过程。没有看过前期学习笔记的读者,可以在文末找到往期文章地址。 V-REP自学笔记是一个系列教程,发布在知乎专栏:AI与机
【导读】 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo。使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中涉及到V-REP环境中的机器人感知和控制过程。没有看过前期学习笔记的读者,可以在文末找到往期文章地址。 V-REP自学笔记是一个系列教程,发补在专栏:AI与机器人。
【导读】 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo。使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中涉及到V-REP环境中的机器人感知和控制过程。没有看过前期学习笔记的读者,可以在我的专栏找到往期文章。 V-REP自学笔记是一个系列教程,发布在专栏:AI与机器人。
【导读】 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo。使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中涉及到V-REP环境中的机器人感知和控制过程。没有看过前期学习笔记的读者,可以在文末找到往期文章地址。 V-REP自学笔记是一个系列教程,发布在专栏:AI与机器人。
【导读】 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo。使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中涉及到V-REP环境中的机器人感知和控制过程。没有看过前期学习笔记的读者,可以在文末找到往期文章地址。 V-REP自学笔记是一个系列教程,都将发布在专栏:AI与机
【导读】 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo。使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中涉及到V-REP环境中的机器人感知和控制过程。 我的专栏: AI与机器人zhuanlan.zhihu.com/c_1212783320150577152 在上
【导读】 V-REP自学笔记是一个系列教程,主要帮助读者从零开始逐步深入的学习和使用V-REP软件,以及在这个平台的基础上,学习一些机器人感知和控制规划相关的知识。这个系列的教程将持续更新和发布在专栏:AI与机器人。 整个项目涉及到的代码都开源并发布到github上,欢迎大家Mark和下载使用:https://link.zhihu.com/?target=https%3A//github.com/
在Wiindows平台下需要卸载后重装,且安装的版本不支持多个版本共存。所以你需要确定你要使用哪个版本,版本之间有些许差异。4.6版本中,你给的截图中选择Dynamic mode,然后在 Dynamic Properties dialog中选择Control mode 为 Force模式,这个就是力矩控制模式。
评论中说得对,一般这种情况下是存在碰撞才会有的问题。所以你需要检查一下你画的各个模块之间是否存在干涉和碰撞,如果存在但你又不需要的话,可以设置两个Object之间不碰撞。在CoppeliaSim中针对每个Object的属性去设置。
没有遇到过这个问题,我猜测是因为你的Python版本太高了,你可以试试降低Python的版本,比如使用Python 3.6
此问题与本项目无关哈
注意CoppeliaSim的版本问题,需要安装4.2
这属于软件问题哈,重装吧
这个问题不属于本项目的问题哈,是你的CoppeliaSim本身软件有问题。可以选择重装一下,注意版本。还有就是,这个项目是在Linux系统下运行的,不要在Windows下面使用。
好的
是Ubuntu系统吗?可能是CoppeliaSim的版本问题?
好的,解决了就可以。
你是使用的Ubuntu吗?不建议用Windows。
请看评论区的第一个问题哈,类似的问题
问题比较长哈,我没有太理解你的问题是什么。但是我觉得你可以从以下两个地方来排查: 1. 对于具有质量的机械臂来说,在位置控制模式下,如果给它的某个关节设定一个目标位置,那么它需要时间进行加速、减速才能到达这个位置。我看你表达的意思是你想通过一次命令就让机械臂直接运动到对应的目标关节角度上?在目标位置距离当前位置较大时一般是不可能的,也没有办法让一个关节在单个控制周期中就直接到达目标位置。 2. 机械臂的各个关节最大扭矩设定如何?是否具有足够的力量来驱动所有的关节。
好的,找到问题就好。
机械臂的情况比这个单倒立摆要复杂得多,但无论是什么环境,基本的思路都是一样的。构建机器人的状态、确定目标状态、构建损失函数,然后就是搭建环境开始训练。对于你这个来说,至于你是要在末端空间中训练末端位置然后使用逆运动学求解关节控制量,还是直接使用关节控制量作为输入就看你的需求了,两种方法各有优缺点。
无法判定问题,这不是代码问题。请从以下几个地方排查:1. 请使用Ubuntu系统 2. 请检查Python和Visdom的版本是否与视频教程一致。
可能导致这个问题原因太多了,你这样的描述无法判断是什么问题,只能说用Linux仿真没问题的话那就用Linux吧。而且,这已经超出了本课程讨论的范围了。
如果你是想获取时间,可以在step()函数中调用获取仿真时间的函数来获取时间,这个函数是会被周期性调用的。
不建议在windows下使用。因为Gym对Windows的支持不是很好,不少人在配置Gym的时候出现问题。
已重新测试,操作系统Ubuntu20.04 64位操作系统,anaconda 3, python 3.6, python 3.7, python 3.8都可以正常运行代码。其中,如果需要加载已经训练好的默认模型参数,只能使用Python 3.8。如果是重新训练模型,上诉三个Python版本都可以正常运行。
我的测试环境是Ubuntu 20.04, anaconda 下的python3.6+环境。不知道你是在哪个平台下?
原始的代码能跑通吗?从你的这个报错的信息来看就是我说的这个问题了。
在使用代码的时候要确保每一处的state返回值都是具有同样size的,否则就会报上面这个错误。一般在初始化、step和reset这几个函数里面会对操作state,请仔细检查。
一个AI与机器人领域的土博,喜欢分享和探索。
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信