从零开始搭建四足机器人mini cheetah仿真环境(零)准备工作

倖福魔咒の 提交于 2020-03-06 21:07:42

一、准备工作

1、pybullet

我们的仿真环境基于pybullet,因此需要先安装好pybullet,有关pybullet的介绍以及安装在这篇文章中有介绍过。
在这里插入图片描述

2、mini cheetah 的模型

在这里插入图片描述
这里的模型指的是urdf模型,pybullet里面已经预先为我们建立好了urdf模型,在pybullet_data这个文件夹内可以找到
在这里插入图片描述
pybullet_envs/example里面也有该模型的测试例子。运行效果如下:
在这里插入图片描述
例子的代码如下,看起来非常简短。

import pybullet as p
import pybullet_data as pd
import time

p.connect(p.GUI) # 连接到仿真服务器
p.setGravity(0, 0, -9.8) # 设置重力值
p.setAdditionalSearchPath(pd.getDataPath()) # 设置pybullet_data的文件路径

# 加载地面
floor = p.loadURDF("plane.urdf") 

# mini cheetah的初始位置
startPos = [0, 0, 0.5] 

# 加载urdf文件
robot = p.loadURDF("mini_cheetah/mini_cheetah.urdf", startPos)

# 获取关节数量
numJoints = p.getNumJoints(robot)
# 设置机器人的视觉效果,这里参数-1指的是机器人的base link。
# 我们可以通过rgba值改变机器人相关link的颜色
p.changeVisualShape(robot, -1, rgbaColor=[1, 1, 1, 1])

# 设置每个link的颜色,并且设置初始关节角度
for j in range(numJoints):
	p.changeVisualShape(robot, j, rgbaColor=[1, 1, 1, 1])
	force = 200
	pos = 0
	p.setJointMotorControl2(robot, j, p.POSITION_CONTROL, pos, force=force)
dt = 1./240.
p.setTimeStep(dt)

# 进行仿真
while 1:
	p.stepSimulation()
	time.sleep(dt)

在我们正式开始之前,请确保你能够成功运行上面这个例子。

3、urdf文件解析

为了了解我们所使用的的模型,通过urdf文件查看其相关信息是十分有必要的,我们可以在命令行输入以下命令,获取各关节继承的关系:

check_urdf mini_cheetah.urdf

结果:

robot name is: mini_cheetah
---------- Successfully Parsed XML ---------------
root Link: body has 4 child(ren)
    child(1):  abduct_hl
        child(1):  thigh_hl
            child(1):  shank_hl
                child(1):  toe_hl
    child(2):  abduct_hr
        child(1):  thigh_hr
            child(1):  shank_hr
                child(1):  toe_hr
    child(3):  abduct_fl
        child(1):  thigh_fl
            child(1):  shank_fl
                child(1):  toe_fl
    child(4):  abduct_fr
        child(1):  thigh_fr
            child(1):  shank_fr
                child(1):  toe_fr

还可以通过以下命令查看模型的总体结构(关节名称编者修改过):

urdf_to_graphiz my_robot.urdf

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!