0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

人形机器人场景应用全解析,2024睿抗 AI ROBOT创新挑战赛火热报名中!

大象机器人科技 来源:大象机器人科技 作者:大象机器人科技 2024-05-14 10:49 次阅读

人工智能AI)已成为推动科技革命和产业变革的关键力量。随着大模型等AIGC技术的迅猛发展,AI正深刻改变我们的生活并重新定义生产方式。越来越多人期望将AI技术从纯粹的思维和计算扩展到与物理世界的互动中,即发展具身智能

为了推广并深化具身智能的创新和应用,“睿抗机器人开发者大赛——AI ROBOT创新挑战赛”应用而生,大赛旨在激发全国高校学生的研究热情,探索AI与机器人技术的融合,展示尖端技术成果。

这一平台不仅可以促进技术交流和学习,更可以通过竞赛提高中国大学生的科技实践能力,推动教育与产业的深度融合,为机器人产业注入新活力。

本届睿抗机器人开发者大赛,特选用大象机器人公司的轮式人形机器人作为官方赛具。

这款机器人以其创新的设计和卓越的性能,在全球范围内获得了广泛关注和认可。其轮式移动底盘结合双臂协作机械臂,赋予了其卓越的灵活性和运动能力,使其能够完成各种复杂的动作和任务。

通过本次大赛,参赛者有机会深入了解和应用机器人动作控制、视觉处理、大语言模型以及人机交互等前沿技术,这不仅能够提升他们的技术能力,也将推动机器人技术的创新发展。

技术亮点

AI ROBOT

智能机器人双臂协同操作

大模型赋能机器人实现人类语言指令识别和理解

基于GPU的高阶渲染引擎,支持高保真传感器数据输出的物理仿真,实现机器人快速开发

快速生成合成数据降低数据采集难度

竞赛任务

AI ROBOT

任务1:机器人运动控制

选手需要通过发布运动指令或运行控制代码实现对机器人的简单运动控制。

任务2:Isaac Sim仿真

Isaac Sim 是由 NVIDIA 开发的一个机器人模拟平台,主要用于机器人仿真和人工智能的训练。选手需要使用现场提供的模型文件进行机器人仿真。

任务3:Replicator合成数据生成

选手需要使用平台提供的待抓取数字资产文件在Isaac Sim中应用Replicator生成合成数据。

任务4:地图构建

选手需要在比赛现场环境中控制机器人运动采集数据、构建地图

任务5:模型训练

选手需要在TAO中利用Replicator生成的数据集进行模型训练

任务6:场景实现

选手需要与机器人通过语音交互、多轮对话,进行点餐,点餐完成后机器人前往茶水区执行对应任务,任务完成后,机器人把餐食送到办公区指定区域。

wKgZomZCzV2AWntGAAfPSa65weM446.png

核心技术解析

AI ROBOT

对象检测与追踪

应用场景:该部分主要使用了NVIDIA的TAO Toolkit进行对象检测模型的训练、评估、剪枝和重训练。示范了如何使用预训练的ResNet-18模型对KITTI数据集进行训练和评估。

核心技术:包括深度学习模型训练、模型剪枝以提高效率、以及使用ONNX格式导出模型以便在不同平台上部署。

Run TAO training

!tao model ssd train --gpus 1 --gpu_index $GPU_INDEX 
   -e $SPECS_DIR/ssd_train_resnet18_kitti.txt 
   -r $USER_EXPERIMENT_DIR/experiment_dir_unpruned 
   -m $USER_EXPERIMENT_DIR/pretrained_resnet18/pretrained_object_detection_vresnet18/resnet_18.hdf5  

Evaluate trained models

!tao model ssd evaluate --gpu_index $GPU_INDEX 
   -e $SPECS_DIR/ssd_train_resnet18_kitti.txt 
   -m $USER_EXPERIMENT_DIR/experiment_dir_unpruned/weights/ssd_resnet18_epoch_$EPOCH.hdf5

Prune trained models​​​​​​​

!tao model ssd prune --gpu_index $GPU_INDEX 
   -m $USER_EXPERIMENT_DIR/experiment_dir_unpruned/weights/ssd_resnet18_epoch_$EPOCH.hdf5 
   -o $USER_EXPERIMENT_DIR/experiment_dir_pruned/ssd_resnet18_pruned.hdf5 
   -eq intersection 
   -pth 0.1   

Retrain pruned models​​​​​​​

