isaacgym(legged_gym)学习 (一)—— 添加自己的机器人模型并训练

本文介绍了如何在isaacgym的legged_gym环境中,获取并配置宇数科技GO2机器人的urdf文件,创建自定义配置文件,并将其添加到task_registry以便进行训练和验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

isaacgym(legged_gym)学习 (一)—— 添加自己的机器人模型并训练


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

例如:isaacgym系列学习记录。


这里默认已经安装好isaacgym学习环境,并可以成功运行其中的案例

一、获取你机器人的urdf文件

这里我以宇数科技的GO2机器人为例,去其官网下载GO2的urdf文件

下载好了urdf文件,将其中resources/robots/go2文件复制到legged_gym/resources/robots/目录下

二、配置GO2机器人的学习环境

1.建立配置文件

在legged_gym/legged_gym/envs/目录下建立一个go2文件夹,然后在go2文件夹中建立一个go2_config.py的配置文件,如下:

from legged_gym.envs.base.legged_robot_config import LeggedRobotCfg, LeggedRobotCfgPPO

class GO2RoughCfg( LeggedRobotCfg ):
    class init_state( LeggedRobotCfg.init_state ):
        pos = [0.0, 0.0, 0.42] # x,y,z [m]
        default_joint_angles = { # = target angles [rad] when action = 0.0
            'FL_hip_joint': 0.1,   # [rad]
            'RL_hip_joint': 0.1,   # [rad]
            'FR_hip_joint': -0.1 ,  # [rad]
            'RR_hip_joint': -0.1,   # [rad]

            'FL_thigh_joint': 0.8,     # [rad]
            'RL_thigh_joint': 1.,   # [rad]
            'FR_thigh_joint': 0.8,     # [rad]
            'RR_thigh_joint': 1.,   # [rad]

            'FL_calf_joint': -1.5,   # [rad]
            'RL_calf_joint': -1.5,    # [rad]
            'FR_calf_joint': -1.5,  # [rad]
            'RR_calf_joint': -1.5,    # [rad]
        }

    class control( LeggedRobotCfg.control ):
        # PD Drive parameters:
        control_type = 'P'
        stiffness = {'joint': 20.}  # [N*m/rad]
        damping = {'joint': 0.5}     # [N*m*s/rad]
        # action scale: target angle = actionScale * action + defaultAngle
        action_scale = 0.25
        # decimation: Number of control action updates @ sim DT per policy DT
        decimation = 4

    class asset( LeggedRobotCfg.asset ):
        file = '{LEGGED_GYM_ROOT_DIR}/resources/robots/go2/urdf/go2.urdf'
        name = "go2"
        foot_name = "foot"
        penalize_contacts_on = ["thigh", "calf"]
        terminate_after_contacts_on = ["base"]
        self_collisions = 1 # 1 to disable, 0 to enable...bitwise filter
  
    class rewards( LeggedRobotCfg.rewards ):
        soft_dof_pos_limit = 0.9
        base_height_target = 0.25
        class scales( LeggedRobotCfg.rewards.scales ):
            torques = -0.0002
            dof_pos_limits = -10.0

class GO2RoughCfgPPO( LeggedRobotCfgPPO ):
    class algorithm( LeggedRobotCfgPPO.algorithm ):
        entropy_coef = 0.01
    class runner( LeggedRobotCfgPPO.runner ):
        run_name = ''
        experiment_name = 'rough_go2'

这个配置文件,重点关注 class asset类和class runner( LeggedRobotCfgPPO.runner ):

2.添加到task_registry

from legged_gym import LEGGED_GYM_ROOT_DIR, LEGGED_GYM_ENVS_DIR
from legged_gym.envs.a1.a1_config import A1RoughCfg, A1RoughCfgPPO
from .base.legged_robot import LeggedRobot
from .anymal_c.anymal import Anymal
from .anymal_c.mixed_terrains.anymal_c_rough_config import AnymalCRoughCfg, AnymalCRoughCfgPPO
from .anymal_c.flat.anymal_c_flat_config import AnymalCFlatCfg, AnymalCFlatCfgPPO
from .anymal_b.anymal_b_config import AnymalBRoughCfg, AnymalBRoughCfgPPO
from .cassie.cassie import Cassie
from .cassie.cassie_config import CassieRoughCfg, CassieRoughCfgPPO
from .a1.a1_config import A1RoughCfg, A1RoughCfgPPO
from .go2.go2_config import GO2RoughCfg, GO2RoughCfgPPO   # 添加的

import os

from legged_gym.utils.task_registry import task_registry

task_registry.register( "anymal_c_rough", Anymal, AnymalCRoughCfg(), AnymalCRoughCfgPPO() )
task_registry.register( "anymal_c_flat", Anymal, AnymalCFlatCfg(), AnymalCFlatCfgPPO() )
task_registry.register( "anymal_b", Anymal, AnymalBRoughCfg(), AnymalBRoughCfgPPO() )
task_registry.register( "a1", LeggedRobot, A1RoughCfg(), A1RoughCfgPPO() )
task_registry.register( "cassie", Cassie, CassieRoughCfg(), CassieRoughCfgPPO() )
task_registry.register( "go2", LeggedRobot, GO2RoughCfg(), GO2RoughCfgPPO() )  # 添加的

添加上面代码中带#添加的注释的两段代码,
到此,就可以运行下面代码训练你的机器人:

python train.py --task=go2 --num_env=3000 --headless

运行下面代码,验证你训练的模型:

python play.py --task=go2

总结

提示:这里对文章进行总结:
legged_gym, 整体来说对于快速上手还是很友好的。

### Ubuntu 20.04 安装配置 Legged Gym 机器人模拟环境 #### 虚拟环境准备 为了确保开发环境的独立性和稳定性,在Ubuntu 20.04上安装Legged Gym前需先设置好虚拟环境。此过程涉及创建个新的Conda环境,命名为`isaac`,这步骤已在先前的操作指南中提及[^1]。 ```bash conda create -n isaac python=3.8 conda activate isaac ``` #### 安装 Isaac Gym 和相关组件 由于Legged Gym依赖于Isaac Gym作为其底层支持库之,因此需要按照官方指导完成Isaac Gym的部署工作。具体操作包括下载对应的预览版压缩包执行解压命令,随后进入指定路径下利用pip工具来安装必要的Python模块及其关联依赖项[^5]。 ```bash cd isaacgym/python pip install -e . ``` #### 配置 Legged Gym 及其他必要软件包 紧接着转向Legged Gym本身的搭建环节,主要分为两大部分:是克隆项目仓库至本地;二是依据特定标签版本号检出代码分支以便后续定制化修改或功能扩展。除此之外,还需额外引入些辅助性的第三方库如NumPy用于数值计算以及TensorBoard负责可视化训练日志记录等功能。 ```bash cd rsl_rl git checkout v1.0.2 pip install -e . cd ../legged_gym pip install -e . pip install numpy==1.23.5 pip install tensorboard ``` 以上步骤完成后即可顺利启动Legged Gym所提供的各类实验案例程序,进步探索基于强化学习算法驱动下的多足行走机器人的运动控制策略研究等工作。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值