人工智能(AI)已成為推動科技革命和產(chǎn)業(yè)變革的關(guān)鍵力量。隨著大模型等AIGC技術(shù)的迅猛發(fā)展,AI正深刻改變我們的生活并重新定義生產(chǎn)方式。越來越多人期望將AI技術(shù)從純粹的思維和計算擴展到與物理世界的互動中,即發(fā)展具身智能。
為了推廣并深化具身智能的創(chuàng)新和應用,“???a href="http://qiaming.cn/soft/data/42-101/" target="_blank">機器人開發(fā)者大賽——AI ROBOT創(chuàng)新挑戰(zhàn)賽”應用而生,大賽旨在激發(fā)全國高校學生的研究熱情,探索AI與機器人技術(shù)的融合,展示尖端技術(shù)成果。
這一平臺不僅可以促進技術(shù)交流和學習,更可以通過競賽提高中國大學生的科技實踐能力,推動教育與產(chǎn)業(yè)的深度融合,為機器人產(chǎn)業(yè)注入新活力。
本屆??箼C器人開發(fā)者大賽,特選用大象機器人公司的輪式人形機器人作為官方賽具。
這款機器人以其創(chuàng)新的設(shè)計和卓越的性能,在全球范圍內(nèi)獲得了廣泛關(guān)注和認可。其輪式移動底盤結(jié)合雙臂協(xié)作機械臂,賦予了其卓越的靈活性和運動能力,使其能夠完成各種復雜的動作和任務。
通過本次大賽,參賽者有機會深入了解和應用機器人動作控制、視覺處理、大語言模型以及人機交互等前沿技術(shù),這不僅能夠提升他們的技術(shù)能力,也將推動機器人技術(shù)的創(chuàng)新發(fā)展。
技術(shù)亮點
AI ROBOT
智能機器人雙臂協(xié)同操作
大模型賦能機器人實現(xiàn)人類語言指令識別和理解
基于GPU的高階渲染引擎,支持高保真傳感器數(shù)據(jù)輸出的物理仿真,實現(xiàn)機器人快速開發(fā)
快速生成合成數(shù)據(jù)降低數(shù)據(jù)采集難度
競賽任務
AI ROBOT
任務1:機器人運動控制
選手需要通過發(fā)布運動指令或運行控制代碼實現(xiàn)對機器人的簡單運動控制。
Isaac Sim 是由 NVIDIA 開發(fā)的一個機器人模擬平臺,主要用于機器人仿真和人工智能的訓練。選手需要使用現(xiàn)場提供的模型文件進行機器人仿真。
任務3:Replicator合成數(shù)據(jù)生成
選手需要使用平臺提供的待抓取數(shù)字資產(chǎn)文件在Isaac Sim中應用Replicator生成合成數(shù)據(jù)。
任務4:地圖構(gòu)建
選手需要在比賽現(xiàn)場環(huán)境中控制機器人運動采集數(shù)據(jù)、構(gòu)建地圖
任務5:模型訓練
選手需要在TAO中利用Replicator生成的數(shù)據(jù)集進行模型訓練
任務6:場景實現(xiàn)
選手需要與機器人通過語音交互、多輪對話,進行點餐,點餐完成后機器人前往茶水區(qū)執(zhí)行對應任務,任務完成后,機器人把餐食送到辦公區(qū)指定區(qū)域。