!tao model ssd train --gpus 1 --gpu_index $GPU_INDEX 
   -e $SPECS_DIR/ssd_retrain_resnet18_kitti.txt 
   -r $USER_EXPERIMENT_DIR/experiment_dir_retrain 
   -m $USER_EXPERIMENT_DIR/experiment_dir_pruned/ssd_resnet18_pruned.hdf5  

Evaluate retrained model​​​​​​​

!tao model ssd evaluate --gpu_index $GPU_INDEX 
   -e $SPECS_DIR/ssd_retrain_resnet18_kitti.txt 
   -m $USER_EXPERIMENT_DIR/experiment_dir_retrain/weights/ssd_resnet18_epoch_$EPOCH.hdf5

Visualize inferences​​​​​​​

!tao model ssd inference --gpu_index $GPU_INDEX -i $DATA_DOWNLOAD_DIR/test_samples 
   -e $SPECS_DIR/ssd_retrain_resnet18_kitti.txt 
   -m $USER_EXPERIMENT_DIR/experiment_dir_retrain/weights/ssd_resnet18_epoch_$EPOCH.hdf5 
   -r $USER_EXPERIMENT_DIR/

Model Export​​​​​​​

!tao model ssd export --gpu_index $GPU_INDEX 
   -m $USER_EXPERIMENT_DIR/experiment_dir_retrain/weights/ssd_resnet18_epoch_$EPOCH.hdf5 
   -o $USER_EXPERIMENT_DIR/export/ssd_resnet18_epoch_$EPOCH.onnx 
   -e $SPECS_DIR/ssd_retrain_resnet18_kitti.txt 
   --batch_size 16 
   --gen_ds_config

机械臂控制

应用场景:该部分主要控制机械臂,从定位物体、抓取到物体的搬运。包括机械臂的坐标转换、夹爪的控制和关节角度的调整。

核心技术:通过Python代码控制机械臂的动作,使用转换函数处理机器视觉系统与机械臂之间的坐标转换,以及实时反馈控制机械臂的精确位置。​​​​​​​

# 初始化一个MyCobot对象
mc = MyCobot(PI_PORT, PI_BAUD)

# 相机坐标(x,y,z)转换为机械臂目标点
cup_target = transform_point(cup_x,cup_y,cup_z)
# 打开夹爪
mc.set_gripper_state(0, 70)
time.sleep(2)
# 机械臂头部到达目标点
mc.send_coords(cup_target, 30, 1)
time.sleep(1)
# 控制机械臂上抬避免打到物体
angle_datas = mc.get_angles()
print('angle_datas:',angle_datas)
mc.send_angle(Angle.J2.value,angle_datas[1]-5,20)
time.sleep(2)
# 机械臂头部再次到达目标点
mc.send_coords(cup_target, 30, 1)
time.sleep(3)
# 抓取
mc.set_gripper_state(1, 70)
time.sleep(3)
# 控制关节2运动,将物品拿起
angle_datas = mc.get_angles()
mc.send_angle(Angle.J2.value,angle_datas[1]-23,20)
time.sleep(2)

语音识别

应用场景:该部分是语音识别流程,从录音、保存音频文件到使用语音识别库(如SpeechRecognition)进行语音到文本的转换。

核心技术:使用PyAudio进行音频的捕捉和处理,利用SpeechRecognition库进行本地语音识别。​​​​​​​

#语音录制
def record():
   p = pyaudio.PyAudio()

   stream = p.open(format=FORMAT,
                   channels=CHANNELS,
                   rate=RATE,
                   input=True,
                   frames_per_buffer=CHUNK)

   print("请点单...")
   frames = []
   for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
       data = stream.read(CHUNK)
       frames.append(data)
   print("点单结束")
   stream.stop_stream()
   stream.close()
   p.terminate()
   wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
   wf.setnchannels(CHANNELS)
   wf.setsampwidth(p.get_sample_size(FORMAT))
   wf.setframerate(RATE)
   wf.writeframes(b''.join(frames))
   wf.close()
   
#语音识别
def detect_voice():
   r = sr.Recognizer()
   test = sr.AudioFile(WAVE_OUTPUT_FILENAME)
   with test as source:
       audio = r.record(source)
   return r.recognize_sphinx(audio, language='zh-cn')

自动导航

该部分主要实现了一个基于ROS(机器人操作系统)的自动导航系统,用于指导机器人在预设环境地图中自主移动到指定位置。以下是该代码实现的技术和场景概括:

