實時最優控制(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 星際飛船著陸翻轉

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210963.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

求Sn=m+mm+mmm+...+mm..mmm(有n個m)的值

題目&#xff1a;求 的值 一、做這個題我們其實可以直接一個for求解&#xff1a; a,aa,aaa...我們很容易知道它們后一項與前一項的關系就是&#xff1b; public static void Sum(int m,int n){long sum 0L;long curAn 0;for (int i 0; i < n; i){curAn m 10* curAn;/…

Qexo博客后臺管理部署

Qexo博客后臺管理部署 個人主頁 個人博客 參考文檔 https://www.oplog.cn/qexo/本地部署 采用本地Docker部署管理本地Hexo 下載代碼包 若無法下載使用科學工具下載到本地在上傳到服務器 wget https://github.com/Qexo/Qexo/archive/refs/tags/3.0.1.zip# 解壓 unzip Qexo…

C++中的前綴和

C中的前綴和&#xff08;Prefix Sum&#xff09;是一種優化算法&#xff0c;用于計算原數組中每個元素前綴和&#xff08;前面所有元素的累加和&#xff09;&#xff0c;可以在O(n)時間內實現。 #include<iostream> using namespace std;const int MAXN 100010;int Pre…

Linux comm命令教程:如何比較兩個文件的內容(附案例詳解和注意事項)

Linux comm命令介紹 comm命令是Linux系統中的一個命令&#xff0c;用于比較兩個已排序的文件或流。默認情況下&#xff0c;comm將始終顯示三列。第一列顯示只在第一個文件中的非匹配項&#xff0c;第二列顯示只在第二個文件中的非匹配項&#xff0c;第三列顯示兩個文件中的匹配…

Java開源工具庫Guava使用指南

Guava是一個功能強大的Java開源工具庫&#xff0c;提供了很多實用的工具類和函數&#xff0c;可以簡化開發過程。本文將介紹Guava的一些基本用法和常用功能。 添加Guava依賴 在開始使用Guava之前&#xff0c;首先需要在項目中添加Guava的依賴。可以通過Maven或Gradle來管理依…

Centos7.9下的celery無法直接使用-沒有找到命令

問題 關于centos7.9下執行celery -A project worker -l debug -P eventlet 找不到celery命令 -bash: celery: command not found 解決辦法 # /usr/local/Python3 為你的python路徑 echo export PATH/usr/local/Python3/bin:$PATH >> /etc/profile.d/python3.sh source /…

在循環內錯誤使用函數定義(js的問題)

考慮下面代碼&#xff1a; var elements document.getElementsByTagName(input); var n elements.length; // Assume we have 10 elements for this example for (var i 0; i < n; i) {elements[i].onclick function() {console.log("This is element #" …

利用WSL Linux編譯OpenBMC

WSL2安裝 &#xff08;1&#xff09; 舊版 WSL 的手動安裝步驟 | Microsoft Learn &#xff08;2&#xff09; https://www.cnblogs.com/37yan/p/16169564.html &#xff08;3&#xff09; 在win10中安裝linux--使用WSL_wsl.conf-CSDN博客 安裝Ubuntu 18.04 on Windows 安…

聯合體和枚舉

聯合體&#xff1a; 聯合體是什么&#xff1f; 聯合體也是一種自定義類型&#xff0c;這種類型定義的變量也包含一系列類型&#xff0c;特征是這些類型公用一塊內存空間(所以叫聯合體也叫公用體)可以理解為結構體公用一塊內存。 //聯合-聯合體-共用體 //聯合也是一種特殊的自…

TOMCAT9安裝

1、官網下載 2、解壓到任意盤符&#xff0c;注意路徑不要有中文 3、環境變量 path 下 配置 %CATALINA_HOME%\bin 4、找到tomcat9/bin&#xff0c; 點擊 start.bat啟動 tomcat

目標檢測、目標跟蹤、重識別

文章目錄 環境前言項目復現特征提取工程下載參考資料 環境 ubuntu 18.04 64位yolov5deepsortfastreid 前言 基于YOLOv5和DeepSort的目標跟蹤 介紹過針對行人的檢測與跟蹤。本文介紹另一個項目&#xff0c;結合 FastReid 來實現行人的檢測、跟蹤和重識別。作者給出的2個主…

jsp 設備預約管理系統Myeclipse開發mysql數據庫web結構java編程計算機網頁項目

一、源碼特點 JSP 設備預約管理系統是一套完善的java web信息管理系統&#xff0c;對理解JSP java編程開發語言有幫助&#xff0c;系統具有完整的源代碼和數據庫&#xff0c;系統主要采用B/S模式開發。開發環境為 TOMCAT7.0,Myeclipse8.5開發&#xff0c;數據庫為Mysql5.0…

SQL命令---添加新字段

介紹 使用sql語句為表添加新字段。 命令 alter table 表名 add 新字段名 數據類型;例子 向a表中添加name字段&#xff0c;類型為varchar(255)。 alter table a add name varchar(255);下面是執行添加有的表結構&#xff1a;

TimescaleDB-1 安裝

前置條件&#xff1a; 1、操作系統ubuntu2204 2、已經通過apt的方式安裝了pg14 當然其他的操作系統&#xff0c;官方文檔中也有說明。 一、安裝 https://docs.timescale.com/self-hosted/latest/install/installation-linux/ Installing self-hosted TimescaleDB on Debian-…

springboot+jdbcTemplate+sqlite編程示例——以滬深300成分股數據處理為例

引言 我們在自己做一些小的項目或者小的數據處理分析的時候&#xff0c;很多時候是不需要用到mysql這樣的大型數據庫&#xff0c;并且也不需要用到maven這樣很重的框架的&#xff0c;取而代之可以使用jdbcTemplatesqlite這樣的組合。 本文就介紹一下使用springbootjdbcTempla…

課堂練習3.4:進程的切換

3-9 課堂練習3.4:進程的切換 進程切換是支持多進程的一個關鍵環節,涉及到 CPU 現場的保存和恢復,本實訓分析 Linux 0.11 的進程切換過程。 第1關第一次進程切換過程分析 任務描述 本關任務回答問題: 在第一次進程切換時: 1.是從幾號進程切換到幾號進程?0 號進程和 1 號…

Linux指令——scp:傳輸文件

Linux指令——scp&#xff1a;傳輸文件 簡介&#xff1a; Linux文件互傳指令 使用方法&#xff1a; scp [可選參數] file_source file_target # 可選參數一般為-r&#xff0c;遞歸傳輸 # 舉例如下&#xff1a; scp /home/test/test.txt root192.168.1.200:/home/test/tes…

Java線程概念詳解

線程 概念 1.程序:未解決某種問題,使用計算機語言編寫的一些列指令(代碼)的集合 2.進程:正在運行的程序(被加載到內存中),是操作系統進行資源分配的最小單位 3.線程:進程可以進一步細化為線程(比進程更小)且線程是隸屬于進程的,是操作系統執行的最小的執行單元 也是cpu進行任…

CleanMyMac X2024免費許可證(激活教程)

CleanMyMac X是一款流行的系統優化工具&#xff0c;專為Mac用戶設計。它可以幫助用戶清理Mac系統中的垃圾文件、卸載不需要的程序、加速Mac性能以及保護Mac系統的安全。 一、簡介 CleanMyMac X是一款功能強大的系統優化工具&#xff0c;它可以幫助用戶清理Mac系統中的垃圾文件…

優麒麟ubuntukylin安裝UE4.27.2

優麒麟ubuntukylin安裝UE4.27.2 在&#xff08;國產&#xff09;優麒麟 ubuntukylin Linux平臺上編譯測試安裝虛幻引擎。 優麒麟系統 這里選擇的是官方增強版 https://www.ubuntukylin.com/downloads/ 同樣的可以選擇對應的Ubuntu22.04 LTS&#xff0c;唯一的區別就是優麒麟…