Open AI作为人工智能领域的领头羊,近年来为全体行业的突飞年夜进做出了巨大贡献。
而人工智能技能的日月牙异,无疑为人形机器人的实际运用供应了前所未有的助推力。

一文搞懂!人形机械人与人工智能研究平台的核心要素有哪些?_机械人_水星 文字写作

人形机器人,在工业制造、商用做事、家庭陪伴等多个领域都具有巨大运用潜力。
得益于人工智能技能的深度融入,人形机器人在语音识别、图像识别、自然措辞处理等方面均取得了长足的进步。
这不仅使得它们在与人类的交互中显得更为自然、顺畅,更极大地丰富了用户体验。
同时,随着人工智能技能的不断完善和创新,人形机器人在实行任务时的自主性和智能化程度也在持续攀升,其商业运用前景和详细落地场景较之前更为明朗、广泛。

过去的两年中,人工智能技能经历了飞速的更新与迭代,其发展速率之快,令人震荡。
同时,人工智能与人形机器人的结合研究也逐渐成为行业最为关注的焦点之一。

▍超强硬件加持,打造多场景运用全能利器

在此背景下,大象机器人推出人形机器人水星Mercury X1。
该产品凭借其出色产品可靠性、高性价比,以及强大批量交付能力等浩瀚上风,迅速成为浩瀚高校和科研院所在进行人形机器人与人工智能结合研究时的首选平台。

水星Mercury X1的工业设计源自瑞典顶级团队,不仅外不雅观精美,更集成了七大核心算法,支持教诲、科研、做事、商用、轻工业等五大运用处景。
其高度灵巧性和多功能性使得它能够轻松应对教诲、科研、做事、商用、轻工业等五大运用处景。

在硬件支撑方面,水星Mercury X1由水星Mercury B1和高性能移动底座组合而成,拥有19个自由度,并配备英伟达Jetson Xavier和Jetson Nano双主控,以及上半身四个独立副控和下半身一个独立副控,确保精准掌握每一个动作。

其移动底座装备了高性能激光雷达、超声波传感器和2D视觉系统,可供应全方位的感知能力。
直驱电机的驱动模式使其最大运行速率达到1.2m/s,最大爬坡角度可达15度,而整机续航力更是高达8小时,可充分知足个人及商业运用需求。

在精密运动掌握方面,水星Mercury X1搭载了大象机器人自研的力源系列谐波模组,该模组采取全新模块化设计,并标配电磁制动刹车、中空走线,具有高精度、高惯量、低自重等特点。
其最大输出扭矩可达80Nm,合营最高可选配的19位分辨率的多圈绝对值编码器,可实现0.6弧分的重复定位精度。
同时,机器臂外壳采取铝合金与碳纤维材质,进一步减轻了整机重量,提升了动力性能。

在智能导航方面,水星Mercury X1采取了前辈RTABMAP 3D与2D合营的SLAM导航技能,具有高效而精准的移动能力。
其单目视觉系统支持多样化的智能识别功能,例如颜色和形状识别,这使得机器臂能够迅速而准确地应对各种任务,具备出色灵巧性和高效率。
而双目视觉系统则能实现室内3D视觉重修,为智能导航和环境理解供应有力支撑。
通过激光雷达感知平面环境,并利用3D摄像头实时构建舆图,水星Mercury X1可实现定位,实现智能导航、避障等操作。

在打算算力方面,水星Mercury X1选用了英伟达Jetson Xavier边缘打算核心作为主控模组。
该模组高达21TOPS的AI性能为处理视觉测距、传感器数据领悟、定位和舆图构建、障碍物检测以及路径方案等繁芜算法供应了强大的算力支持。
这一技能的引入不仅确保了机器人的高效运行,还为具身智能领域的进一步开拓和运用开辟了广阔的空间。

▍核心技能助力,赋能实际场景落地化运用

在超强硬件加持下,水星Mercury X1在双臂协同操作、大模型赋能的措辞指令识别和理解、GPU高阶渲染引擎与VR遥操作以及快速天生合成数据等多个方面展现出卓越性能。

技能亮点

1.智能机器人双臂协同操作

水星Mercury X1采取了前辈的双臂同步协同算法,这一算法使得机器人的双臂能够像人类的双手一样灵巧协作。
通过精确的传感器数据和高速的打算处理,机器人的双臂可以实现高度同步的动作,提升操作效率。
为了避免双臂在操作过程中的相互滋扰,水星Mercury X1还配备了自干涉检测系统。
该系统能够实时监测双臂的位置和姿态,确保它们在实行任务时不会发生碰撞或滋扰。
同时,双臂之间的合营算法也使得机器人在实行繁芜任务时更加得心应手。

2.大模型赋能的措辞指令识别和理解

水星Mercury X1通过集针言音识别技能和GPT模型,实现了对用户语音指令的准确识别和理解。
用户只需说出大略的指令,机器人就能够快速解析并天生相应的Blockly代码,从而实行繁芜的操作。
为了进一步降落编程门槛水星Mercury X1还支持通过自然措辞描述程序功能来一键天生Blockly积木块。
这一功能使得用户无需具备专业的编程知识,也能轻松构建繁芜的程序逻辑。

3. GPU高阶渲染引擎与VR遥操作

为了确保VR遥操作的实时性和流畅性,水星Mercury X1采取了GPU高阶渲染引擎,并利用NVIDIA Xavier平台的Accelerated GStreamer插件实现了GPU加速的***编解码。
这一技能创新大大提高了***流的传输效率和渲染速率。
通过结合高阶渲染引擎和VR技能,水星Mercury X1还可为用户供应沉浸式遥操作体验。
用户可以在虚拟环境中直不雅观地看到机器人的操作过程,并进行实时的掌握和调度。

