本篇继续介绍动力学库当中的一些函数及其数学运算 11、translationFromSXform 从空间变换矩阵提取位移向量,形式如下: 变换矩阵: 因此有: 【168-175】源码: auto translationFromSXform(const Eigen::MatrixBase<T>& X) { static_assert(T::C
1、关节类型 【19行】定义关节类型 enum class JointType { Prismatic, Revolute, FloatingBase, Nothing }; enum class JointType { Prismatic, Revolute, FloatingBase, Nothing }; enum class JointType { Pris
概述 本篇介绍如何利用pybullet仿真环境,对四足机器人单腿实现简单控制,实现机器人足端按照我们要求的轨迹,从一个随机点移动到另外一个随机点,具体效果如以下视频 pybullet仿真:随机落足点+足端轨迹规划 一、控制原理 1、随机落足点生成 一般来说,机器人控制中的位置信息由一个坐标点来决定,即[x y z]。我们可以利用python的随机函数生成指定范围内的数值,来模拟足端在现实
一、介绍 本篇主要介绍四足机器人腿部结构设计,以及在webots仿真环境中的简单控制。 目前主流的腿部结构有曲柄滑块(spot),曲柄摇杆(宇数科技的),电机直驱(anymal),其余的还有液压驱动等就不展开介绍了。下面简单介绍一下不同方案的优缺点。 在这么多种驱动方案中,电机直驱在控制上可以说是最为直接的,因为不需要额外计算传动比,但是也带来一个弊端,关节的最大
1、WBC控制概述 WBC控制器有多种类型,但为了方便起见,我们将其分类如下: 1)基于二次规划(QP)的无任务层次结构的WBC控制, 2)基于零空间投影的WBC 3)分层二次规划(HQP)的WBC 4)集成二次规划和零空间投影方法的WBC 一种常用的WBC实现方法是构造二次规划问题来找到满足等式和不等式约束的反作用力和扭矩命令
接触检测 步态规划器给出的接触序列是严格按照时间进行周期性计算的。而在实际运行当中,由于地形的不平整,又或者存在坡度等情况,腿部会发生提前或者延迟接触等情况,因此只靠步态规划器给出的接触序列来控制机器人往往是不可靠的。因此这里提出一个基于卡尔曼滤波的概率接触检测。其综合考虑了步态规划其给出的恒定接触序列,足端高度,地形的不平整性,以及通过关节编码器数据所计算出来的关节力矩,来提高接触检测的精度,
步态规划 四足机器人控制当中,步态是至关重要的一项。我们可以简单理解成四足机器人运动过程中各腿的状态,在这套设计方案中,我们对步态的规划主要分成两大主要部分,即接触状态和周期函数。而步态规划的目的,就是创建一个关于的足端接触状态的周期函数。 1、接触状态 四足机器人行进过程中,根据足端与地面是否发生接触,我们可以规定各条腿的两种接触状态,即接触(contact)与摆动(s
一、kitti数据集介绍 该数据集的记录平台是大众帕萨特 B6,它已经用踏板(加速和刹车)和方向盘的执行器进行了修改。使用配备 RAID 系统、运行 Ubuntu Linux 和实时数据库的八核 i7 计算机记录数据。传感器配置如下: 1个惯性导航系统(GPS/IMU):OXTS RT 3003 1个3D激光雷达:Velodyne HDL-64E 2 个灰度摄像头,1.4 百万像素:Po
一、介绍 LVI-SAM是一种基于3D激光雷达的slam算法(效果如下图),他结合了 LIO-SAM 和 Vins-Mono两者的优势,同前者一样是开源的,有条件的小伙伴可以去github查看源码 二、依赖 在编译该功能包之前,我们需要先安装相关依赖功能 1、ROS 他是一个基于ROS的功能包,因此我们首先需要配置好ros,并且官方在kinetic (ubuntu16.04)和 melodic(
之前的gazebo教程某种程度上讲是为了四足机器人做准备的,这节我们就讲解如何在gazebo搭建一个属于自己的四足机器人 文章目录 1、打开gazebo 2、导入网格文件 1、主体与腿部连接件 2、上腿部 下腿 先来看高清大图,这是我参照mini-cheetah画出来的简图,结构尺寸基本按照其原本大小设计,本次搭建就基于此模型。 1、打开gazebo 命令行输入 gazebo
本教程介绍了如何通过编辑SDF文件来制作简单的两杆式夹持器。 想要以图形化界面的方式编辑模型,请参见“ 模型编辑器” 教程。 文章目录 一、编写世界文件 1、为.world文件创建一个目录 2、创建一个世界文件 二、 编写模型文件 1、创建模型保存目录 2、创建一个model.config文件: 2、创建一个 `simple_gripper.sdf` 文件 一、
前言 在四足机器人的研究中,有一个很关键的问题,就是如何减少足端在触地瞬间的冲击,避免把机器人把自己给蹬倒了?这时候就需要一个合理的足端轨迹规划。本篇将会介绍几种足端轨迹。 本文将对四足机器人的足端轨迹进行规划。将数学中的复合摆线和多项式曲线引入到足端轨迹的规划中,根据零冲击原则[2],规划出 3 条满足要求的足端轨迹,包括: 复合摆线轨迹 八次多项式轨迹 分段五次多项式轨迹
一、MPC的力学原理 刚体的力与加速度,转矩与角加速度可以通过牛顿方程和欧拉方程求出: 1、牛顿公式: 基本公式: 展开形式(n c为与地面接触点的数量): 将质量移至右边,可求得加速度: &
前言 现在我们开始解决与编程机器人控制器有关的主题。我们将设计一个简单的控制器,避免前面教程中创建的障碍(箱子)。 本教程将向您介绍Webots中机器人编程的基础。在本章的最后,您应该了解场景树节点和控制器API之间的链接是什么,如何初始化和清理机器人控制器,如何初始化机器人设备,如何获取传感器值,如何命令执行器,以及如何
介绍 现在,我们将编程一个简单的控制器,该控制器将使机器人向前移动。 控制器是一个程序,限定了机器人的行为。Webots控制器可以用以下编程语言编写:C,C ++,Java,Python,MATLAB,ROS等。C,C ++和Java控制器必须先进行编译,然后才能作为机器人控制器运行。Python和MATLAB控制器是解释
一、创建一个新的World 一个World是包含像对象是一个信息的文件,比如他们的样式,它们如何相互约束,天空是怎样的,重力是多少,摩擦力,物体的质量等。不同的对象称为“ 节点”,并在“ 场景树”中进行分层组织。因此,一个节点可能包含子节点。World存储在具有.wbt扩展名的文件中。文件格式源自VRML97语言,并且易于阅读。世界文件必须直接存储在名为的目录中worlds。
一、引入 假设有6个函数,每个函数有6个独立的变量,即: y1=f1(x1,x2,x3,x4,x5,x6) y2=f2(x1,x2,x3,x4,x5,x6) ⋮ y6=f6(x1,x2,x3,x4,x5,x6) 我们用矢量形式表达上式,即: Y=F(X)  
时间:2020年4月9日 对之前内容做补充,加入支撑相轨迹规划,并构造完整的的周期曲线 在四足机器人的研究中,有一个很关键的问题,就是如何减少足端在触地瞬间的冲击,避免把机器人把自己给蹬倒了?这时候就需要一个合理的足端轨迹规划。本篇将会介绍几种足端轨迹。 本文将对四足机器人的足端轨迹进行规划。将数学中的复合摆线和多项式曲线引入到足端轨迹的规划中,根
根据零力矩点理论分析机器人行进过程的稳定条件,利用稳定裕度的概念,在支撑多边形中求取最优稳定点来规划零力矩点.可以为避免 walk步态中频繁调整躯干姿态导致的能耗和行进速度损失[1] 此外,“零力矩点”是判定仿人机器人动态稳定运动的重要指标,ZMP落在四足机器人支撑多边形的范围里面,则机器人可以稳定的行走。 前言 以下内容均为论文《
一、平面运动学建模 本篇将会对四足机器人的腿部进行数学建模,求解器正逆运动学解,包含详细公式推导与计算 不考虑横向髋关节运动时,四足机器人的腿部可以简化成二连杆机构 1、几何建模 我们将位置点P摆到第一象限,以便符合我们的直觉: 2、运动学正解 如果已知θ1,θ2,可以通过下式求P[x,
从正上方观看我们的四足机器人时,可以简化成以下几何图形,接下来我们就根据该模型来分析四足机器人的偏航调节 一、几何模型 以右前腿为例 我们设定符号: 机身宽度W , 机身长度L 偏航角Y 二、坐标变换 假设A点为初始状态足端位置[ x , y , z ] T,B
从正面观看我们的四足机器人时,可以简化成以下几何图形,接下来我们就根据该模型来分析四足机器人的滚转角调节 一、几何模型 我们设定符号: 机身宽度W , 髋关节偏移a , 滚转角R 腿长L1,L2 L12为髋关节点PH到足端PE的距离,是个变量
本篇将会三维空间中,对四足机器人的腿部进行数学建模,求解器正逆运动学解,包含详细公式推导与计算 首先,我们来看三维空间中简图: 其中a表示髋关节距离主体得偏移,L1,L2共面,与a保持垂直关系,[x,y,z]表示足端相对于髋关节的位置,为了更容易大家理解,我们将视角转换到不同的视图当中去计算几何关系。 一
本篇将会对四足机器人的俯仰角进行数学建模,求解器正逆运动学解,包含详细公式推导与计算 一、数学建模 1、几何模型 假设俯仰角为λ,对于坐标系A足端位置PA[x,y],我们求出其在B坐标系下的位置PB=[x′,y′],然后通过逆运动学求解关节角度θ1,θ2即可。假定机器人半身长为L,腿长分别为L1, L
本篇将会对四足机器人的腿部进行数学建模,求解器正逆运动学解,包含详细公式推导与计算 一、运动学 不考虑横向髋关节运动时,四足机器人的腿部可以简化成二连杆机构 1、几何建模 我们将位置点P摆到第一象限,以便符合我们的直觉: 2、运动学正解 如果已知θ1,θ
文章目录 一、结构参数 二、腿部运动空间 随着人类环境中对机器人交互的需求不断增长,动态四足机器人的发展正成为人们越来越感兴趣的话题,但是它们需要自适应的控制方案来应对穿越现实世界地形时遇到的挑战。 在这项研究中,我们探索了对四足系统的物理和控制方法的改进,以实现快速,稳定的步行和小跑步态。该分析包括对身体
本篇将讲解MiniCheetah中所使用的的足端轨迹方程-贝塞尔曲线方程 一、贝塞尔曲线 贝塞尔曲线就是这样的一条曲线,它是依据四个位置任意的点坐标绘制出的一条光滑曲线。 在历史上,研究贝塞尔曲线的人最初是按照已知曲线参数方程来确定四个点的思路设计出这种矢量曲线绘制法。贝塞尔曲线的有趣之处更在于它的“
文章目录 介绍 minitaur urdf解析 base_chassis_link chassis right motor upper_leg lower_leg 注意 介绍 URDF全称为Unified Robot Description Format,中文可以翻译
一、复合摆线轨迹 在四足机器人的研究中,有一个很关键的问题,就是如何减少足端在触地瞬间的冲击,避免把机器人把自己给蹬倒了?这时候就需要一个合理的足端轨迹规划。本篇将会介绍几种足端轨迹。 本文将对四足机器人的足端轨迹进行规划。将数学中的复合摆线和多项式曲线引入到足端轨迹的规划中,根据零冲击原则[2],规划出 3 条满足要求的足端轨迹,包括: &n
文章目录 1、现实差 2、 提高仿真度 前提 2.1、执行器模型 2.2、 延迟 3、 建立鲁棒控制器 3.1、随机动态参数 3.2、随机扰动 3.3、状态空间 1、现实差 因为并不存在能够完美捕捉现实的模拟器(环境),模拟与现实之间存在「现实差距」(Reality Gap),模型的输入分布在策略训练(模拟)和策略执行(现实)之间存在动态变化和差异性。如果继续在
文章目录 模型概要 1、状态、决策空间(略) 2、奖励函数 3、决策模型 模型概要 1、状态、决策空间(略) 状态空间:roll(X轴)、pitch(Y轴),以及沿这两个轴的角速度。 注意,状态空间中并没有使用所有可用的传感器测量值。例如,IMU还提供了基体的偏移(即x,y方向的偏移),有些imu还会提供加速度,这些我们都不考虑。我们排除这些值,是因为imu的数
一、minitaur 简介 这是来自宾夕法尼亚大学的一款机器人,叫 Minitaur,看图你就明白了。 四足机器人的运动控制通常需要大量的专业知识,以及突如其来的灵感(调参)。在之前的文章中,我们就用了很大的一个篇幅来讲控制信号的生成以及调节(详情请参考开头给出的两篇文章),然而这只是产生四足机器人能够完成周期性运动的控制
一、minitaur 简介 这是来自宾夕法尼亚大学的一款机器人,叫 Minitaur,看图你就明白了。 四足机器人的运动控制通常需要大量的专业知识,以及突如其来的灵感(调参)。在之前的文章中,我们就用了很大的一个篇幅来讲控制信号的生成以及调节(详情请参考开头给出的两篇文章),然而这只是产生四足机器人能够完成周期性运动的控制信号而已,还有转向控制,各种信号反馈调
不考虑横向运动时,我们可以把四足机器人的腿部简单看成一个二连杆结构,这节我们就来讲解如何调整离地高度的问题 一、几何模型 我们可以把机器人的一条腿简化成以下形状,由两根连杆组成,α 为髋关节角度,β为膝关节角度。 二、几何逆解 我们假定足端与髋关节原点保持竖直关系,根据几何关系,已知
本篇将会创建几个基本的仿真环境,包含了一些必要的功能函数,实现动态调整离地高度。能够与决策模型进行交互,为后续强化学习训练做准备 文章目录 一、框架 1、`__init__` 2、`reset` 3、`step` 4、`reset_pos` 5、执行
文章目录 一、PPO主体 1、主结构 2、初始化部分 3、训练部分 二、环境交互 1、 交互部分主结构 2、初始化部分 3、调用 4、计算adv 5、检验函数 三、 run_ppo 一、PPO主体 1、
文章目录 一、算法简介 1、关键点 1.1 损失函数的设计 1.2 优势函数设计 2、算法流程 3、代码结构 二、决策模型(policies) 1、确定性决策 2、随机决策 2.1 分类决策 2.1.1 创建模型
获取RRbot模型 1、获取RRbot模型 2、在rviz中查看模型 3、查看urdf文件 4、在gazebo中查看模型 接下来的教程可能都离不开这个模型,因此我把他单独作为一篇文章放出来,接下来的gazebo教程会与ros相结合。 1、获取RRbot模型
场景建模 一、介绍 1、打开场景编辑器 UI介绍 二、导入平面图 三、添加特征 墙壁 添加门窗 添加楼梯 添加层 编辑建筑物 变更层数 编辑墙体 编辑门窗
连接ros 添加ROS插件 在ROS中控制Velodyne 在之前的文章中,我们构建的Velodyne传感器已经具有完整的功能,但这仅局限与仿真而已,与真实的机器人系统很难产生实际联系。因此,我们需要将gazebo与ros连接在一起,这样做的好处之一是,可以轻松地在真实世界和模拟世界之间进行切换,也就是说,你在仿真环境中实现的功能,在某些现实情况下
插件配置 一、准备工作 二、创建一个API 三、测试消息传递API 1、val.cc 编辑cmake文件 我们已经对转速进行了硬编码,但是每次修改参数就需要重新编译,不能实现动态地调节插件。因此,在本节中,我们将修改插件以读取自定义SDF参数,该参数是Velodyne的目标速度。
文章目录 传感器噪音 Step1 可视化传感器数据 Step2 添加噪声 一、介绍 1、插件概述 2、安装依赖 二、编写插件 步骤1:创建工作区 步骤2:创建插件源文件 步骤3:创建CMake构建脚本 步骤4:将插件连接到Velodyne传感器 步骤5:构建和测试
文章目录 一、介绍 二、准备网格模型 三、将网格模型添加到sdf文件中 一、介绍 具有纹理和3D网格的模型可以改善您的视觉体验,更重要的是可以改善环境的真实感。将这些信息提供给视觉处理算法的模拟,摄像机也将从实际模型中受益。 在本节中,我们将使用Velodyne网站上提供的3D网格来改善模型的视
文章目录 Step 1 建立基本的sdf模型 1、创建新的.world文件 2、添加地面和光线 3、添加基础部件 Step2 添加惯性 1、查看当前的惯性值。 2、添加惯性信息 Step3 添加关节(joint) 1、定义关节 2、检验效果 Step4 添加传感器
创建模型 本节目标 一、模型编辑器用户界面 调色板(左面板) 工具列 局限性 二、车辆构造 1、创建车辆 (1)、底盘 (2)前轮 (3)脚轮 2、添加传感器 3、添加插件 保存模型 本节目标
gazebo 一、什么是Gazebo? Gazebo的典型用途 Gazebo的一些主要特点 二、系统要求 三、安装 1.添加源 2.安装Gazebo 四、用户界面 1、场景 2、左右面板 3、工具栏 4、菜单栏 5、鼠标 一
在本教程中,我们将通过模拟控制器来驱动机器人的关节。这将使我们能够为MoveIt等规划器提供正确的ROS接口!。我们将使用ros_control软件包。 与ros通讯 一、介绍 1、ros_control 2、ros_controllers 二、准备工作 1、在urdf中添加``元素 2、添加gazebo_ros_con
文章目录 一、准备工作 1、pybullet 2、mini cheetah 的模型 3、urdf文件解析 一、准备工作 1、pybullet 我们的仿真环境基于pybullet,因此需要先安装好pybullet,有关pybullet的介绍以及安装在这篇文章中有介
不考虑横向运动时,我们可以把四足机器人的腿部简单看成一个二连杆结构,这节我们就来讲解如何调整离地高度的问题 一、几何模型 我们可以把机器人的一条腿简化成以下形状,由两根连杆组成,α 为髋关节角度,β 为膝关节角度。 二、几何逆解 我们假定足端与髋关节原点保持竖直关系,根据几何关系,已
本文将会讨论策略优化的数学基础,并且会附上简单的实践代码。三个要点 一个简单的等式,将策略梯度跟策略模型参数连接起来 一条规则,允许我们将无用的项从等式里去掉 另一条规则,允许我们在等式中添加有用的项 推导最简单的策略梯度 其中称为策略梯度,利用策略梯度来优化策略模型这种方法叫做策略梯度算法,例如VPG、TRPO。PPO
一、什么是knn算法 本章着重对算法部分进行讲解,原理部分不过多叙述,有兴趣的小伙伴可以自行查阅其他文献/文章 (一)、介绍 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
数据集介绍 使用Fashion MNIST数据集,其中包含10个类别的70,000个灰度图像。图像显示了低分辨率(28 x 28像素)的单个衣物,如下所示(图片来自tensorflow官方文档): 图像是28x28 NumPy数组,像素值范围是0到255。标签是整数数组,范围是0到9。这些对应于图像表示的衣服类别:
一、什么是神经网络 神经网络是一种以人脑为模型的机器学习,简单地说就是创造一个人工神经网络,通过一种算法允许计算机通过合并新的数据来学习。 以人脑中的神经网络为启发,历史上出现过很多不同版本最著名的算法是1980年的 backpropagation 1、多层向前神经网络(Multilayer Feed-Forward Neural Network) &
一、什么是svm 支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解最大边距超平面(maximum-margin hyperplane) 。 1、支持向
一、什么是决策树 本章着重对算法部分进行讲解,原理部分不过多叙述,有兴趣的小伙伴可以自行查阅其他文献/文章 决策树(decision tree)是一种基本的分类与回归方法。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。 其主要优点是
y(0) = 0, y_dot(0) =0, y_ddot(0) = 0 一眼就能看出ghi为0,不需要列方程求解,如果有需要自行补上即可
不好意思现在才看到,联系方式给一下
古月居优秀创作者
积分
粉丝
勋章
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信