【MuJoCo仿真】開源SO100機械臂導入到仿真環境

主要參考:https://github.com/jpata/gym-so100/tree/integration/gym_so100/assets/trs_so_arm100

參考:(八)lerobot開源項目擴展so100的仿真操控(操作記錄)_so100機械臂 仿真-CSDN博客

下載:lerobot_so100_sim: lerobot_so100_sim - Gitee.com背景

URDF是Unified Robot Description Format,主要用于ROS中描述機器人的結構、關節、連桿、傳感器等。

MJCF是MuJoCo(Multi-Joint dynamics with Contact)的模型格式,用于物理仿真,更注重動力學和接觸計算。

?so100模型來源(在solidword畫好后導出):https://github.com/TheRobotStudio/SO-ARM100/blob/4e9c5588d8a8415b6a6c2142a0ce8c32207cf3e9/URDF/SO_5DOF_ARM100_8j_URDF.SLDASM/urdf/SO_5DOF_ARM100_8j_URDF.SLDASM.urdf

下載so100的xml,并拖入MuJoCo

git clone https://gitee.com/mrqiguan/lerobot_so100_sim.git

調節右側的參數可以動?

完整界面


??為什么不能直接將 URDF 導入 MuJoCo???

雖然 MuJoCo 支持導入 URDF,但 URDF 格式與 MuJoCo 的仿真需求存在顯著差異,直接導入可能導致以下問題:

  1. ??視覺與碰撞模型分離??
    URDF 的?<visual>?和?<collision>?標簽通常使用不同的幾何體(例如高精度網格與簡化凸包)。MuJoCo 默認會丟棄?<visual>?幾何體(通過?discardvisual="true"),導致模型不可見。因此需要通過?<compiler discardvisual="false">?顯式保留視覺模型。

  2. ??物理參數缺失??
    URDF 缺乏對摩擦、執行器動態特性(如?impratiocone="elliptic")等仿真關鍵參數的描述,這些需手動添加以確保逼真的物理交互。

  3. ??碰撞優化不足??
    URDF 的碰撞模型可能過于復雜或缺少必要優化。例如:

    • 需要手動提取 ??凸包碰撞網格??(如夾爪的凸包化)以提高計算效率。
    • 添加 ??額外碰撞幾何體??(如夾爪的輔助碰撞盒)以增強接觸檢測。
  4. ??關節與執行器配置??
    URDF 不定義關節的阻尼、執行器控制模式(如位置/速度控制)等,需在 MJCF 中通過?<default>?和?<actuator>?明確指定。

  5. ??模型層級與命名沖突??
    URDF 的復雜嵌套結構可能導致 MuJoCo 解析時的路徑錯誤(例如材質或網格引用失效),需通過?strippath="false"?保留完整路徑。


??轉換步驟的必要性??

  1. ??保留視覺模型??

    <mujoco><compiler discardvisual="false" strippath="false"/></mujoco>

    強制保留視覺網格,避免模型在仿真中不可見。

  2. ??統一默認屬性??
    將重復的材質、關節屬性提取到?<default>?中,簡化模型并確保一致性。

  3. ??優化碰撞模型??

    • 將伺服電機網格分離為獨立文件,減少內存占用。
    • 為夾爪創建 ??凸包碰撞網格??(例如?gripper_collision.stl),替代原始非凸網格以加速碰撞檢測。
  4. ??增強物理交互??

    • 添加?impratio="10"?提高接觸力的各向異性,模擬非彈性碰撞。
    • 使用?cone="elliptic"?替代默認的圓錐摩擦模型,更貼近真實摩擦行為。
  5. ??避免自碰撞干擾??
    通過?<exclude>?阻止基座(Base)與俯仰關節(Rotation_Pitch)的錯誤接觸檢測。

  6. ??執行器與控制??
    添加?<position>?執行器并設置?kp(剛度系數),使關節能響應位置控制指令。


??總結??

URDF 是面向機器人描述的標準格式,而 ??MJCF 是專為物理仿真優化的格式??。直接導入 URDF 可能導致模型在 MuJoCo 中表現異常(如穿透、抖動、控制失效)。通過上述轉換步驟,可確保:

  • 視覺與碰撞模型的完整性
  • 物理參數符合仿真需求
  • 計算效率與穩定性提升