初始化和配置:代码中首先初始化了一个名为map_navigation的ROS节点,这是进行任何ROS通信前的必要步骤。

设置了三个发布器,分别用于发送速度指令(/cmd_vel)、设置初始位置(/initialpose)和取消导航目标(/move_base/cancel)。

导航到目标点:通过定义moveToGoal函数,代码实现了机器人到达特定目标位置的功能。这涉及到与move_base动作服务器的交互,该服务器负责处理路径规划和导航。

动作客户端通过发送一个包含目标位置和姿态的MoveBaseGoal到move_base服务器,从而指示机器人移动到指定位置。

目标位置的设定和导航执行:目标位置和姿态通过参数(xGoal, yGoal, orientation_z, orientation_w)传递给moveToGoal函数。

机器人在收到目标位置后,动作客户端等待结果,判断是否成功到达目标。

结果处理:根据动作客户端返回的状态,判断机器人是否成功到达目标位置,并进行相应的日志记录和反馈。​​​​​​​

import rospy
import actionlib
import sys
from geometry_msgs.msg import PoseWithCovarianceStamped
from move_base_msgs.msg import MoveBaseAction, MoveBaseGoal
from actionlib_msgs.msg import *
from actionlib_msgs.msg import GoalID
from geometry_msgs.msg import Point
from geometry_msgs.msg import Twist


class MapNavigation:
   def __init__(self):
       self.goalReached = None
       rospy.init_node('map_navigation', anonymous=False)  # 初始化 ROS 节点
       self.pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)  # 发布速度指令的发布器
       self.pub_setpose = rospy.Publisher('/initialpose', PoseWithCovarianceStamped, queue_size=10)  # 发布设置初始姿态的发布器
       self.pub_cancel = rospy.Publisher('/move_base/cancel', GoalID, queue_size=10)  # 发布取消目标的发布器

   # move_base
   def moveToGoal(self, xGoal, yGoal, orientation_z, orientation_w):       # 移动到目标点
       ac = actionlib.SimpleActionClient("move_base", MoveBaseAction)      # 创建动作客户端
       while (not ac.wait_for_server(rospy.Duration.from_sec(5.0))):
           sys.exit(0)

       goal = MoveBaseGoal()
       goal.target_pose.header.frame_id = "map"
       goal.target_pose.header.stamp = rospy.Time.now()
       goal.target_pose.pose.position = Point(xGoal, yGoal, 0)
       goal.target_pose.pose.orientation.x = 0.0
       goal.target_pose.pose.orientation.y = 0.0
       goal.target_pose.pose.orientation.z = orientation_z
       goal.target_pose.pose.orientation.w = orientation_w

       rospy.loginfo("Sending goal location ...")
       ac.send_goal(goal)                          # 发送目标位置

       ac.wait_for_result(rospy.Duration(600))             # 设置超时时间

       if (ac.get_state() == GoalStatus.SUCCEEDED):            # 判断是否成功到达目标
           rospy.loginfo("You have reached the destination")
           return True
       else:
           rospy.loginfo("The robot failed to reach the destination")
           return False


map_navigation = MapNavigation()  # 初始化导航
x_goal, y_goal, orientation_z, orientation_w = (0.0598191, -1.81509, 0.999547, 0.024365)  # 设置需要导航到达的点位
flag_feed_goalReached = map_navigation.moveToGoal(x_goal, y_goal, orientation_z, orientation_w)  # 开始导航,并返回是否到达目标点位
if flag_feed_goalReached:
   print("command completed")  # 成功到达目标定位

二维码识别抓取

这份代码主要展示了如何使用Python控制大象机器人的Mercury系列机械臂进行二维码识别和基于位置的物体操作。以下是该代码实现的技术和场景概括:

硬件设置与初始化:代码首先初始化Mercury机械臂,设置其与计算机的通讯端口

同时设置和配置UVC相机,加载相机的校准参数(内参和畸变系数),这些参数用于后续图像处理和位置计算。

图像捕捉与二维码识别:使用UVC相机捕捉实时图像帧。

应用stag.detectMarkers方法识别图像中的二维码并获取其角点信息,这是二维码位置识别的关键步骤。

二维码位置计算与机械臂定位:根据捕获的二维码角点及相机校准参数,计算二维码相对于相机的空间坐标。

通过手眼标定技术(Eyes_in_hand_right方法),将二维码的相对坐标转换为机械臂基座坐标系中的位置。

控制机械臂移动到计算出的二维码位置。

