OCS2 入门教程(四)- 机器人示例

系列文章目录


前言

OCS2 包含多个机器人示例。我们在此简要讨论每个示例的主要特点。

System

State Dim.

Input Dim.

Constrained

Caching

Double Integrator

2

1

No

No

Cartpole

4

1

Yes

No

Ballbot

10

3

No

No

Quadrotor

12

4

No

No

Mobile Manipulator

6-13

6-13

Yes

Yes / No

Legged Robot

24

24

Yes

No

对于所有这些机器人示例,有两个独立的软件包:

  • ocs2_<robot>: 提供机器人专用 MPC 实现库。
  • ocs2_<robot>_ros: 用 ROS 封装 MPC 实现,以定义 ROS 节点。

 


一、Double Integrator

        双积分器示例是我们最简单的问题。它模拟了一个沿 x 方向移动的一维点质量。模型是线性的,成本函数是二次函数。目标点通过参考管理器模块设置为二次成本。

# Build the example
catkin build ocs2_double_integrator_ros
# Source workspace
# Do not forget to change <...> parts
source <directory_to_ws>/<catkin_ws_name>/devel/setup.bash

# Launch the example
roslaunch ocs2_double_integrator_ros double_integrator.launch

 

二、Cartpole 

        推车杆的例子是一个典型的控制问题,一根杆子通过一个无驱动的接头连接到一辆小车上。小车沿着无摩擦轨道移动。目标是在遵守输入限制的前提下,通过沿轨道加速或减速小车,使摆锤从右下方位置开始摆动起来并保持平衡。 

# Build the example
catkin build ocs2_cartpole_ros
# Source workspace
# Do not forget to change <...> parts
source <directory_to_ws>/<catkin_ws_name>/devel/setup.bash

# Launch the example
roslaunch ocs2_cartpole_ros cartpole.launch

 

三、Ballbot

        Ballbot 是一个 5DoF 系统。该平台是一个扭矩控制的全向机器人,通过三个全向轮在一个球上保持平衡。该系统具有非线性动力学特性,并表现出非最小相位行为。系统动力学以 Ballbot 的前向动力学为基础,通过自动微分计算流量图的线性近似值。任务目标是根据用户指令控制机器人的 XY 位置和偏航。 

# Build the example
catkin build ocs2_ballbot_ros
# Source workspace
# Do not forget to change <...> parts
source <directory_to_ws>/<catkin_ws_name>/devel/setup.bash

# Launch the example
roslaunch ocs2_ballbot_ros ballbot.launch

 

四、Quadrotor

        四旋翼机器人示例是一个 6DoF 系统。平台建模为浮动基座、刚体动力学、三维力矩和机器人法线方向的一维力控制。系统动力学及其导数均由代码生成。本示例旨在跟踪用户指令,该指令定义为四旋翼机器人的三维位置和偏航。 

# Build the example
catkin build ocs2_quadrotor_ros
# Source workspace
# Do not forget to change <...> parts
source <directory_to_ws>/<catkin_ws_name>/devel/setup.bash

# Launch the example
roslaunch ocs2_quadrotor_ros quadrotor.launch

 

五、Mobile Manipulator

        移动机械手示例是一个全运动学问题。模型包括一个 6DOF 机械臂和移动底座的 2D 位置和航向。控制输入为机械臂的 6 个关节速度以及底座的前进速度和旋转速度。任务目标是跟踪 6DoF 末端执行器姿势。关节位置和速度限制包含在最优控制问题的约束条件中。避免自碰撞是根据 URDF 模型中的碰撞体和避免碰撞约束来实现的(参见 ocs2_self_collision)。

