当前位置: 首页 > news >正文

实时最优控制(Real-Time Optimal Control)工具

系列文章目录


前言

许多现代控制方法,如模型预测控制(model-predictive control),在很大程度上依赖于实时解决优化问题。特别是,高效解决优化控制问题的能力使复杂机器人系统在实现高动态行为(highly dynamic behaviors)方面取得了许多最新突破。以实时性能(real-time performance)解决这些优化问题的能力极具挑战性,目前是机器人学(robotics)、航空航天(aerospace)、运筹学(operations research)、金融学(finance)等众多学科中一个非常活跃的研究领域。为了让那些可能不具备非线性优化(nonlinear optimization)、动力学(dynamics)或控制(control)方面必要背景的从业人员更容易使用这些功能强大的方法,机器人社区开发了几款开源软件包,专门用于设置和解决最优控制问题。本教程式研讨会面向广大听众,旨在让社区了解这些软件包的优点,并重点介绍现代最优控制技术最近取得的成功。


一、求解器

1.1 TrajectoryOptimization.jl

卡内基梅隆大学机器人探索实验室用 Julia 编程语言开发了一套工具,用于设置和解决轨迹优化(trajectory optimization)问题。他们的核心求解器 ALTRO 使用迭代 LQR (iLQR) 和增强拉格朗日法 (augmented Lagrangian method,ALM) 来处理一般路径约束,并结合主动集方法(active-set method)来完善解决方案。尽管 ALTRO 是用高级编程语言编写的,但它在凸规划(convex programs)、二阶锥规划(second-order cone programs)和一般非线性轨迹优化(general nonlinear trajectory optimization)问题上的表现令人印象深刻。它能原生处理三维旋转,在李代数(Lie algebra)上执行优化,并使用单位四元数(unit quaternions)作为全局参数化(global parameterization)。

1.2 OCS2

OCS2 是专为切换系统(Switched Systems)优化控制(Optimal Control of Switched Systems,OCS2)定制的 C++ 工具箱。该工具箱提供了连续时间域(称为 SLQ)和离散时间域(称为 iLQR)中微分动态规划(Differential Dynamic Programming,DDP)算法的高效实现。OCS2 通过增强拉格朗日法(augmented Lagrangian)和松弛障碍法处理一般路径约束。为便于在机器人任务(robotic tasks)中应用 OCS2,它为用户提供了额外的工具,以便根据 URDF 模型设置系统动力学(如运动学或动力学模型)和成本/约束(如避免自碰撞(self-collision avoidance)和末端执行器跟踪(end-effector tracking))。该库还提供了一个自动微分(automatic differentiation)工具,用于计算系统动力学(dynamics)、约束(constraints)和成本(cost)的导数。该工具箱的实现高效且数值稳定(numerically stable),加上其用户友好的界面,为在机载计算能力有限的众多机器人应用中以 MPC 方式部署该工具箱铺平了道路。

1.3 Crocoddyl

Crocoddyl 是一种优化控制求解器,用于机械臂(manipulator)和足式机器人(legged robots)的全身模型预测控制(whole-body model predictive control)。它从一开始就建立在前端(成本和约束图(graph of cost and constraints)、积分器(integration)、函数及其导数的评估)和后端(数值约束求解器(numerical constrained solver))的分离之上。在提供通用接口的同时,前端主要基于刚体动力学库 Pinocchio,该库使 Crocoddyl 能够非常高效地评估成本、动力学及其导数,并提供代码生成整个计算的可能性。对于足式机器人,接触约束条件可直接在机器人动力学内部处理,并采用独创算法求解,从而实现稳健高效的评估。评估图的构建遵循 "先离散,后求解 "(discretize first, solve second)的方法,实现了后端和前端的完全解耦。我们提出了几种后端求解器,它们大多是 DDP 算法的变体。主要的 DDP 求解器实现了多重射击策略(multiple shooting strategy)和盒式约束(box constraints)。我们正在发布一个等式/不等式约束增强拉格朗日求解器(equality/inequality-constraint augmented Lagrangian solver)和一个能够考虑外部参数(如接触位置(contact location)、定时(timings)或编码设计参数(codesign parameters))的求解器。Crocoddyl 已用于在仿人机器人、机械臂和四足机器人上实现带有低级扭矩伺服(low-level torque servo)的在线全身模型预测控制(online whole-body model predictive control)。将提出复制控制器的指导原则。Crocoddyl 也是一项基于开放源代码和 BSD-3 许可的国际合作项目。它由法国国家科学研究中心(LAAS-CNRS)、巴黎英瑞亚公司(Inria Paris)、爱丁堡大学、牛津大学、特伦托大学、马克斯-普朗克研究所或纽约大学牵头开发。我们很高兴为新用户提供指导,也欢迎大家为我们提供帮助。