交互执行:机械臂移动到二维码所在位置后,通过控制夹爪的开闭来实现物体的抓取操作。

from pymycobot import Mercury
from uvc_camera import UVCCamera
import stag
import numpy as np  # 导入需要的库

mr = Mercury("/dev/ttyACM2")  # 设置右臂端口号

mr.send_angles([92.78, -3.19, 0.0, -135.63, -112.56, 70.86, -49.26], 30)  # 将机械臂移至二维码区域
camera_params = np.load("src/camera_params.npz")  # 读取相机配置文件
mtx, dist = camera_params["mtx"], camera_params["dist"]  # 获取相机内参和畸变系数
camera = UVCCamera(4, mtx, dist)  # 设置相机id
camera.update_frame()  # 更新图像帧
frame = camera.color_frame()  # 获取彩色图像帧数据
(corners, ids, rejected_corners) = stag.detectMarkers(frame, 11)  # 根据图像,获取二维码角点
marker_pos_pack = calc_markers_base_position(corners, ids, 32, mtx,
                                            dist)  # 根据角点和相机内参、畸变系数,获取二维码相对于相机的坐标
cur_coords = np.array(mr.get_base_coords())  # 获取机械臂末端坐标
cur_bcl = cur_coords.copy()
cur_bcl[-3:] *= (np.pi / 180)  # 将机械臂末端旋转角度转为弧度
right_fact_bcl = Eyes_in_hand_right(cur_bcl, marker_pos_pack)  # 通过手眼标定获取二维码相对于基体的坐标

right_target_coords = cur_coords.copy()
right_target_coords[0] = right_fact_bcl[0]
right_target_coords[1] = right_fact_bcl[1]
right_target_coords[2] = right_fact_bcl[2]
mr.send_base_coords(right_target_coords, 30)  # 控制机械臂移动至二维码处

mr.set_gripper_value(0, 100)  # 闭合夹爪,抓取物品

报名参赛

AI ROBOT

报名地址

https://www.raicom.com.cn

wKgZomZC0KmAPHzXAAA2Y-ORcQQ508.png

注:进入网站,成功注册之后在“赛事报名”中找到“AI ROBOT创新挑战赛”项目进行报名。

参赛对象

本科组:全日制高校在读学生(本科、研究生)

高职组:全日制高校在读学生(高职)

参赛要求

1) 本赛项为团体赛,以院校为单位组队参赛,本科组、高组须为高校在籍学生和在职老师,不得跨校组队。

2) 每个赛队由2-3名参赛学生(设队长1名)和1-2名指导老师。

3)比赛过程中,参赛者需要在规定的时间内完成所选赛项的任务。这些任务可能包括机器人的设计、编程、调试以及实际运行等。

参赛时间(省赛选拔赛)

报名截止时间:2024年5月30日(最晚截止时间)

区域赛选拔时间:2024年7月10日— 7月20日

晋级公示:2024年7月25日(公示时间不少于 5 个工作日)

注:各区域赛比赛时间和地点等安排以区域赛通知为准。

随着科技的不断进步,我们相信通过此类竞赛的平台,能够有效促进科技与教育的深度融合,激发更多青年才俊在人工智能和机器人领域的探索热情。

我们期待看到来自各地的优秀参赛者在本届大赛中展示出色的技术创新和解决方案,共同推动全球机器人技术向更高水平发展。让我们携手前行,共创智能科技的美好未来。


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    210

    文章

    28178

    浏览量

    206302
  • AI
    AI
    +关注

    关注

    87

    文章

    30069

    浏览量

    268331
  • 人工智能
    +关注

    关注

    1791

    文章

    46816

    浏览量

    237450
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84438
  • 机械臂
    +关注

    关注

    12

    文章

    509

    浏览量

    24485