注:本例实现了 MPC 的缓存和非缓存变体,可通过配置文件中的 usePreComputation 标志进行选择。

        系统模型通过解析 URDF 和任务文件确定。目前支持以下系统模型:

  • 默认(值:0): 通过解析 URDF 获得的默认系统模型。
  • 驱动假轮距(值:1): 在从 URDF 解析的模型中添加一个假 XY-Yaw 关节,该关节在整体动力学约束(速度控制)下被驱动。这是一个由 SE(2) 控制底座的移动机械手模型。
  • Unactuated 假浮动基座(值:2): 在从 URDF 解析出的模型中添加一个未驱动的 XYZ-RPY 假关节。
  • 激活的虚拟浮动基点(值:3): 为从 URDF 中解析出的模型添加一个完全致动(速度控制)的 XYZ-RPY 假关节。这是一个用 SE(3) 控制基座的移动机械手模型。

要玩转不同的模型类型,可以更改 task.info 文件中的模型信息。

 

# Build the example
catkin build ocs2_mobile_manipulator_ros
# Source workspace
# Do not forget to change <...> parts
source <directory_to_ws>/<catkin_ws_name>/devel/setup.bash

对于几种常见的机器人机械手,我们提供了使用 OCS2 运行它们的示例。这里提供了生成机器人模型文件(URDF)的步骤。

在其中一些示例中,我们通过 task.info 文件中的 model_information.removeJoints 属性固定了 URDF 中的某些关节(如抓手手指关节或车轮关节)。这样就可以简化所构建的 Pinocchio 模型。仅出于 rviz 可视化目的,task.info 文件中 removeJoints 属性下的关节将通过虚拟仿真节点发布在零关节位置。

警告

对于这些示例,可能需要对 MPC 进行额外调整才能在硬件上运行。此外,对于某些示例,需要将碰撞网格简化为原始形状(如圆柱和方框),以便避免碰撞。

我们欢迎社会各界为这些用例做出贡献。

5.1 Mabi-Mobile

roslaunch ocs2_mobile_manipulator_ros manipulator_mabi_mobile.launch

 

5.2 Kinova Jaco2 

# For 6-Dof
roslaunch ocs2_mobile_manipulator_ros manipulator_kinova_j2n6.launch
# For 7-Dof
roslaunch ocs2_mobile_manipulator_ros manipulator_kinova_j2n7.launch

5.3 Franka Panda 

roslaunch ocs2_mobile_manipulator_ros manipulator_franka.launch

 

5.4 Willow Garage PR2 

roslaunch ocs2_mobile_manipulator_ros manipulator_pr2.launch

 

5.5 Clearpath Ridgeback with UR-5

roslaunch ocs2_mobile_manipulator_ros manipulator_ridgeback_ur5.launch

 

六、Legged Robot  

        腿部机器人示例是一个开关系统问题。它采用 MPC 方法对四足机器人 Anymal 进行运动控制。机器人的步态由用户定义,并可在执行过程中通过解算器同步模块(步态接收器)进行修改。模式序列和目标轨迹通过参考管理器模块(SwitchedModelReferenceManager)进行定义。成本函数为二次罚则,用于跟踪指令的基座位置和偏航,并将机器人的重量平均分配到站立脚上。该问题有几个取决于模式的约束条件,例如摆动脚的力为零,站立脚的速度为零。在接触力上强制执行摩擦锥,为避免脚擦伤,摆动脚在 Z 方向上跟踪预定义的运动。

        系统动力学有两种建模方式,可从配置文件中选择:

  1.  单刚体动力学(SRBD): 该模型假定系统具有恒定惯性,与关节位置无关。
  2.  全中心动力学(FCD): 该模型使用中心动力学,包含机器人四肢的运动。与 SRBD 相似,它考虑了机器人的全运动学。
# Build the example
catkin build ocs2_legged_robot_ros
# Source workspace
# Do not forget to change <...> parts
source <directory_to_ws>/<catkin_ws_name>/devel/setup.bash

# Launch the example for DDP
roslaunch ocs2_legged_robot_ros legged_robot_ddp.launch
# OR launch the example for SQP
roslaunch ocs2_legged_robot_ros legged_robot_sqp.launch

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/298418.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虾皮一键铺货软件:如何使用一键铺货软件在Shopee平台上上架商品

在如今竞争激烈的电商市场中&#xff0c;卖家们都希望能够快速上架商品&#xff0c;以节省时间和精力&#xff0c;并提高销售效率。而在Shopee&#xff08;虾皮&#xff09;平台上&#xff0c;一键铺货软件成为了许多卖家的首选工具。这些软件不仅可以帮助卖家快速将商品批量上…

