動手人形機器人(RL)

1 PPO的講解

核心步驟,如策略網絡和價值網絡的定義、優勢估計、策略更新、價值更新等基礎功能的實現

2 代碼構成

可能涉及

初始化,Behavior Clone

3 動手強化學習

import pytorch as torch
class actorcritic ##等待補充

?

4 PD Gains

在機器人學中,PD gains(比例 - 微分增益) 是指比例控制(Proportional control)和微分控制(Derivative control)中的增益參數,分別稱為 P gain(比例增益)D gain(微分增益),它們是 PD 控制算法的核心組成部分,對機器人的運動控制性能起著關鍵作用。具體如下:

1. P gain(比例增益)

  • 作用:與機器人當前的誤差(如位置誤差、角度誤差等)成正比,用于快速響應誤差。例如,當機器人的機械臂需要移動到某個目標位置時,若實際位置與目標位置存在誤差,比例增益會根據誤差大小輸出一個控制量,推動機械臂向減小誤差的方向運動。
  • 影響:比例增益越大,系統對誤差的響應越迅速,但過大的比例增益可能導致系統超調(即運動超過目標位置),甚至產生震蕩,使機器人運動不穩定。

2. D gain(微分增益)

  • 作用:與誤差的變化率成正比,用于預測誤差的變化趨勢。它能根據誤差變化的快慢調整控制量,抑制超調,增加系統的穩定性。例如,當機械臂接近目標位置時,微分增益會檢測到誤差變化率減小,提前降低控制量,使機械臂平穩停止,避免沖過目標位置。
  • 影響:合適的微分增益可以改善系統的動態特性,減少調整時間;但微分增益過大可能使系統對噪聲過于敏感(如傳感器噪聲會被放大影響控制),過小則難以有效抑制超調。

機器人學中的應用示例

在機器人的關節控制中,PD 控制常用于調節電機的輸出。例如,若機器人某關節需要從當前角度轉動到目標角度:

  • 當角度誤差較大時,比例增益起主導作用,快速驅動關節向目標角度轉動;
  • 隨著角度誤差減小,微分增益根據誤差變化率調整輸出,使關節平穩地停在目標角度,避免來回晃動。
## 機器人關節電機控制模式及參數class control:## 控制類型:位置控制、速度控制、扭矩控制control_type = 'P' # P: position, V: velocity, T: torques## PD驅動的參數## stiffness代表剛度系數k_p damping代表阻尼系數k_dstiffness = {'joint_a': 10.0, 'joint_b': 15.}  # [N*m/rad]damping = {'joint_a': 1.0, 'joint_b': 1.5}     # [N*m*s/rad]## 公式如下,與action的轉化為什么要有這樣的比例因子暫未明白# action scale: target angle = actionScale * action + defaultAngleaction_scale = 0.5## decimation: Number of control action updates @ sim DT per policy DT## 仿真環境的控制頻率/decimation=實際環境中的控制頻率decimation = 4

5 相關研究分享

1 CMU的H2O

Learning Human-to-Humanoid Real-Time Whole-Body TeleoperationLearning Human-to-Humanoid Real-Time Whole-Body Teleoperationhttps://human2humanoid.com/

2 leggedgym

ETH開發的庫函數

https://github.com/leggedrobotics/legged_gymhttps://github.com/leggedrobotics/legged_gym

如何使用?:

  1. Train:
    python legged_gym/scripts/train.py --task=anymal_c_flat
    • To run on CPU add following arguments: --sim_device=cpu, --rl_device=cpu (sim on CPU and rl on GPU is possible).
    • To run headless (no rendering) add --headless.
    • Important: To improve performance, once the training starts press v to stop the rendering. You can then enable it later to check the progress.
    • The trained policy is saved in issacgym_anymal/logs/<experiment_name>/<date_time>_<run_name>/model_<iteration>.pt. Where <experiment_name> and <run_name> are defined in the train config.
    • The following command line arguments override the values set in the config files:
    • --task TASK: Task name.
    • --resume: Resume training from a checkpoint
    • --experiment_name EXPERIMENT_NAME: Name of the experiment to run or load.
    • --run_name RUN_NAME: Name of the run.
    • --load_run LOAD_RUN: Name of the run to load when resume=True. If -1: will load the last run.
    • --checkpoint CHECKPOINT: Saved model checkpoint number. If -1: will load the last checkpoint.
    • --num_envs NUM_ENVS: Number of environments to create.
    • --seed SEED: Random seed.
    • --max_iterations MAX_ITERATIONS: Maximum number of training iterations.
  2. Play a trained policy:
    python legged_gym/scripts/play.py --task=anymal_c_flat
    • By default, the loaded policy is the last model of the last run of the experiment folder.
    • Other runs/model iteration can be selected by setting load_run and checkpoint in the train config.

