ethz(苏黎世联邦理工学院)机器人系统实验室开源库

本文主要是介绍ethz(苏黎世联邦理工学院)机器人系统实验室开源库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、开源库
    • 1.1 OCS2 - Optimal Control for Switched Systems
    • 1.2 RSLGym - 强化学习框架
    • 1.3 ELMO Ethercat SDK
    • 1.4 Kindr - 机器人运动学和动力学
    • 1.5 Grid Map - 用于移动机器人制图的通用网格地图库
    • 1.7 Elevation Mapping - 用于崎岖地形导航的以机器人为中心的高程测绘
    • 1.8 Free Gait - 足式机器人多功能控制架构
    • 1.9 Legged State Estimator (LSE) 库
    • 1.10 TOWR – Trajectory Optimizer for Walking Robots
    • 1.11 XPP – Visualization of Legged Robot Motions in RVIZ
    • 1.12 IFOPT - 基于 Eigen 的 IPOPT 和 SNOPT 接口
    • 1.13 Analytical Kinematics & Dynamics MATLAB Tool - 分析运动学与动力学 MATLAB 工具
    • 1.14 Gait Creation MATLAB Tool - 步态创建 MATLAB 工具
    • 1.15 Locomotion Control Library - 运动控制库
    • 1.16 Point Cloud IO
  • 二、开源数据集
    • 2.1 STINK Dataset
    • 2.2 Palpate Dataset


前言

RSL 机器人系统实验室提供大量开源软件包,为机器人社区提供支持。请查看github。


一、开源库

1.1 OCS2 - Optimal Control for Switched Systems

OCS2 是专为切换系统优化控制(OCS2)定制的 C++ 工具箱。该工具箱可高效实现以下算法

  • SLQ: Continuous-​time domin DDP
  • iLQR: Discrete-​time domain DDP
  • SQP: Multiple-​shooting algorithm based on HPIPM
  • PISOC: Path integral stochatic optimal control

OCS2 入门和教程,或观看 YouTube 上的教程。

网址:https://github.com/leggedrobotics/ocs2

部分翻译:

英文中文
Multiple-​shooting algorithm多重打靶法
DDP微分动态规划
HPIPMQP 求解器
Path integral stochatic optimal control路径积分随机最优控制

1.2 RSLGym - 强化学习框架

这是一个用于训练强化学习(RL)代理的框架。它将 C++ 中的并行化经验生成与 Python 中的 RL 算法相结合,以提高效率。文档可在外部页面找到。

网址:https://github.com/leggedrobotics/RSLGym

1.3 ELMO Ethercat SDK

这是一个 C++ 库,为通过 EtherCAT(使用 CANopen over EtherCAT CoE 协议)控制 Elmo 和 Gold line 系列电机控制器提供了一个高级接口。

底层 EtherCAT 通信由 soem_interface 库处理。

网址:https://github.com/leggedrobotics/elmo_ethercat_sdk

1.4 Kindr - 机器人运动学和动力学

为机器人技术提供运动学和动态量的 C++ 库。该库的优势在于实现了各种旋转参数化(parameterizations of rotations)。

网址:http://github.com/ethz-asl/kindr

1.5 Grid Map - 用于移动机器人制图的通用网格地图库

这是一个具有 ROS 接口的 C++ 库,用于管理具有多个数据层的二维网格地图。它专为移动机器人测绘而设计,用于存储高程、方差、颜色、摩擦系数、立足点质量、表面法线、可穿越性等数据。它被用于为崎岖地形导航而设计的以机器人为中心的 Robot-​Centric Elevation Mapping (高程制图)软件包中。

网址:https://github.com/ethz-asl/grid_map

1.7 Elevation Mapping - 用于崎岖地形导航的以机器人为中心的高程测绘

这是一个 ROS 软件包,用于使用移动机器人进行高程测绘。该软件专为机器人的(本地)导航任务而设计,机器人配有姿态估计(如 IMU 和里程计)和距离传感器(如 kinect、激光测距传感器、立体摄像机)。所提供的高程图仅限于机器人周围,反映的是通过机器人运动汇总的姿势不确定性(以机器人为中心的映射)。开发这种方法是为了明确处理机器人姿态估计的漂移。

网址:https://github.com/ethz-asl/elevation_mapping

1.8 Free Gait - 足式机器人多功能控制架构

自由步态(Free Gait)是一个软件框架(全身抽象层),用于对足式机器人进行多功能控制。通过其界面,可定义任务空间(task space)中的静态和动态动作。在执行过程中,Free Gait 即使在滑动(slip)和外部干扰(external disturbances)的情况下也能稳健地跟踪所需的运动。该框架的应用包括直观的机器人远程操作(intuitive tele-​operation of the robot)、高效的行为脚本(efficient scripting of behaviors)以及运动和脚步规划界面(interface for motion and footstep planners)。

网址:https://github.com/leggedrobotics/free_gait

1.9 Legged State Estimator (LSE) 库

Legged State Estimator(LSE)库为足式系统提供了可观测性约束扩展卡尔曼滤波器,并提供了在不同传感器模式之间进行时延校准的例程。