核心技術(shù)解析
AI ROBOT
對象檢測與追蹤
應用場景:該部分主要使用了NVIDIA的TAO Toolkit進行對象檢測模型的訓練、評估、剪枝和重訓練。示范了如何使用預訓練的ResNet-18模型對KITTI數(shù)據(jù)集進行訓練和評估。
核心技術(shù):包括深度學習模型訓練、模型剪枝以提高效率、以及使用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
機械臂控制
應用場景:該部分主要控制機械臂,從定位物體、抓取到物體的搬運。包括機械臂的坐標轉(zhuǎn)換、夾爪的控制和關(guān)節(jié)角度的調(diào)整。
核心技術(shù):通過Python代碼控制機械臂的動作,使用轉(zhuǎn)換函數(shù)處理機器視覺系統(tǒng)與機械臂之間的坐標轉(zhuǎn)換,以及實時反饋控制機械臂的精確位置。???????
# 初始化一個MyCobot對象 mc = MyCobot(PI_PORT, PI_BAUD) # 相機坐標(x,y,z)轉(zhuǎn)換為機械臂目標點 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) # 控制關(guān)節(jié)2運動,將物品拿起 angle_datas = mc.get_angles() mc.send_angle(Angle.J2.value,angle_datas[1]-23,20) time.sleep(2)
應用場景:該部分是語音識別流程,從錄音、保存音頻文件到使用語音識別庫(如SpeechRecognition)進行語音到文本的轉(zhuǎn)換。
核心技術(shù):使用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("點單結(jié)束")
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')
自動導航
該部分主要實現(xiàn)了一個基于ROS(機器人操作系統(tǒng))的自動導航系統(tǒng),用于指導機器人在預設(shè)環(huán)境地圖中自主移動到指定位置。以下是該代碼實現(xiàn)的技術(shù)和場景概括:
初始化和配置:代碼中首先初始化了一個名為map_navigation的ROS節(jié)點,這是進行任何ROS通信前的必要步驟。
設(shè)置了三個發(fā)布器,分別用于發(fā)送速度指令(/cmd_vel)、設(shè)置初始位置(/initialpose)和取消導航目標(/move_base/cancel)。
導航到目標點:通過定義moveToGoal函數(shù),代碼實現(xiàn)了機器人到達特定目標位置的功能。這涉及到與move_base動作服務器的交互,該服務器負責處理路徑規(guī)劃和導航。
動作客戶端通過發(fā)送一個包含目標位置和姿態(tài)的MoveBaseGoal到move_base服務器,從而指示機器人移動到指定位置。
目標位置的設(shè)定和導航執(zhí)行:目標位置和姿態(tài)通過參數(shù)(xGoal, yGoal, orientation_z, orientation_w)傳遞給moveToGoal函數(shù)。
機器人在收到目標位置后,動作客戶端等待結(jié)果,判斷是否成功到達目標。
結(jié)果處理:根據(jù)動作客戶端返回的狀態(tài),判斷機器人是否成功到達目標位置,并進行相應的日志記錄和反饋。???????
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 節(jié)點
self.pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10) # 發(fā)布速度指令的發(fā)布器
self.pub_setpose = rospy.Publisher('/initialpose', PoseWithCovarianceStamped, queue_size=10) # 發(fā)布設(shè)置初始姿態(tài)的發(fā)布器
self.pub_cancel = rospy.Publisher('/move_base/cancel', GoalID, queue_size=10) # 發(fā)布取消目標的發(fā)布器
# move_base
def moveToGoal(self, xGoal, yGoal, orientation_z, orientation_w): # 移動到目標點
ac = actionlib.SimpleActionClient("move_base", MoveBaseAction) # 創(chuàng)建動作客戶端
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) # 發(fā)送目標位置
ac.wait_for_result(rospy.Duration(600)) # 設(shè)置超時時間
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) # 設(shè)置需要導航到達的點位
flag_feed_goalReached = map_navigation.moveToGoal(x_goal, y_goal, orientation_z, orientation_w) # 開始導航,并返回是否到達目標點位
if flag_feed_goalReached:
print("command completed") # 成功到達目標定位
二維碼識別抓取
這份代碼主要展示了如何使用Python控制大象機器人的Mercury系列機械臂進行二維碼識別和基于位置的物體操作。以下是該代碼實現(xiàn)的技術(shù)和場景概括:
硬件設(shè)置與初始化:代碼首先初始化Mercury機械臂,設(shè)置其與計算機的通訊端口。
同時設(shè)置和配置UVC相機,加載相機的校準參數(shù)(內(nèi)參和畸變系數(shù)),這些參數(shù)用于后續(xù)圖像處理和位置計算。
圖像捕捉與二維碼識別:使用UVC相機捕捉實時圖像幀。
應用stag.detectMarkers方法識別圖像中的二維碼并獲取其角點信息,這是二維碼位置識別的關(guān)鍵步驟。
二維碼位置計算與機械臂定位:根據(jù)捕獲的二維碼角點及相機校準參數(shù),計算二維碼相對于相機的空間坐標。
通過手眼標定技術(shù)(Eyes_in_hand_right方法),將二維碼的相對坐標轉(zhuǎn)換為機械臂基座坐標系中的位置。
控制機械臂移動到計算出的二維碼位置。
交互執(zhí)行:機械臂移動到二維碼所在位置后,通過控制夾爪的開閉來實現(xiàn)物體的抓取操作。
from pymycobot import Mercury
from uvc_camera import UVCCamera
import stag
import numpy as np # 導入需要的庫
mr = Mercury("/dev/ttyACM2") # 設(shè)置右臂端口號
mr.send_angles([92.78, -3.19, 0.0, -135.63, -112.56, 70.86, -49.26], 30) # 將機械臂移至二維碼區(qū)域
camera_params = np.load("src/camera_params.npz") # 讀取相機配置文件
mtx, dist = camera_params["mtx"], camera_params["dist"] # 獲取相機內(nèi)參和畸變系數(shù)
camera = UVCCamera(4, mtx, dist) # 設(shè)置相機id
camera.update_frame() # 更新圖像幀
frame = camera.color_frame() # 獲取彩色圖像幀數(shù)據(jù)
(corners, ids, rejected_corners) = stag.detectMarkers(frame, 11) # 根據(jù)圖像,獲取二維碼角點
marker_pos_pack = calc_markers_base_position(corners, ids, 32, mtx,
dist) # 根據(jù)角點和相機內(nèi)參、畸變系數(shù),獲取二維碼相對于相機的坐標
cur_coords = np.array(mr.get_base_coords()) # 獲取機械臂末端坐標
cur_bcl = cur_coords.copy()
cur_bcl[-3:] *= (np.pi / 180) # 將機械臂末端旋轉(zhuǎn)角度轉(zhuǎn)為弧度
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