3 RL_rsl

https://github.com/leggedrobotics/rsl_rlhttps://github.com/leggedrobotics/rsl_rl

快速、簡單地實現RL算法,旨在在GPU上完全運行。 這段代碼是一個進化過程。rl-pytorchNVIDIA 的 Isaac GYM 發布。

使用框架的環境存儲庫:

  • Isaac Lab(建立在NVIDIA Isaac Sim之上):https://github.com/isaac-sim/IsaacLab
  • Legged-Gym(基于 NVIDIA Isaac Gym 構建):https://leggedrobotics.github.io/legged_gym/

PPO主要分支支持PPO和學生教師蒸餾,以及我們研究的其他功能。這些包括:

  • 隨機網絡蒸餾(RND)https://proceedings.mlr.press/v229/schwarke23a.html - 通過添加來鼓勵探索 好奇心驅動的內在獎勵。
  • 基于對稱性的增強https://arxiv.org/abs/2403.04359 - 使學習的行為更加對稱。

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

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

相關文章

Mujoco xml模型

Mujoco xml模型 一個例子compileroptionassetmesh default基本使用childclass與class多個class worldbodybody關系inertialjointgeom XML主要分為以下三個部分&#xff1a; < asset> &#xff1a; 用 tag導入STL文件&#xff1b;< worldbody>&#xff1a;用tag定義…

【Redis】背景知識

一、Redis的特性 Redis是一種基于鍵值對&#xff08;key-value&#xff09;的NoSQL數據庫&#xff0c;與很多鍵值對數據庫不同的是&#xff0c;Redis中的值可以是由string&#xff08;字符串&#xff09;&#xff0c;hash&#xff08;哈希&#xff09;&#xff0c;list&#xf…

Redis的used_memory_peak_perc和used_memory_dataset_perc超過90%會怎么樣

當Redis的used_memory_peak_perc&#xff08;當前內存占歷史峰值的百分比&#xff09;和used_memory_dataset_perc&#xff08;數據集內存占比&#xff09;均超過90%時&#xff0c;可能引發以下問題及風險&#xff1a; 一、used_memory_peak_perc > 90% 的影響 內存交換風險…

嵌入式---灰度傳感器

灰度傳感器概覽 一、定義與核心功能 1. 定義 灰度傳感器是一種基于 光反射原理 的光電傳感器&#xff0c;通過檢測物體表面對入射光&#xff08;多為紅外光或可見光&#xff09;的反射強度&#xff0c;將光信號轉換為電信號&#xff0c;從而判斷目標物體的 灰度值&#xff0…

0303hooks-react-仿低代碼平臺項目

文章目錄 1. 副作用2.其他內置hooks2.1 useEffect2.2 useRef2.3useMemo2.4 useCallback 3.自定義hooks4. 第三方hooks5. hooks使用原則6. hooks閉包陷阱7. 總結結語 1. 副作用 當組件渲染完成時&#xff0c;加載一個Ajax網絡請求當某個state更新時&#xff0c;加載一個Ajax網絡…

Zephyr、FreeRTOS、RT-Thread 定時器區別分析

一、核心特性對比 特性ZephyrFreeRTOSRT-Thread定時器類型系統定時器&#xff08;k_timer&#xff09;、硬件定時器軟件定時器&#xff08;基于系統tick&#xff09;軟件定時器、硬件定時器定時模式單次、周期性單次、自動重載&#xff08;周期性&#xff09;單次、周期、自定…

手撕unique_ptr 和 shareed_ptr

