机器人强化学习-双机械臂

本文介绍了如何利用robosuite库对具有两个机械臂(如Sawyer和Kinova3)的环境进行训练,展示了如何控制双臂进行随机运动以及与单臂控制的区别。还提及了通过添加控制器实现双臂手动示教数据生成的能力。
摘要由CSDN通过智能技术生成

概要

基于 robosuite 库,进行双臂机器人学习训练

环境测试

下面展示下分别控制两个机械手随机运动的画面:
在这里插入图片描述

双臂显示场景如下:双臂调用代码如下:

import numpy as np
import robosuite as suite
import robomimic
import robomimic.utils.file_utils as FileUtils
import robomimic.utils.torch_utils as TorchUtils
import robomimic.utils.tensor_utils as TensorUtils
import robomimic.utils.obs_utils as ObsUtils
from robomimic.envs.env_base import EnvBase
from robomimic.algo import RolloutPolicy

env = suite.make(
    env_name = 'TwoArmLift',
    robots=["Sawyer", "Kinova3"], # Kinova3, Auboi5, Sawyer
    has_renderer = True,
    has_offscreen_renderer = False,
    use_camera_obs = False,
    env_configuration = "single-arm-parallel", 
)

env.reset()

low, high = env.action_spec

if __name__ == "__main__":
    for i in range(100):
        action_0 = np.random.randn(env.robots[0].dof) # dim = 8
        action_1 = np.random.randn(env.robots[1].dof)
        
        action = [x for x in action_0] + [x for x in action_1] # dim = 16
        obs, reward, done, info = env.step(action)
        # import ipdb; ipdb.set_trace()
        env.render()

值得注意的是,与单机械手控制相比,只需要将 action 改成 16维的就可以。ps:对于单机器人控制,action 是7维的,但是在这里,两个机器人的动作是 16维的。

手动示教生成的数据:
在这里插入图片描述
在这里插入图片描述

双臂控制

经过增加控制器,实现了可以同时控制两个机器人的功能,并能生成相应的数据文件。

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值