最終生成的 MJCF 模型在 MuJoCo 中能實現逼真的動態行為,而未經處理的 URDF 可能僅適用于可視化,無法滿足仿真精度要求。

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

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

相關文章

Socat 用法詳解:網絡安全中的瑞士軍刀

Socat 用法詳解&#xff1a;網絡安全中的強大工具 引言 socat&#xff08;SOcket CAT&#xff09;是一款功能強大的命令行工具&#xff0c;被譽為“網絡瑞士軍刀”&#xff0c;廣泛應用于數據傳輸、端口轉發和網絡調試等場景。它支持多種協議和數據通道&#xff08;如文件、管…

永磁同步電機控制算法--基于PI和前饋的位置伺服控制

一、原理介紹 永磁同步伺服系統是包含了電流環、速度環和位置環的三環控制系統。 伺服系統通過電流檢測電路和光電編碼器檢測電動機三相繞組電流和轉子位置θ&#xff0c;通過坐標變換&#xff0c;計算出轉矩電流分量iq和勵磁電流分量id。 位置信號指令與實際轉子位置信號的差…

Lucene多種數據類型使用說明

Lucene 作為一款高性能的全文檢索引擎庫&#xff0c;其核心功能圍繞索引和搜索文本數據&#xff0c;但它也支持多種數據類型以滿足復雜的應用場景。以下是 Lucene 支持的主要數據類型及其用途的詳細說明&#xff1a; 1. 文本類型&#xff08;Text&#xff09; 用途&#xff1a;…

Web網頁布局

目錄 一、傳統的DIVCSS布局&#xff08;使用率最高的&#xff09; 1.div傳統的一塊塊轉 2.以貓眼電影為例‘ 3.div布局格式&#xff08;唯一的id屬性&#xff0c;不唯一寫class重復的&#xff09; 3.2總體布局樣式 二、HTML5語義標簽CSS3布局 1.把div改為綠色的語義標簽…

大模型基礎(五):transformers庫(下):快速分詞器、自動配置類、快速微調

transformers庫&#xff08;下&#xff09; 1 快速分詞器1.1 Fast 分詞器的核心特點1.2 對比示例1.3 何時使用 Fast 分詞器&#xff1f;1.4 注意事項 2 自動配置類 AutoConfig2.1 核心功能2.2 基本用法2.3 主要應用場景2.4 常用函數2.5 與具體配置類的區別2.6 注意事項 3 快速微…

在pycharm profession 2020.3上離線安裝.whl類型的包(以PySimpleGUI為例)

今天寫個小代碼&#xff0c;用到了PySimpleGUI。 在pycharm profession 2020.3的項目中的Terminal里運行如下代碼即可安裝。 python3 -m pip install --force-reinstall --extra-index-url https://PySimpleGUI.net/install PySimpleGUI 安裝方法如圖&#xff1a; 安裝后使用…

SpringBoot整合RabbitMQ(Java注解方式配置)

1.生產端 1. 創建生產者SpringBoot工程 2. 引入start&#xff0c;依賴坐標 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 3. 編寫yml配置&#xff0c;基本…

分析strtol(),strtoul()和strtod()三個函數的功能

字符串轉換為數值部分和子字符串首地址的函數有strtol(),strtoul()和strtod()三個函數。 1、strtol()函數 long int strtol(const char *str, char **endptr, int base) //當base0時,若字符串不是以"0","0x"和"0X"開頭,則將數字部分按照10進制…

Spring 的事務隔離

在Spring框架中&#xff0c;事務管理是一個非常重要的方面&#xff0c;它允許開發者以聲明式的方式定義事務邊界&#xff0c;并且通過配置不同的隔離級別來控制并發事務的行為。Spring支持多種事務管理方式&#xff0c;包括編程式事務管理和聲明式事務管理&#xff08;如使用Tr…

單片機自動排列上料控制程序

/****L2233 CODE11549 2025 4 18 08:53*******/ /***軸承上料機控制 提升 搖擺 光電檢測***/ /***2025 3 21 電機控制PCB板 PAST ***/ /*2.3 2.2 1.2 1.3 1.4 1.5 1.6 1.7 5.3 3.2 ***/ /*啟動 解鎖 光電 接近 前停 后停 電機前 電機后*/ #include &quo…