1.4 SCP Toolbox

序列凸规划(Sequential Convex Programming,SCP)工具箱是一个 Julia 库,它为一套实时序列凸编程(SCP)算法提供了解析器 - 求解器接口。高级优化控制问题解析器为用户提供了使用以下算法解决通用非凸轨迹问题(generic nonconvex trajectory problems)的能力: LCvx、SCvx、PTR 和 GuSTO。这些算法已应用于航空航天和机器人独立研究问题,可能与 NASA、SpaceX、Blue Origin 和 Masten Space Systems 等组织相关。该工具箱源于一篇最新的综合教程论文,介绍了无损凸化和 SCP 算法的理论与实践。除初学者教程外,该工具箱还提供了 8 个预定义示例,包括四旋翼飞行、NASA 阿波罗交会、火星着陆和 SpaceX 星际飞船着陆翻转

相关文章:

实时最优控制(Real-Time Optimal Control)工具

系列文章目录 前言 许多现代控制方法,如模型预测控制(model-predictive control),在很大程度上依赖于实时解决优化问题。特别是,高效解决优化控制问题的能力使复杂机器人系统在实现高动态行为(highly dyna…...

(env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序

应公司需求,在特定情况下需要修改ip 在开发过程中出现的小插曲 1、第一种情况:重复声明 2、第二种情况: 应官方要求,需要跳转的 tabBar 页面的路径(需在 pages.json 的 tabBar 字段定义的页面)&#xff0…...

go-zero开发入门-API服务开发示例

接口定义 定义 API 接口文件 接口文件 add.api 的内容如下: syntax "v1"info (title: "API 接口文件示例"desc: "演示如何编写 API 接口文件"author: "一见"date: "2023年12月07日"version: "…...

NVIDIA Jetson NX ubuntu20.04删除多余版本冲突的Boost库

参考Ubuntu16.04 卸载旧版本Boost库并安装新版本 卸载 删除/usr/local/include/boost文件夹,删除/usr/local/lib中和boost有关的文件,以及/usr/local/lib/cmake/中boost的cmake文件 cd /usr/local/lib/ ls | grep boost sudo rm -rf /usr/local/include/boost su…...

【蜗牛到家】获南明电子信息产业引导基金战略投资

智慧社区生活服务平台「蜗牛到家」已于近期获得贵阳南明电子信息产业引导基金、华科明德战略投资。 贵阳南明电子信息产业引导基金属于政府旗下产业引导基金,贵州华科明德基金管理有限公司擅长电子信息产业、高科技产业、城市建设及民生保障领域的投资,双…...

基于ubuntu nc指令实现远程传输文件到嵌入式设备中

背景: 最近在使用nc进行远程文件传输的时候发现在文件传输完成时,没有正确的反馈,而是界面一直停留在传输阶段,加上使用nc传输需要设置一些诸如-l、 -p等参数,于是想将这些参数包裹在sh脚本中,一键执行脚本…...

蓝桥杯 day01 奇怪的数列 特殊日期

奇怪的数列 题目描述 奇怪的数列 从 X 星截获一份电码,是一些数字,如下: 13 1113 3113 132113 1113122113 ⋯⋯ YY 博士经彻夜研究,发现了规律: 第一行的数字随便是什么,以后每一行都是对上一行…...

properties配置和读取

如何配置和读取属性文件 1.属性文件介绍1.1 什么是属性文件1.2属性文件规范1.3 属性文件优缺点 2.属性文件读取4.spring和属性文件4.1利用注解读取4.2配置文件里直接引用 4.属性文件写入5.注意事项5.总结 1.属性文件介绍 1.1 什么是属性文件 Java开发中,我们经常需…...

如何利用人工智能+物联网技术实现自动化设备生产

随着科技的发展与行业竞争的日益激烈,制造业也逐渐走向智能化发展。制造业的改革是利用物联网技术和自动化设备,实现生产线的智能化和自适应生产,优化生产流程,提高生产效率和质量,为企业创造更大的价值。 方案概述 智…...

STM32CubeMx+MATLAB Simulink串口输出实验

STM32CubeMxMATLAB Simulink串口输出实验 📌《STM32CubeMxMATLAB Simulink点灯程序》📍相关篇《MATLAB Simulink STM32硬件在环 (HIL)实现例程测试》🔖需要的软件支持包:Embedded Coder Support Package fo…...

React中每次渲染都会传入一个新的props.children到子组件?

传入props.children后, 为什么会导致组件的重新渲染? 问题描述 在 react 中, 我想要对组件的渲染进行优化, 遇到了一个非常意思的问题, 当我向一个组件中传入了 props.children 之后, 每次父组件重新渲染都会导致这个组件的重新渲染; 它看起来的表现就像是被memo包…...

Qt 通过命令行编译程序

前言 从服务器拉代码到编译成可执行文件一个脚本解决问题。使用的项目文件见上一个文章 Qt生成动态链接库并使用动态链接库 脚本代码 为了方便易懂这是一个很简单的Qt编译脚本 call E:\vs2015\VC\vcvarsall.bat x86 rmdir /s /q my-project git clone gitgitee.com:wenbai1…...

WireShark监控浏览器登录过程网络请求

软件开发中经常前后端扯皮。一种是用Chrome浏览器的开发者工具 来看网络交互,但是前提是 网络端口的确是通的。 WireShark工作在更低层。 这个工具最大的好处,大家别扯皮,看网络底层的log,到底 你的端口开没开, 数据…...

202301209将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制

202301209将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制 2023/12/9 22:07 应该也可以适用于RK3399的Android12系统 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/default…...

智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.参考…...

使用MfgTool烧写工具烧写自制系统

一. 简介 本文我们就来学习,如何将我们编译的 uboot,zImage(内核镜像),xxx.dtb设备树文件,还有制作的根文件系统,这四个文件烧写到开发板中,最后 开发板能正常启动。 上一篇文章说…...

react中使用react-konva实现画板框选内容

文章目录 一、前言1.1、API文档1.2、Github仓库 二、图形2.1、拖拽draggable2.2、图片Image2.3、变形Transformer 三、实现3.1、依赖3.2、源码3.2.1、KonvaContainer组件3.2.2、use-key-press文件 3.3、效果图 四、最后 一、前言 本文用到的react-konva是基于react封装的图形绘…...

es6 相关面试总结

1、es6 是什么 新一代的js 语言标准,对其核心做了升级优化,更加适合大型应用开发。 2、箭头函数优缺点 优点: 1.代码优化 2.this 指向不会变动,永远指向其父元素 缺点: 1.没有arguments 参数 2.不能通过 appl…...

【Hive】——数据仓库

1.1 数仓概念 数据仓库(data warehouse):是一个用于存储,分析,报告的数据系统 目的:是构建面向分析的集成化数据环境,分析结果为企业提供决策支持 特点: 数据仓库本身不产生任何数据…...

算法基础九

螺旋矩阵2 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n …...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

C++ 基础特性深度解析

目录 引言 一、命名空间(namespace) C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用(reference)​ C 中的引用​ 与 C 语言的对比​ 四、inline(内联函数…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...