文章目錄 unique_ptrshared_ptr unique_ptr template<class T> class Unique_ptr { private:T* ptrNULL; public://1、刪除默認的拷貝構造函數Unique_ptr(Unique_ptr& u) delete;//2、刪除默認的復制構造Unique_ptr& operator(Unique_ptr& u) delete; …

對比 HashMap 和 ConcurrentHashMap 擴容邏輯的差異

HashMap 和 ConcurrentHashMap 在 擴容邏輯 上有明顯的差異&#xff0c;尤其是在并發環境下的處理策略&#xff0c;這是它們核心區別之一。 &#x1f9f1; 一、總體對比表&#xff08;JDK 8 為例&#xff09; 特性HashMapConcurrentHashMap線程安全? 否? 是是否支持并發擴容…

Linux 的準備工作

1.root用戶登錄 首先講一下root賬戶怎么登陸 直接 ssh root 公ip地址就可以了 比如我的是騰訊云的 這個就是公ip 下面所有普通用戶的操作都是在root賬戶下進行的 2.普通用戶創建 創建用戶指令 adduser 用戶名 比如說這個指令 我創建了一個ly_centos的普通用戶 3.普通用…

自動變為 VIP 文章

今天突然發現自己寫的大部分文章都被自動設為了VIP文章。 我這才想起來以前好像填過一個什么表&#xff0c;說要允許CS-DN把自己寫的文章自動設為VIP文章。 我也忘了為啥要允許CSDN動我寫的文章了&#xff0c;把幾乎所有文章都給設為VIP顯然是不合適的&#xff0c;畢竟文章是給…

Vue3+Vite+TypeScript+Element Plus開發-08.登錄設計

系列文檔目錄 Vue3ViteTypeScript安裝 Element Plus安裝與配置 主頁設計與router配置 靜態菜單設計 Pinia引入 Header響應式菜單縮展 Mockjs引用與Axios封裝 登錄設計 登錄成功跳轉主頁 多用戶動態加載菜單 文章目錄 目錄 系列文檔目錄 文章目錄 前言 一、登錄mo…

全新二手羅德SMCV100B信號發生器SMBV100A

全新二手羅德SMCV100B信號發生器SMBV100A SMCV100B信號發生器SMBV100A主要特點 適用于廣播電視、導航、蜂窩和無線應用的多標準平臺 全軟件選件定義的矢量信號發生器&#xff0c;具備 5″ 觸摸屏 全新的射頻信號生成概念&#xff0c;頻率范圍介于 4 kHz 至 7.125 GHz 輸出功率…

spring mvc @ResponseBody 注解轉換為 JSON 的原理與實現詳解

ResponseBody 注解轉換為 JSON 的原理與實現詳解 1. 核心作用 ResponseBody 是 Spring MVC 的一個注解&#xff0c;用于將方法返回的對象直接序列化為 HTTP 響應體&#xff08;如 JSON 或 XML&#xff09;&#xff0c;而不是通過視圖解析器渲染為視圖&#xff08;如 HTML&…

OpenCV——圖像融合

OpenCV——圖像融合 一、引言1.1 圖像融合分類 二、C代碼實現三、效果展示3.1 標準球3.2 鋁制底座 一、引言 在許多計算機視覺應用中(例如機器人運動和醫學成像)&#xff0c;需要將來自多幅圖像的相關信息集成到一幅圖像中。這種圖像融合將提供更高的可靠性、準確性和數據質量…

機器學習之PCA主成分分析詳解

文章目錄 引言一、PCA的概念二、PCA的基本數學原理2.1 內積與投影2.2 基2.3 基變換2.4 關鍵問題及優化目標2.5 方差2.6 協方差2.7 協方差矩陣2.8 協方差矩陣對角化 三、PCA執行步驟總結四、PCA參數解釋五、代碼實現六、PCA的優缺點七、總結 引言 在機器學習領域&#xff0c;我…

springboot自動配置原理例子講解

Spring Boot 的自動配置是其核心特性之一&#xff0c;它幫助開發者**"開箱即用"**地使用各種第三方庫或 Spring 組件&#xff0c;而無需手動配置 Bean。這一切的背后&#xff0c;都依賴于 Spring Boot 的自動配置機制。 我們分兩部分來說&#xff1a; Spring Boot 自…

一款基于 .NET 8 + Vue 開源的、企業級中后臺權限管理系統

前言 今天大姚給大家分享一款基于 .NET 8 Vue 開源、前后端分離的企業級中后臺權限管理系統&#xff0c;助力快速完成常規業務需求開發&#xff1a;ApeVolo.Admin。 項目介紹 ApeVolo.Admin 一款基于.NET 8、SqlSugar、Vue、Elment UI、RBAC、前后端分離、開源&#xff08;…

vue3騰訊云直播 前端推流

1、在index.html文件中引入&#xff08;在body體中&#xff09; <script src"https://video.sdk.qcloudecdn.com/web/TXLivePusher-2.1.1.min.js" charset"utf-8"></script> 2、vue文件中&#xff0c;添加video推流&#xff08;我用的推流地…

藍疊模擬器過檢測全攻略

BlueStacks藍疊MagiskLsposed安裝和過應用檢測教程 藍疊MagiskLsposed安裝和過應用檢測教程 引言 藍疊模擬器憑借其出色的性能和兼容性&#xff0c;在電腦上運行安卓應用和游戲方面備受青睞。然而&#xff0c;眾多應用和游戲為確保公平性與安全性&#xff0c;加入了模擬器檢測…

Flutter Invalid constant value.

0x00 問題 參數傳入變量&#xff0c;報錯&#xff01; 代碼 const Padding(padding: EdgeInsets.all(20),child: GradientProgressIndicator(value: _progress), ),_progress 參數報錯&#xff1a;Invalid constant value. 0x01 原因 這種情況&#xff0c;多發生于&#xff…