Python Asyncio网络编程方法全面解析与实战应用!

更多Python学习内容&#xff1a;ipengtao.com Python的asyncio库是一种强大的异步编程工具&#xff0c;它使得编写高效的网络应用程序变得更加容易。在本文中&#xff0c;我们将深入探讨使用asyncio进行网络编程的方法&#xff0c;包括异步IO、协程、事件循环等方面的内容&…

Android学习(一):Android Studio安装与配置

Android学习&#xff08;一&#xff09;&#xff1a;Android Studio安装与配置 一、安装 下载地址 下载zip文件&#xff0c;免安装。 二、下载资源 启动后&#xff0c;出现该弹框&#xff0c;点击Cancel。 点击Next 默认&#xff0c;点击Next。 点击Next。 点击Finish 开始…

Danil Pristupov Fork(强大而易用的Git客户端) for Mac/Windows

在当今软件开发领域&#xff0c;团队协作和版本控制是非常重要的方面。在这个过程中&#xff0c;Git成为了最受欢迎的版本控制工具之一。然而&#xff0c;对于Git的使用&#xff0c;一个好的客户端是至关重要的。 今天&#xff0c;我们要为大家介绍一款强大而易用的Git客户端—…

大模型迎来“AppStore时刻”,OpenAI给2024的新想象

一夜之间&#xff0c;OpenAI公布了多个重磅消息&#xff0c;引发市场关注。 钛媒体App 1月5日消息&#xff0c;今晨&#xff0c;OpenAI公司向所有GPT开发者们发布一封邮件称&#xff0c;下周将上线自定义的“GPT Store”商店&#xff0c;这有望推动ChatGPT开发者生态不断完善。…

完美版视频网站模板 – 苹果CMS v10大橙子vfed主题

源码下载&#xff1a; https://download.csdn.net/download/m0_66047725/88700504 这次提供的大橙子 vfed 模板 已经完美&#xff0c;只去除了授权验证和正版主题神秘后门&#xff0c;不影响任何功能体验性。主题优化&#xff1a;全站响应式自带主题设置面板自带联盟资源库大全…

Docker nginx容器代理播放m3u8视频文件(HLS)

文章目录 Docker Nginx容器代理播放M3U8文件教程获取Nginx Docker镜像设置Nginx配置文件用 ffmpeg 将 MP4 文件转换成 m3u8 文件运行Docker容器测试M3U8流其他问题我用vlc都能播放http://192.168.121.50/forest4kTest.m3u8和http://192.168.121.50/forest4kTest.mp4&#xff0c…

MediaPipeUnityPlugin(最新版)摇摆拳人脸识别

1、从https://github.com/homuler/MediaPipeUnityPlugin 下载Release Package 目前是MediaPipeUnity.0.12.0.unitypackage 2、导入Unity工程 3、打开Face Detection场景&#xff0c;做一些设置修改 1、打开Bootstrap&#xff0c;图像源改成Video&#xff0c;把Solution拖拽到…

蓝桥杯备赛系列 高精度 acwing版

前言 hello&#xff0c;好久不见。元旦玩过后该收心了&#xff0c;我也倒计时一下蓝桥杯考试时间&#xff0c;大家一起复习&#xff0c;一起登顶。今天讲解高精度算法。 这个算法其实是给学c同学讲的&#xff0c;因为python自带高精度所以不需要&#xff0c;且我讲到所有内容…

STM32_HAL Freertos按键控制LED

设置GPIO引脚 根据电路图&#xff0c;K0为用户按键&#xff0c;连接在PA0引脚&#xff0c;当K0按下时接地&#xff0c;引脚电平低电平。在CubeMX中设置PA0&#xff0c;将IO设置为输入&#xff0c;上拉&#xff08;上拉外部悬空时&#xff0c;引脚为高电平&#xff09;。 添…

物联网云平台源码,Spring Cloud智慧工地源码,建筑施工智能化管理

