Pupper机器狗入门教程-控制器介绍
Pupper机器狗入门教程-控制器介绍
说明:
- 介绍机器狗的控制原理
原理:
- 循环体图示:
主程序是run_robot.py,位于此目录中。
树莓派代码通过一个操纵杆接口,一个控制器和一个协调行为的硬件接口作为循环运行。
游戏杆接口负责从UDP套接字读取游戏杆输入并将其转换为通用机械手命令类型。
一个单独的程序joystick.py发布这些UDP消息,并负责通过蓝牙从PS4控制器读取输入。
控制器完成大部分工作,在状态(小跑,步行,休息等)之间切换并生成伺服位置目标。
控制器的详细模型如下所示。
该代码的第三个组件,即硬件接口,将来自控制器的位置目标转换为PWM占空比,然后传递给与Pigpiod绑定的Python,该Pigpiod然后在软件中生成PWM信号并将这些信号发送到与之相连的电机 Raspberry Pi。
控制器详情:
- 图示:
该图显示了机器人控制器的运作。
在内部,您可以看到四个主要组件:一个步态调度程序(也称为步态控制器),一个姿态控制器,一个挥杆控制器和一个逆运动学模型。
步态调度器负责计划在任何给定时间哪个脚应该站在地面上(姿势),哪个脚应该前进到下一步(摆动)。
例如,在一条小跑中,对角线的双腿同步移动,并在站立和摆动之间交替走动。
如图所示,步态调度器可以看作是每条腿的指挥器,可以随着时间的推移在姿势和挥杆之间切换。
姿势控制器控制地面上的脚,实际上非常简单。
它查看所需的机器人速度,然后为这些姿态脚生成与身体相对的目标速度,该目标速度与所需速度的方向相反。
它还具有旋转功能,在这种情况下,它会沿与所需身体旋转相反的方向相对于身体旋转脚。
挥杆控制器将刚刚站好姿势阶段的脚抬起,然后将它们带到下一个着陆位置。
选择着陆位置,以使脚在挥杆中向前移动的姿势与其在姿态上向后移动相同的距离。
例如,如果在站立阶段脚以-0.4m/s的速度向后移动(以实现+ 0.4m/s的体速度)并且站立阶段的长度为0.5秒,那么我们知道脚将向后移动-0.20米然后,挥杆控制器将使脚向前移动0.20m,以将脚放回其起始位置。
您可以想象,如果挥杆控制器仅将腿向前移动0.15m,那么脚的每一步都会在身体后方滞后-0.05m。
姿态控制器和挥杆控制器都在相对于身体质心的笛卡尔坐标中生成脚的目标位置。
使用直角坐标进行姿势和挥杆计划很方便,但是现在我们需要将其转换为运动角度。
这是通过使用逆运动学模型完成的,该模型在笛卡尔体坐标和运动角度之间进行映射。
然后将这些电动机角度(也称为关节角度)填充到状态变量中,并由模型返回。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号