机器人跳舞
OriginMan内置动作
大家通过前面的诸多案例已经体验了OriginMan的运动天赋,其实OriginMan内置了几十种动作,大家都可以快速使用起来。
动作列表与实现方法
动作名称 | 中文描述 |
---|---|
stand | 立正 |
go_forward | 前进 |
back_fast | 后退 |
left_move_fast | 左移 |
right_move_fast | 右移 |
push_ups | 俯卧撑 |
sit_ups | 仰卧起坐 |
turn_left | 左转 |
turn_right | 右转 |
wave | 挥手 |
bow | 鞠躬 |
squat | 下蹲 |
chest | 庆祝 |
left_shot_fast | 左脚踢 |
right_shot_fast | 右脚踢 |
wing_chun | 永春 |
left_uppercut | 左勾拳 |
right_uppercut | 右勾拳 |
left_kick | 左侧踢 |
right_kick | 右侧踢 |
stand_up_front | 前跌倒起立 |
stand_up_back | 后跌倒起立 |
twist | 扭腰 |
stand_slow | 立正 |
stepping | 原地踏步 |
jugong | 鞠躬 |
weightlifting | 举重 |
既然有这么多种动作,那么该如何让OriginMan表演给我们看呢?
不妨运行以下指令快速来体验:
运行后,大家看到OriginMan给我们表演了一个鞠躬的动作,那它是如何实现以及如何切换为其他动作呢?
#!/usr/bin/env python3
# encoding:utf-8
import time
import hiwonder.ActionGroupControl
class RobotActionController:
def __init__(self):
pass
def run_action_group(self, action_group_name, wait_time=5):
"""
运行指定的动作组
:param action_group_name: 动作组文件名(不包含后缀.dfca)
:param wait_time: 执行完动作组后的等待时间(秒),默认5秒
"""
try:
hiwonder.ActionGroupControl.runActionGroup(action_group_name)
# 根据动作组的预期执行时间等待
print(f"执行动作组: {action_group_name}")
time.sleep(wait_time) # 等待动作组完成
except Exception as e:
print(f"执行动作组 {action_group_name} 时出错: {e}")
if __name__ == "__main__":
controller = RobotActionController()
# 先执行 'stand' 动作组
controller.run_action_group("stand")
# 然后执行 'bow' 动作组
controller.run_action_group("bow")
不妨看到这段代码,大家只需要调用controller.run_action_group方法即可,通过替换括号内的动作,大家就可以体验诸多OriginMan的动作啦!
和机器人一起跳舞吧!
不难发现,这些好像只是让机器人做一些单一的动作,那有没有可能把动作连贯起来给大家表演一个舞蹈呢?
接下来请运行如下指令:
此时大家看到OriginMan已经开始舞动起来啦,快来和OriginMan一起玩耍吧!
Attention
OriginMan的动作组内置于/userdata/dev_ws/src/originman/driver/ActionGroups,其中16-24都是舞蹈动作,大家快快体验吧!