再聊机器人设计:如何加速开发流程?
?01
一套機(jī)械臂系統(tǒng)引發(fā)的思考?
想讓機(jī)器人與人類配合無(wú)間,或許是機(jī)器人領(lǐng)域里最難做的事了。
近日,來(lái)自加拿大舍布魯克大學(xué)的研究人員開(kāi)發(fā)出了一種固定在腰間的機(jī)械臂系統(tǒng),它可以幫助你完成多種任務(wù)。
包括:采摘果實(shí)、刷墻、擦玻璃、遞送工具,甚至還有打羽毛球。
在探討機(jī)械手對(duì)人們的用途時(shí),無(wú)論是額外的手指還是一個(gè)或兩個(gè)額外的機(jī)械臂,其功能都常限于緩慢移動(dòng)的輕量級(jí)任務(wù)。這些任務(wù)往往是持有或攜帶物體,穩(wěn)定物體或使用者等等。但人們想要的并不只是如此,而是能讓我們變成像漫威漫畫里的超級(jí)英雄一樣的可穿戴機(jī)械臂。
這種類型的可穿戴機(jī)械臂被稱為額外機(jī)械臂(supernumerary robotic arm)。本研究的系統(tǒng)有 3 個(gè)自由度,由磁流變離合器和靜液壓傳動(dòng)裝置驅(qū)動(dòng)。
其目標(biāo)是在眾多工業(yè)和家庭應(yīng)用中實(shí)現(xiàn)如人類手臂一樣的性能。液壓系統(tǒng)會(huì)提供相對(duì)較大的動(dòng)力,但是動(dòng)力系統(tǒng)本身是通過(guò)線纜和使用者連接的,在最大程度上減少了使用者穿戴的質(zhì)量(保證手臂的慣性較小),同時(shí)還略微限制了移動(dòng)性。
機(jī)械臂的 Demo 視頻具體參見(jiàn):
看到這里,有些朋友就會(huì)比較關(guān)心:
此種復(fù)雜的機(jī)械臂控制系統(tǒng)到底如何開(kāi)發(fā),如何設(shè)計(jì)?
?02
與機(jī)器人相關(guān)的系統(tǒng)開(kāi)發(fā)流程
如果我們想學(xué),如何入手?
一般來(lái)說(shuō),在機(jī)器人系統(tǒng)開(kāi)發(fā)中,開(kāi)發(fā)流程可分為以下幾個(gè)步驟:
從上述開(kāi)發(fā)過(guò)程中,可以看到做機(jī)器人開(kāi)發(fā),不僅僅是算法,還牽扯到軟硬件開(kāi)發(fā)以及系統(tǒng)聯(lián)調(diào)。
大家或多或少都應(yīng)該有這種體驗(yàn),牽扯到結(jié)構(gòu)、硬件等實(shí)際設(shè)計(jì)時(shí),哪怕電路足夠簡(jiǎn)單,結(jié)構(gòu)設(shè)計(jì)足夠完美,一旦需要做成實(shí)際的東西,可能就會(huì)遇見(jiàn)一些bug。
人非圣賢、孰能無(wú)過(guò),引入bug不可怕,能否盡早發(fā)現(xiàn)bug對(duì)整個(gè)開(kāi)發(fā)過(guò)程至關(guān)重要。
找出bug后,再修改設(shè)計(jì)方案,重新設(shè)計(jì),可能就會(huì)有樣機(jī)一代、二代、三代。。。多次迭代才能做出效果能過(guò)得去的機(jī)器人系統(tǒng)。
隨即而來(lái)的,浪費(fèi)時(shí)間成本、資金成本等。
同時(shí),從開(kāi)發(fā)過(guò)程中,可以看出整個(gè)設(shè)計(jì)流程比較線性化,即完成前一步,才能進(jìn)行后一步。機(jī)器人設(shè)計(jì)一般牽扯到多人合作,設(shè)計(jì)流程線性化,也會(huì)影響開(kāi)發(fā)時(shí)長(zhǎng)。
比如:我們?cè)谠O(shè)計(jì)機(jī)器人機(jī)械臂時(shí),機(jī)械臂驅(qū)動(dòng)電路已經(jīng)設(shè)計(jì)并制作完成,但小伙伴的機(jī)械臂結(jié)構(gòu)還未搭建好,我們必須得等小伙伴完成機(jī)械臂結(jié)構(gòu)后才能測(cè)試。無(wú)形中,也浪費(fèi)了開(kāi)發(fā)時(shí)長(zhǎng)。
那么,如何提升效率、減少時(shí)間和資金,從而加快開(kāi)發(fā)流程呢?
加快反饋!
在早期進(jìn)行整體設(shè)計(jì)時(shí),如果可以仿真,在仿真過(guò)程中,不斷調(diào)試裝置和系統(tǒng)參數(shù),多次反饋后得出我們想要的模型,同時(shí)進(jìn)行結(jié)構(gòu)與軟硬件制作,并根據(jù)仿真模型的變動(dòng)進(jìn)行修改,多階段同時(shí)進(jìn)行,以此來(lái)減少開(kāi)發(fā)時(shí)長(zhǎng)以及資金成本。
當(dāng)然,既然要進(jìn)行仿真,要選取哪款軟件呢。
在這之前,我們?cè)?jīng)有寫過(guò)一篇:
MATLAB R2020a新鮮出爐,我來(lái)替各位嘗嘗鮮!(超鏈接,點(diǎn)擊即可閱讀)
在這篇文章中,我們有聊過(guò)利用MATLAB/Simulink對(duì)機(jī)器人運(yùn)動(dòng)規(guī)劃進(jìn)行仿真。
那么在加速機(jī)器人開(kāi)發(fā)流程上,MATLAB又會(huì)給我們帶來(lái)什么驚喜呢?
?03
MATLAB如何加速機(jī)器人開(kāi)發(fā)
在未設(shè)計(jì)出機(jī)械臂硬件系統(tǒng)之前,我們是無(wú)法驗(yàn)證算法,其抓取效果以及準(zhǔn)確度,此時(shí)MATLAB即可上場(chǎng),擔(dān)當(dāng)搭建相關(guān)模型,提前完成仿真測(cè)試的重任。
在開(kāi)篇的腰間機(jī)械臂視頻中,機(jī)械臂有給人遞送工具的應(yīng)用場(chǎng)景,我們以機(jī)械臂抓取物品為例,使用MATLAB模擬仿真該運(yùn)動(dòng)過(guò)程。
在MATLAB中,有較多的機(jī)械臂模型供大家選擇,可供自己的設(shè)計(jì)需求選擇相應(yīng)的機(jī)械臂模型,接下來(lái)使用MATLAB對(duì)進(jìn)行機(jī)械臂拾放工作流程仿真。
首先,使用Stateflow圖表創(chuàng)建狀態(tài)流程圖,由以下三個(gè)步驟組成:
1、初始化機(jī)器人和環(huán)境
初始化機(jī)械臂模型,并創(chuàng)建其運(yùn)行環(huán)境,初始化相關(guān)參數(shù)配置,建立機(jī)械臂模型。
該環(huán)境由機(jī)械手、用于分類的架子和藍(lán)色障礙物組成。
2、識(shí)別零件并確定放置位置
在識(shí)別階段的第一步中,必須檢測(cè)零件。我們可以直接調(diào)用相關(guān)函數(shù)直接給出待拾放的物體檢測(cè)算法,也可以通過(guò)我們特定的物體,來(lái)設(shè)計(jì)對(duì)應(yīng)的物體檢測(cè)算法。
接下來(lái),調(diào)用相關(guān)函數(shù)將零件分為兩種類型,以確定放置它們的位置(頂部或底部架子)。
3、執(zhí)行取放工作流程
一旦識(shí)別出物品,并指定了它們的目的地,手爪將其拾取,然后移動(dòng)到目標(biāo)位置。
*詳細(xì)流程如下圖所示:
在完成狀態(tài)流程圖后,就可以運(yùn)行可視化仿真。
通過(guò)確定選用MATLAB中提供的機(jī)器人模型,初始相關(guān)參數(shù)配置,完成機(jī)械手的初始配置,建立機(jī)械臂模型。
【案例來(lái)自MATLAB官網(wǎng),該仿真使用帶有手爪的KINOVA GEN3機(jī)械臂模型】
代碼:
load('exampleHelperKINOVAGen3RobotiqGripper.mat');
coordinator.HomeRobotTaskConfig = trvec2tform([0.4, 0, 0.6])*axang2tform([0 1 0 pi]);
coordinator.PlacingPose{1} = trvec2tform([[-0.2 0.55 0.46]])*axang2tform([1 0 0 -pi/2]);
coordinator.PlacingPose{2} = trvec2tform([[-0.2 0.55 0.63]])*axang2tform([1 0 0 -pi/2]);
調(diào)用函數(shù),即可將可視化模型連接到前文狀態(tài)流程圖,
coordinator.FlowChart = exampleHelperFlowChartPickPlace('coordinator',coordinator);
輸入下方代碼,可進(jìn)行拾放物體過(guò)程仿真:
answer = questdlg('Do you want to start the pick-and-place job now?', ...
?????????'Start job','Yes','No', 'No');
switch answer
????case 'Yes'
????????% Trigger event to start Pick and Place in the Stateflow Chart
????????coordinator.FlowChart.startPickPlace; ???????
????case 'No'
????????% End Pick and Place
????????coordinator.FlowChart.endPickPlace; ???????
????????delete(coordinator.FlowChart);
????????delete(coordinator);end
在完成此拾放可視化仿真后,我們可以結(jié)合機(jī)器人工具箱Robotics System Toolbox,在此模型上添加相關(guān)的路徑規(guī)劃、電機(jī)控制等來(lái)提前驗(yàn)證我們的相關(guān)算法,從而加快機(jī)械臂系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的效率,由于篇幅有限,在此不再詳細(xì)介紹相關(guān)。
?04??
?總結(jié)
本文只是淺談了機(jī)器人系統(tǒng)開(kāi)發(fā)中,通過(guò)MATLAB/Simulink的配合使用,我們可以提前驗(yàn)證機(jī)械臂控制算法,同樣的,除開(kāi)機(jī)器人的機(jī)械臂模型仿真,我們也可以利用Simulink對(duì)機(jī)器人的移動(dòng)控制、視覺(jué)等組件進(jìn)行仿真,提前驗(yàn)證我們的控制算法,無(wú)需等到相關(guān)硬件制作完成后再驗(yàn)證,可以加快整個(gè)機(jī)器人系統(tǒng)的開(kāi)發(fā)過(guò)程,提升效率。
總的來(lái)說(shuō),在機(jī)器人開(kāi)發(fā)上,MATLAB給技術(shù)人員提供了足夠多且友好的開(kāi)發(fā)工具,并且也涵蓋了多個(gè)demo,供初學(xué)者快速入門。我們可以通過(guò)學(xué)習(xí)調(diào)用demo,快速搭建出我們的機(jī)器人各個(gè)組件系統(tǒng),進(jìn)行仿真測(cè)試,無(wú)論是機(jī)器視覺(jué),或者機(jī)械臂相關(guān)軟硬件,亦或是移動(dòng)路徑規(guī)劃等。都可以在MATLAB中找到相應(yīng)的工具包對(duì)其進(jìn)行仿真測(cè)試。
與此同時(shí),在基于MATLAB模型設(shè)計(jì)下,我們可以將機(jī)器人系統(tǒng)如此龐大陌生的系統(tǒng)劃分成各個(gè)模塊進(jìn)行組件設(shè)計(jì),利用Simulink對(duì)其組件進(jìn)行仿真測(cè)試,使用基于模型設(shè)計(jì)去開(kāi)發(fā)軟件,我們可以盡早對(duì)一個(gè)階段的工作產(chǎn)品進(jìn)行驗(yàn)證,同時(shí)鏈接到后一階段的設(shè)計(jì)。不僅僅是節(jié)省開(kāi)發(fā)時(shí)間成本和資金成本,并且對(duì)于基于模型的設(shè)計(jì)來(lái)講,圖形化設(shè)計(jì)是天然的、固有的。
能讓人較為明朗了解設(shè)計(jì)原理以及過(guò)程,方便工程師們交流以及后期維護(hù)。
了解更多機(jī)器人解決方案:(復(fù)制到瀏覽器打開(kāi))
https://ww2.mathworks.cn/solutions/robotics.html?s_eid=PEP_23450
你可以申請(qǐng)30天免費(fèi)試用工具包:(復(fù)制到瀏覽器打開(kāi))?
https://ww2.mathworks.cn/campaigns/products/trials.html?s_eid=PEP_23450
-------------------------------
原創(chuàng)不易,莫要白票,如果覺(jué)得有點(diǎn)用的話,請(qǐng)毫不留情地轉(zhuǎn)發(fā)朋友圈吧,因?yàn)檫@將是我寫更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力。
總結(jié)
以上是生活随笔為你收集整理的再聊机器人设计:如何加速开发流程?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 华为WATCH Ultimate官宣!余
- 下一篇: 315全景观察:听见消费者的声音 今年谁