本页目录

6.XGO双轮足姿态调整基础

第6课时:XGO双轮足姿态调整基础 | python中的类和面向对象编程概念

实验目标:

  • 掌握双轮足姿态调整的基础。
  • 学习如何将姿态控制与Python高级编程技巧结合使用。
  • 理解并应用面向对象编程(OOP)的概念来控制双轮足。

课前预习:

实验步骤与代码:

  1. 机身姿态调整
    • 使用rider_roll方法 设置rider 的机身左右倾斜角度(roll) 。
from xgolib import XGO
import time

rider = XGO("xgorider")

# 设置机身向右倾斜 15°
rider.rider_roll(15)
time.sleep(2)

# 恢复水平状态
rider.rider_roll(0)
time.sleep(2)

# 设置机身向左倾斜 15°
rider.rider_roll(-15)
time.sleep(2)

# 恢复水平状态
rider.rider_roll(0)
  1. 机身周期左右晃动
    • 使用rider_periodic_roll方法让机身以固定周期持续左右摇摆 。
# 开始周期性左右摇摆,每次周期 1.2 秒
rider.rider_periodic_roll(1.2)
time.sleep(3)  # 摇摆一段时间

# 停止摇摆
rider.rider_periodic_roll(0)
  1. 类与对象封装动作逻辑
    • 我们将上面的功能封装成一个类,方便复用和组合动作:
class RiderTrick:
    def __init__(self, robot):
        self.robot = robot  # 存储机器人对象

    # 单次 roll 调整
    def roll_demo(self):
        self.robot.rider_roll(15)
        time.sleep(1)
        self.robot.rider_roll(-15)
        time.sleep(1)
        self.robot.rider_roll(0)

    # 周期左右摇摆
    def periodic_roll_demo(self, period=1.2, duration=3):
        self.robot.rider_periodic_roll(period)
        time.sleep(duration)
        self.robot.rider_periodic_roll(0)

    # 组合表演动作
    def full_show(self):
        self.roll_demo()
        self.periodic_roll_demo(period=1.2, duration=3)

# 使用类创建对象并执行动作
if __name__ == "__main__":
    rider = XGO("xgorider")       # 创建机器人对象
    show = RiderTrick(rider)      # 创建表演类对象
    show.full_show()              # 执行完整动作流程

实验说明:

  • 本实验通过 rider_roll() 方法调整机器人机身的倾斜角度,使用不同角度进行机器人倾斜与恢复水平状态的动作演示。
  • 通过 rider_periodic_roll() 方法控制机器人周期性地左右摇摆,可以设置摇摆的周期与持续时间,用于演示机器人自如的动态平衡控制。
  • RiderTrick 类封装了单次调整与周期性摇摆的动作,通过 roll_demo()periodic_roll_demo() 方法提供单独动作执行的功能,并通过 full_show() 方法实现组合动作的连续表演。
  • full_show() 方法中,机器人首先执行单次的左右倾斜动作,然后进行周期性的摇摆,模拟机器人动态展示。
  • 每次执行动作后使用 time.sleep() 函数来控制动作之间的时间间隔,便于观察每个动作的执行过程,确保动作的顺畅展示。

课后作业:

  • 修改RiderTrick类,添加新的方法来控制双轮足的位姿变化。
  • 编写一个脚本,使双轮足执行一个复杂的动作序列,如先向前移动,然后调整姿态,最后进行周期性运动。

通过本课时的学习,学生应该能够掌握如何使用面向对象的方法来控制双轮足的位姿,并理解如何将Python的高级编程技巧应用到实际的项目中。