网址:https://github.com/ethz-asl/two_state_information_filter

1.10 TOWR – Trajectory Optimizer for Walking Robots

集成了 ROS 的 C++ 库通过求解优化问题为腿部机器人生成物理上可行的运动。求解器将动力学中心模型、物理约束条件以及所需的目标位置提供给求解器,然后生成运动计划。TOWR 可在 100 毫秒内生成 5 步单足跳、双足行走或完整的四足小跑循环,同时对步态和步长进行优化(视频)。

网址:https://github.com/ethz-adrl/towr

1.11 XPP – Visualization of Legged Robot Motions in RVIZ

Xpp 是一组 ROS 软件包,用于浮动基座机器人运动计划的可视化。除了在 RVIZ 中绘制支撑区域、接触力和运动轨迹外,它还为特定机器人显示这些计划。当前的机器人包括单腿、双腿跳板、HyQ 和四旋翼机器人;sudo apt-​get install ros-​kinetic-xpp

网址:http://wiki.ros.org/xpp

1.12 IFOPT - 基于 Eigen 的 IPOPT 和 SNOPT 接口

一个轻量级(1 千行代码)基于 C++ 和 Eigen 的界面,用于使用 Ipopt 和 Snopt 等非线性编程求解器。用户可通过一组 C++ 类来定义与求解器无关的优化问题,然后使用任一求解器来求解该问题。只需将该软件包放入您的 catkin 工作区即可(示例)。

网址:https://github.com/ethz-adrl/ifopt

1.13 Analytical Kinematics & Dynamics MATLAB Tool - 分析运动学与动力学 MATLAB 工具

proNEu 工具使用 MATLAB 符号数学工具箱,根据投影牛顿-欧拉方法推导出分析全局运动学和运动方程。
几个示例重点说明了如何使用该工具。用户先选择广义坐标、执行器和链接参数,然后建立整个系统的非常简单的运动学树。全局运动学和运动方程以符号方式推导出来,用户可以直观地检查机器人的配置。示例中概述了用户如何手动获取可在任何仿真环境中使用或嵌入的函数文件、编译的 mex 函数或 c 代码。

网址:https://bitbucket.org/leggedrobotics/c_proneu

1.14 Gait Creation MATLAB Tool - 步态创建 MATLAB 工具

用 MATLAB R2010a 进行建模、模拟、步态创建和步态分析的工具、方法和示例。为 MATLAB R2010a 提供建模、仿真、步态创建和步态分析的工具、方法和示例。
该框架包含模拟被动和主动混合动力系统的方法。提供了模拟记录和可视化功能,并提供了三个不同的行走和跑步机器人模型作为示例和进一步研究的起点。步态创建(即寻找周期性解决方案)和优化是通过单次射击和直接搭配算法实现的,还提供了主动和被动系统稳定性分析功能。所有概念和函数都将通过所提供的示例进行介绍。拉格朗日力学使用符号数学工具箱推导,数值优化/根搜索使用优化工具箱的 fsolve 和 fmincon 例程执行。

网址:https://bitbucket.org/leggedrobotics/c_gaitcreation

1.15 Locomotion Control Library - 运动控制库

适用于四足机器人的 C++ 运动控制库。

网址:https://github.com/ethz-asl/loco

1.16 Point Cloud IO

从文件(如 ply、vtk)读写点云的 ROS 节点。

网址:https://github.com/ethz-asl/point_cloud_io

二、开源数据集

2.1 STINK Dataset

苏黎世下水道地形检测数据集(STINK)是由有脚机器人 ANYmal 在苏黎世下水道中采集的,用于评估混凝土的老化状况。机器人脚部安装了传感器,通过 "抓挠 "动作对地面进行检测。记录并评估了 18 个传感器信号(2 个 IMU 和力/扭矩传感器)。混凝土的状况从良好到一般不等,没有遇到严重或极差的结构性故障。我们总共在下水道的不同部位采集了 355 个样本(良好:119 个样本,满意:79 个样本,一般:157 个样本),并与提供地面实况的专业下水道检查员一起对这些样本进行了分类。该数据集包含一个 Matlab 脚本,用于训练支持向量机进行分类。该数据集与以下出版物相关联 (https://doi.org/10.3929/ethz-b-000351221)。

数据 08.04.2019, 作者: Hendrik Kolvenbach, 下载

2.2 Palpate Dataset

行星土壤撞击数据集(PALPATE)是一个记录的数据集,用于展示机器学习方法在对细粒度土壤上复杂的土脚相互作用进行分类时的适用性。该数据集包括 2600 次脚-土壤撞击,由专门设计的试验台自动执行和记录。撞击是在 ES-1、ES-2、ES-3 等各种火星土壤模拟物上进行的。数据集包括由两个不同的脚和试验台上的传感器获取的传感器信号。此外,还包括一个由四足机器人 ANYmal 创建的 240 次撞击的小型数据集。该数据集链接到以下出版物 (https://doi.org/10.1109/LRA.2019.2896732)。

数据 04.12.2018, 作者: 亨德里克-科尔文巴赫, 下载

这篇关于ethz(苏黎世联邦理工学院)机器人系统实验室开源库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445093

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