注:進入網(wǎng)站,成功注冊之后在“賽事報名”中找到“AI ROBOT創(chuàng)新挑戰(zhàn)賽”項目進行報名。
參賽對象
本科組:全日制高校在讀學生(本科、研究生)
高職組:全日制高校在讀學生(高職)
參賽要求
1) 本賽項為團體賽,以院校為單位組隊參賽,本科組、高組須為高校在籍學生和在職老師,不得跨校組隊。
2) 每個賽隊由2-3名參賽學生(設(shè)隊長1名)和1-2名指導老師。
3)比賽過程中,參賽者需要在規(guī)定的時間內(nèi)完成所選賽項的任務。這些任務可能包括機器人的設(shè)計、編程、調(diào)試以及實際運行等。
參賽時間(省賽選拔賽)
報名截止時間:2024年5月30日(最晚截止時間)
區(qū)域賽選拔時間:2024年7月10日— 7月20日
晉級公示:2024年7月25日(公示時間不少于 5 個工作日)
注:各區(qū)域賽比賽時間和地點等安排以區(qū)域賽通知為準。
隨著科技的不斷進步,我們相信通過此類競賽的平臺,能夠有效促進科技與教育的深度融合,激發(fā)更多青年才俊在人工智能和機器人領(lǐng)域的探索熱情。
我們期待看到來自各地的優(yōu)秀參賽者在本屆大賽中展示出色的技術(shù)創(chuàng)新和解決方案,共同推動全球機器人技術(shù)向更高水平發(fā)展。讓我們攜手前行,共創(chuàng)智能科技的美好未來。
審核編輯 黃宇
-
機器人
+關(guān)注
關(guān)注
213文章
30372瀏覽量
218681 -
AI
+關(guān)注
關(guān)注
89文章
37431瀏覽量
292876 -
人工智能
+關(guān)注
關(guān)注
1813文章
49573瀏覽量
259864 -
python
+關(guān)注
關(guān)注
56文章
4850瀏覽量
89306 -
機械臂
+關(guān)注
關(guān)注
13文章
573瀏覽量
25895 -
大象機器人
+關(guān)注
關(guān)注
0文章
86瀏覽量
285
發(fā)布評論請先 登錄
大象機器人攜手進迭時空推出 RISC-V 全棧開源六軸機械臂產(chǎn)品
LabVIEW挑戰(zhàn)賽正式開賽,臺北總決賽等著你!
小小班機器人創(chuàng)新挑戰(zhàn)賽走進武漢
海渡學院虛擬仿真排位賽3月開賽,現(xiàn)金大獎等你挑戰(zhàn)!
ICRA 2018 DJI RoboMaster 人工智能挑戰(zhàn)賽報名正式啟動
AI語音智能機器人開發(fā)實戰(zhàn)
等個有“源”人|OpenHarmony 成長計劃學生挑戰(zhàn)賽報名啟動
等個有“源”人|OpenHarmony 成長計劃學生挑戰(zhàn)賽報名啟動
高動態(tài)人形機器人“夸父”通過OpenHarmony 3.2 Release版本兼容性測評
JRC2018京東X機器人挑戰(zhàn)賽啟動儀式在京舉行
2019機器人世界杯火神隊斬獲AdultSize的Technical Challenge 技術(shù)挑戰(zhàn)賽亞軍
中國在國際機器人挑戰(zhàn)賽中占頭籌 并獲得25萬美元獎金
獎金高達26萬!AIOps挑戰(zhàn)賽報名火熱招募中!
OpenHarmony人形機器人創(chuàng)新挑戰(zhàn)賽來啦

人形機器人場景應用全解析,2024???AI ROBOT創(chuàng)新挑戰(zhàn)賽火熱報名中!
評論