智慧工地以物联网云平台为核心&#xff0c;基于智慧工地物联网云平台与现场多个子系统的互联&#xff0c;实现现场各类工况数据采集&#xff0c;存储、分析与应用。通过接入智慧工地物联网云平台的多个子系统板块&#xff0c;根据现场管理实际需求灵活组合&#xff0c;实现一体…

Mac Parallels19.1.0 Install CentOS7.9

0、资源准备 # centos7.9镜像一份 链接: https://pan.baidu.com/s/1acIjUnsTGhk_2cYCZLSoGg?pwd6666 提取码: 6666 --来自百度网盘超级会员v7的分享1、打开PD 2、选择镜像进行安装 指定镜像名称 创建 进行密码设置 安装目的地点开后直接点击完成 网络和主机名称 开…

cad快速看图软件免费版(手机在线cad快速看图)

cad快速看图软件免费版(手机在线cad快速看图) 很多机械设计师日常工作过程中涉及到多种格式的cad图纸&#xff0c;cad图纸大多都需要cad设计软件才能打开&#xff0c;然而很多小伙伴并没有下载相应的cad设计软件&#xff0c;这种情况下如何进行cad快速看图呢&#xff1f; 今天…

【开源项目】WPF 扩展组件 -- Com.Gitusme.Net.Extensiones.Wpf

一、项目简介 Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发&#xff0c;当前最新 1.0.1 版本。包含 核心扩展库&#xff08;Com.Gitusme.Net.Extensiones.Core&#xff09;、视频渲染&#xff08;Com.Gitusme.Media.Video&#xff09;、串口…

刚学C/C++,使用的是CLion,想要在同一个项目里面运行多个相互独立脚本?

前言&#xff1a; 正常来说&#xff0c;一般一个项目只会有一个程序入口点。C和C程序的入口点是main函数。在一个项目中&#xff0c;只能有一个main函数&#xff0c;否则编译器会不知道从哪个main函数开始执行。 但是&#xff0c;作为初学者&#xff0c;我就是想用CLio…

Redis(Nosql数据库)

目录 一.SQL 与 NoSQL 的区别&#xff1f; 二.Redis Redis 为什么那么快&#xff1f; 三.Redis的安装 安装redis&#xff1a; 创建redis工作目录&#xff1a; 修改redis配置文件&#xff1a; redis-cli 命令行工具&#xff1a; redis-benchmark 测试工具&#xff1a; …

插槽slot涉及到的样式污染问题

1. 前言 本次我们主要结合一些案例研究一下vue的插槽中样式污染问题。在这篇文章中&#xff0c;我们主要关注以下两点: 父组件的样式是否会影响子组件的样式&#xff1f;子组件的样式是否会影响父组件定义的插槽部分的样式&#xff1f; 2. 准备代码 2.1 父组件代码 <te…

Linux驱动开发(1)-最简单的字符设备驱动开发例子

1.简介 字符设备驱动&#xff1a;按照字节流进行读写操作的设备&#xff0c;例如点灯、按键、IIC、SPI、LCD。 Linux系统中一切皆文件&#xff0c;驱动加载成功&#xff0c;就会在/dev目录生成文件&#xff0c;对文件操作&#xff0c;则可实现对硬件操作。应用程序运行在用户…

Vue新手村(一)

目录 1、Vue简介——Vue的特点 2、Vue的第一个页面 3.Vue的简单使用介绍 3.1、{{ }}的使用 3.2、v-text和v-html 3.2.1、v-text和{{ }}的区别 3.2.2、v-html和v-text的区别 3.3、v-on【事件绑定】 3.3.1、绑定事件的语法 3.3.2、语法简化 3.3.3、传参 3.4、v-show和…

excel统计分析——两因素有重复方差分析

参考资料&#xff1a;生物统计学 无重复观测值的两因素方差分析只能研究两个因素的主效应&#xff0c;不能考察因素间的交互作用&#xff0c;只有在确定因素间不存在交互作用时才能进行无重复观测值的试验和分析。为了准确估计因素的主效应、交互作用和随机误差&#xff0c;每个…