收藏 人收藏

    评论

    相关推荐

    50万奖金池!开放原子大赛——第二届OpenHarmony创新应用挑战赛正式启动

    位大咖导师指导:为你答疑解惑,启发灵感 各位开发者们,你们准备好了吗?运用OpenHarmony突破极限,用创新定义未来。 报名链接: 第二届OpenHarmony创新应用挑战赛-开放
    发表于 10-24 15:40

    LabVIEW挑战赛正式开赛,台北总决赛等着你!

    挑战赛亚军:三万人民币 整LabVIEW 挑战赛季军:一万民币 整LabVIEW 挑战赛佳作(共三名):可获得价值人民币 5000 元的奖品以上获奖
    发表于 05-23 10:56

    小小班机器人创新挑战赛走进武汉

    早期入驻项目“小小班”机器人创新团队获第二名,直接晋级全球机器人创新挑战赛的总决赛及武汉2017创业星光大道年度总决赛。 本次大赛组委会相关
    发表于 05-05 09:30

    海渡学院虚拟仿真排位3月开赛,现金大奖等你挑战

    `海渡学院虚拟仿真排位3月开赛,火热报名,每月现金大奖等你拿!工业机器人爱好者均可报名参赛!
    发表于 02-28 14:15

    ICRA 2018 DJI RoboMaster 人工智能挑战赛报名正式启动

    、东北大学等。经过3个比赛日的激烈角逐,东北大学获得总冠军。如今,ICRA 2018 DJI RoboMaster 人工智能挑战赛报名正式启动!让我们在这里,一同感受机器人尖端技术的科技魅力,触碰人工智能
    发表于 05-15 17:21

    AI语音智能机器人开发实战

    ) "AI语音识别机器人"网络通信编码与实现(7)AI语音识别解析的软硬件实现现在凡报名本次直播课程,扫下方二维码进群,在朋友圈转发本次直播
    发表于 01-04 11:48

    等个有“源”|OpenHarmony 成长计划学生挑战赛报名启动

    ,涵盖贫困、不平等、气候、环境退化、繁荣以及和平与正义等方面。本大赛面向所有在校大学生,注册、认证即可报名参与成长计划学生挑战赛,若组团参赛则人数不得超过 6 。本大赛为开发者提供 OpenHarmony 开源项目的实践机会及
    发表于 06-13 10:22

    等个有“源”|OpenHarmony 成长计划学生挑战赛报名启动

    面临的全球挑战,涵盖贫困、不平等、气候、环境退化、繁荣以及和平与正义等方面。本大赛面向所有在校大学生,注册、认证即可报名参与成长计划学生挑战赛,若组团参赛则人数不得超过6。本大赛为开
    发表于 06-13 11:24

    高动态人形机器人“夸父”通过OpenHarmony 3.2 Release版本兼容性测评

    深圳开鸿数字产业发展有限公司(以下简称”深开鸿“)OpenHarmony生态建设能力和在新兴行业领域的技术创新实力,也标志着OpenHarmony在新兴行业领域又向前迈进了一步。 夸父人形机器人由深开
    发表于 12-20 09:31

    JRC2018京东X机器人挑战赛启动仪式在京举行

    通过2018京东机器人挑战赛,京东将汇聚智能机器人各种相关专业的高校队伍和创业团队,培育和挖掘更多人才,帮助参赛队伍进行技术孵化。未来,融入了创新能力的智能
    的头像 发表于 06-28 15:19 5426次阅读

    2019机器人世界杯火神队斩获AdultSize的Technical Challenge 技术挑战赛亚军

    优必选已经连续三年和清华大学组队参加RoboCup,2017年,火神队获得人形机器人Adult Size组技术挑战赛亚军。2018年,火神队也获得了人形
    的头像 发表于 07-27 09:05 4066次阅读

    中国在国际机器人挑战赛占头筹 并获得25万美元奖金

    勇夺第一项无人机自主控制挑战赛冠军,并获得25万美元奖金。这也是北京理工大学既2017年获得首届扎耶德国际机器人挑战赛该项目冠军后的成功卫冕。
    发表于 02-28 08:52 591次阅读

    奖金高达26万!AIOps挑战赛报名火热招募

    自2023年CCF国际AIOps挑战赛开放报名以来,组委会已收到数百名选手的踊跃报名。此次比赛设置的奖项有:一等奖1名,奖金10万;二等奖2名,奖金5万;三等奖3名,奖金2万。目前挑战赛
    的头像 发表于 08-16 12:12 623次阅读

    OpenHarmony人形机器人创新挑战赛来啦

    12月28日,第二十六届中国机器人及人工智能大赛人形机器人创新挑战赛在苏州正式发布,首次结合
    的头像 发表于 12-30 08:32 1030次阅读
    OpenHarmony<b class='flag-5'>人形</b><b class='flag-5'>机器人</b><b class='flag-5'>创新</b><b class='flag-5'>挑战赛</b>来啦

    人形机器人场景应用联盟正式成立

    日前,在“2024首届人形机器人场景应用峰会”上,人形机器人
    的头像 发表于 08-19 11:17 611次阅读