“优必选“杯2021中国机器人技能大赛--赛后总结

前言

这里是果力成,闲下来想起自己去年参加的一个"优必选"杯2021年中国机器人技能大赛,因为当时忙于校里其他事,赛后也没做总结.现在才想起来回顾一下,记录项目过程中遇到的问题和小伙伴们一起奋斗的经历,算是赛后总结了.


参赛所需

  1. 工具: 树莓派 YanShee机器人
  2. 语言: python Linux

YanShee官网
YanShee是优必选教育面向高中和大学生开发的一款开源人形机器人教学平台。优必选yanshee机器人采用Raspberry Pi+STM32开放式硬件平台架构,配套多种开源传感器包,提供专业开源学习软件,支持BLockly、Python、Java、C/C++等多种编程语言学习及多种AI应用的学习和开发。
在这里插入图片描述

此次我们所参与的比赛也是来自主办方提供的机器人

参赛团队

我们团队由学校两名指导老师以及三名学生组成,我自然就是其中一员了.哈哈哈哈,在比赛前期去参加我们工学院技能展示月活动,不过活动上有趣的玩意儿实在不少,避障迷宫小车,F165-U室内编队无人机,激光切割机等等,属实长了见识.


项目过程

  1. 机器学习
    此次大赛有很多分支项目,而我们参加的正是机器学习项目.机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能。
  2. 项目开发
    运用开发指南,python语言编写程序对YanShee机器人进行调试,在树莓派内执行,达到机器人
    行走
    转向
    AprilTag视觉定位
    物体识别
    语音对话
    肢体动作模仿
    等功能.
  3. 开发工具: MobaXterm或者Xshell; VNC viewer; filezilla;
    PyCharm.
下面贴出机器人调试的部分相关代码

AprilTag视觉定位

import YanAPI
import time

YanAPI.start_aprilTag_recognition(tags=[{
    
    'id': 1, 'size': 0.06}])
while True:
    ret = YanAPI.get_aprilTag_recognition_status()
    if ret['data']['AprilTagStatus'] == []:
        print('no find tags')
        time.sleep(1)
    else:
        result = ret['data']['AprilTagStatus'][0]
        if result['position-z'] <= 0.20:
            break
        print(result['position-x'] < -0.06)
        if result['position-x'] < -0.06:  # Tag在机器人右侧
            YanAPI.sync_play_motion(name='walk', direction='left', speed='slow', repeat=2)

            # put_motions("walk", "right", "slow", 2)
            time.sleep(1)

        elif result['position-x'] > 0.06:
            YanAPI.sync_play_motion(name='walk', direction='right', speed='slow', repeat=2)

            # put_motions("walk", "left", "slow", 2)
            time.sleep(1)
        else:
            YanAPI.sync_play_motion(name='walk', direction='forward', speed='normal',repeat=1)
            YanAPI.sync_play_motion(name="reset")


这里的AprilTag标识追踪,我们要达到的目的是让机器人在摄像头检测到标识后向前行走,到设定的距离后停止.在次过程中,因为机器人本身调试过多后关节处的舵机有时会产生误差,导致走偏,所以我们在这个问题上陷了许久,机器人都来回换了三个.所幸后续也解决了.

walk

import YanAPI
import time
def tt():
    ip_addr = "192.168.43.185"
    YanAPI.yan_api_init(ip_addr)
    res = YanAPI.start_play_motion(name="walk",direction="forward",speed="normal",repeat=3)
    time.sleep(10)
    print(res)
    YanAPI.sync_play_motion(name="reset") #做一个其他的motion可以打断walk

    res1=YanAPI.sync_do_color_recognition()
    time.sleep(5)
    print(res1)
    color_dict={
    
    "no color detected":"没有检测到颜色","green":"绿","red":"红","blue":"蓝","yellow":"黄"}
    result=res1["data"]["color"][0]["name"]
    for key in color_dict:
        if(key==result):
            color_res1=color_dict[key]
        print("\n识别到颜色为:"+color_res1+"色")

if __name__ == '__main__':
    tt()

dance

def m():
    ip_addr = "192.168.43.148"
    YanAPI.yan_api_init(ip_addr)
    res=YanAPI.start_play_motion(name="LittleApple")
    print(res)
    time.sleep()
    print(m)

    res=YanAPI.start_play_motion(name="Stop")
    print(res)

if __name__ == '__main__':
        m()

比赛流程

  1. 机器人走出启动区右转,进行物体识别
    在这里插入图片描述
  2. 机器人后退左转回到主路线,进行标识识别追踪前进到指定位置
    在这里插入图片描述
  3. 机器人转向摆正到指定区域,进行肢体动作模仿
    在这里插入图片描述

取得成绩

最终比赛结果也是比较不错,在与全国许多高校竞争中获得了比赛的冠军.老师还请我们整了一顿大餐,不亦乐乎~
在这里插入图片描述


项目小结

队长秦同学每天下课带着我们往实验室坚持"上班",常常下午忙到晚上才能回宿舍,与我们同参加比赛的另外赛项人形形协作的小伙伴也取得了不错的奖项.不得不说,那段时间自由支配的时间确实很少,但也从中学到了很多东西,这值得十分开心的.

"追求的后面没有句号,人生也永远没有太晚的开始,只要你听从内心的召唤,勇于迈出第一步,人生的风景就永远是新奇的,美妙的."

猜你喜欢

转载自blog.csdn.net/qq_58372242/article/details/125355685