3.快速天生合成数据

为了知足机器学习和模型演习对大量数据的需求,水星Mercury X1支持快速天生合成数据。
这一功能不仅降落了真实数据采集的难度和本钱,还为研究和开拓职员供应了更丰富、更灵巧的数据来源。
通过前辈的算法和仿照技能,水星Mercury X1能够快速天生具有高度真实感的合成数据。
这些数据可以用于演习和优化各种机器学习模型,从而提高机器人的感知、决策和实行能力。

这些技能亮点不仅授予了水星Mercury X1强大的功能支持,更为其在各种实际运用处景中的卓越表现打下了坚实根本。
在核心技能上风加持下,水星Mercury X1在实际运用中展现出显著竞争上风。

核心技能解析

通过以上的实际运用处景***可以清晰地看到,全体区域被奥妙地划分为“售前”和“售后”两大板块,两者之间设有一个专为机器人通畅的通道。
在“售前”区域内,设有零食吧台和咖啡制作吧台,而“售后”区域则支配了两张桌子。
在实行搬运零食和制作咖啡的任务时,水星Mercury X1展现出了卓越的环境识别能力。
它首先准确地分辨出零食吧台和咖啡制作吧台,然后迅速移动至零食吧台。
通过精准的视觉识别,机器人选择出所需的物品,双臂协同事情,灵巧地夹取物品并放入物料筐。

接着,它轻巧地绕至“售后”区域的入口处,将物品稳稳地搬运到桌面上。
完成任务后,水星Mercury X1又自主地返回到咖啡制作吧台,在双臂的协同操作下,选择得当的角度夹取杯子并闇练地制作咖啡。
咖啡制作完成,机器人平稳地移动到“售后”区域,将咖啡准确地投递至指定的桌号。
全体过程中,水星Mercury X1的操作流畅、精准,充分展示了其高效的事情能力和智能化的特点。

1、工具检测与追踪

运用处景:该部分紧张利用了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.*** \

-r $USER_EXPERIMENT_DIR/experiment_dir_unpruned \

-m $USER_EXPERIMENT_DIR/pretrained_resnet18/pretrained_object_detection_vresnet18/resnet_18.hdf5

Evaluate trainedmodels

!tao model ssd evaluate --gpu_index $GPU_INDEX \

-e $SPECS_DIR/ssd_train_resnet18_kitti.*** \

-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.*** \

-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.*** \

-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.*** \

-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.*** \

--batch_size 16 \

--gen_ds_config

2、机器臂掌握

运用处景:该部分紧张掌握机器臂,从定位物体、抓取到物体的搬运。
包括机器臂的坐标转换、夹爪的掌握和枢纽关头角度的调度。

核心技能:通过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)

3、语音识别

运用处景:该部分是语音识别流程,从录音、保存音频文件到利用语音识别库(如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')

4、自动导航

该部分紧张实现了一个基于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("commandcompleted")#成功到达目标定位

5、二维码识别抓取

这份代码紧张展示了如何利用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)#闭合夹爪,抓取物品

▍A级赛事指定,成为官方赛具实力获认可

值得把稳的是,得益于以上各类显著上风,大象机器人的水星Mercury X1不仅得到了业界的广泛认可,更被国家A级机器人赛事“睿抗机器人开拓者大赛——AI ROBOT创新寻衅赛”选为官方推举品牌。
这一名誉充分表示了大象机器人水星Mercury X1的产品成熟度和其在智能机器人技能领域的领先地位和。

借助水星Mercury X1,参赛选手们将完成一系列竞赛任务,包括机器人运动掌握、Isaac Sim仿真、Replicator合成数据天生、舆图构建、模型演习以及实际场景运用等。

竞赛任务

任务1:机器人运动掌握

选手须要通过发布运动指令或运行掌握代码实现对机器人的大略运动掌握。

任务2:Isaac Sim仿真

Isaac Sim 是由 NVIDIA 开拓的一个机器人仿照平台,紧张用于机器人仿真和人工智能的演习。
选手须要利用现场供应的模型文件进行机器人仿真。

任务3:Replicator合成数据天生

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

任务4:舆图构建

选手须要在比赛现场环境中掌握机器人运动采集数据、构建舆图

任务5:模型演习

选手须要在TAO中利用Replicator天生的数据集进行模型演习

任务6:场景实现

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

这些任务不仅磨练了选手们的技能水平,也充分展示了水星Mercury X1在机器人技能领域的全面性和前辈性。

▍关于大象机器人

由英、美、澳等外洋学成归来的爱国人士共同创立大象机器人,自成立便奠定了其国际化视野与自主研发创新根本,得到深创投、真格等一线基金投资。
通过与墨尔今年夜学、俄罗斯国立核能研究大学、华南理工大学等高校建立联合实验室打破关键技能难题,大象机器人致力于将前辈机器人技能引入海内,帮助整体供应链国产替代。

在雄厚成本支持下,大象机器人经由多年的研发与实践已成功研发出一系列协作机器人办理方案,覆盖从教诲领域到专业级别的全方位运用。
这些办理方案在市场上广受好评,赢得了浩瀚顶尖机构的青睐与赞誉,并为各行各业带来了显著的便利与效益。

自创立至今,大象机器人八年来始终致力于推动机器人行业的持续发展,并为此贡献了自己的力量。
随着大象机器人对前沿科技领域的不断探索以及对前辈机器人产品的持续开拓,相信在未来大象机器人将连续引领机器人技能的创新潮流,推动生产办法与教诲模式的未来变革,为人类社会的进步作出更加卓越的贡献。