力扣119題解

記錄 2025.5.5 題目&#xff1a; 思路&#xff1a; 代碼: class Solution {public List<Integer> getRow(int rowIndex) {List<Integer> row new ArrayList<Integer>();row.add(1);for (int i 1; i < rowIndex; i) {row.add((int) ((long) row.get(i…

國產化海光C86架構服務器安裝windows實錄

最近幾年與紅藍關系急轉直下&#xff0c;尤其是科技領域尤為突出。隨之而來的就是軟硬件的國產化大潮。由于行業的原因根據要求必須使用國產化服務器、國產化操作系統、國產化數據庫、國產化中間件。雖然閉關鎖國斷開紅藍聯系可以在一定程度激發國產化發展&#xff0c;但是不得…

Oracle OCP證書有效期是三年?

這一段時間&#xff0c;網上經常傳出消息Oracle OCM認證證書有效期為三年&#xff0c;其實這個假消息&#xff0c;通過博睿谷與Oracle官方人員確認&#xff0c;OCP認證證書有效期是永久的。 OCP證書本身永久有效&#xff0c;但老版本的OCP證書代表著更多的項目經驗&#xff0c…

Python 閉包:函數式編程中的魔法變量容器

閉包與匿名函數的常見混淆 在編程社區中&#xff0c;閉包(closure)和匿名函數(anonymous function)經常被混為一談&#xff0c;這種混淆有其歷史根源&#xff1a; 歷史發展因素&#xff1a;在早期編程實踐中&#xff0c;在函數內部定義函數并不常見&#xff0c;直到匿名函數廣…

迅睿CMS導入別站數據庫

<?php if (isset($_GET[go])) {$host localhost;// 數據庫服務器$username uname;// 數據庫用戶名$password pwd;// 數據庫密碼$database database;// 數據庫名$cmscid $_GET[cmscid];$mtabcid $_GET[mtabcid];if ($_GET[go] step1) {//第一步&#xff1a;先獲取CMS…

基于C++、JsonCpp、Muduo庫實現的分布式RPC通信框架

??個人主頁&#xff1a;小羊 ??所屬專欄&#xff1a;項目 很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~ 目錄 項目介紹JsonCpp庫簡單介紹Muduo庫簡單介紹C11異步操作——std::future1. 使用 std::async 關聯異步任務2. std::packaged_task 配…

EPSG:3857 和 EPSG:4326 的區別

EPSG:3857 和 EPSG:4326 是兩種常用的空間參考系統&#xff0c;主要區別在于坐標表示方式和應用場景。以下是它們的核心差異&#xff1a; 1. 坐標系類型 EPSG:4326&#xff08;WGS84&#xff09; 地理坐標系&#xff08;Geographic Coordinate System&#xff09;&#xff0c;基…

Docker 使用與部署(超詳細)

目錄 引入 入門使用 部署對比 鏡像倉庫 命令解釋 基礎 常見命令 示例 數據卷的使用 數據卷的概念 數據卷的使用 掛載本地目錄文件 鏡像 結構 Dockerfile 容器網絡 部署 DockerCompose 語法 ?編輯 基礎命令 引入 當我們在 Linux 上部署一個集成了很多中間件…

JAVA在線考試系統考試管理題庫管理成績查詢重復考試學生管理教師管理源碼

一、源碼描述 這是一套在線考試源碼&#xff0c;基于SpringBootVue框架&#xff0c;后端采用JAVA語言&#xff0c;可以用于重復考試&#xff0c;一、管理員功能&#xff1a;1、考試管理&#xff1a;包括考試查詢與添加考試功能&#xff0c;2、題庫管理&#xff1a;管理所有題庫…

在Qt Creator中使用CUDA

要在Qt Creator項目中使用CUDA進行GPU加速計算&#xff0c;你需要進行一些配置。以下是詳細步驟&#xff1a; 1. 安裝必要軟件 安裝最新版本的NVIDIA CUDA Toolkit 確保已安裝Qt Creator和兼容的編譯器(如MSVC或GCC) 2. 創建Qt項目 打開Qt Creator&#xff0c;創建一個新的…