中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

ROS 和Web 帶來(lái)更智能的機(jī)器人

2018-12-04    來(lái)源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

  隨著AI的發(fā)展,機(jī)器人必然變得越來(lái)越智能。然而要實(shí)現(xiàn)智能化,除了需要豐富的AI算法外,還需要強(qiáng)大的操作系統(tǒng)支持——ROS就是這樣一款非常受歡迎的機(jī)器人系統(tǒng)。ROS目前已經(jīng)建立了龐大的生態(tài)系統(tǒng),其參與者包括來(lái)自全球機(jī)器人行業(yè)的眾多開發(fā)者,而英特爾開源技術(shù)中心(OTC)的Web團(tuán)隊(duì)也是其中重要一員。他們?cè)诳蛻舳恕?edge、云、IoT、W3C標(biāo)準(zhǔn)、機(jī)器人技術(shù)等領(lǐng)域開發(fā)及應(yīng)用web技術(shù),致力于保持web開放、安全、特性豐富且性能強(qiáng)大。

  對(duì)于機(jī)器人設(shè)計(jì)廠商來(lái)講,他們?cè)跇O力尋求更好的軟硬件解決方案,所以有人自然想到將ROS和Web相結(jié)合從而得到更好的機(jī)器人解決方案;蛟S有人會(huì)問:為什么要在機(jī)器人技術(shù)中使用Node.js 和Web?它們各自有什么特點(diǎn)?先看Node.js,其具有高性能 (JIT)特性,性能高于Python語(yǔ)言,從而使系統(tǒng)在同一機(jī)器人硬件平臺(tái)上可實(shí)現(xiàn)更多功能;另外,Node.js擁有強(qiáng)大的生態(tài)系統(tǒng)和社區(qū)支持,是Github*上最流行的語(yǔ)言,而且擁有世界上最大的包分發(fā)系統(tǒng)——npm。Node.js設(shè)計(jì)時(shí)易于部署和調(diào)試,適合應(yīng)用于web 界面。再看Web技術(shù),它是遠(yuǎn)程控制和儀表板的最佳選擇,可以進(jìn)行狀態(tài)檢查、運(yùn)動(dòng)控制、姿勢(shì)可視化、視頻流等工作,而且可以在任何瀏覽器里運(yùn)行,易于嵌入,擁有海量資源。

  基于兩者各自的優(yōu)勢(shì),工程師要考慮的是如何將web引入到ROS中?首先,RWT* 已經(jīng)將ROS 1.0 APIs 在web中暴露,但在2017年年中之前還沒有針對(duì)ROS 2.0的解決方案,因此OTC的Web團(tuán)隊(duì)開發(fā)了一套新模塊應(yīng)用于ROS 2.0。當(dāng)然我們還需要考慮這是不是在web中暴露ROS API 的最佳方式呢? 比如:服務(wù);另一種做法是Node.js web 服務(wù)器,就是在務(wù)器中暴露ROS API,這種方式靈活而有效,web頁(yè)面中只保留業(yè)務(wù)邏輯(RaaS)。其實(shí)工程師也不必害怕,因?yàn)閣eb服務(wù)器在 Node.js中只不過(guò)需要幾行代碼,并且前端和后端具有同樣的技術(shù)棧,因此更易于調(diào)試。

ROS2.0路線圖

  我們目前取得的兩個(gè)成果是GitHub RWT 的兩個(gè)軟件包,其中一個(gè)是rclnodejs (github repo),它是一個(gè)ROS 2.0的Node.js 客戶端,它可以提供快速、便捷而強(qiáng)大的ROS 2.0的JavaScript接口;另一個(gè)是ros2-web-bridge (github repo),能夠?qū)崿F(xiàn)在web頁(yè)面中調(diào)用ROS 2.0 API ,且與 roslibjs*兼容。下面我們來(lái)看看這兩個(gè)模塊各自的工作原理。

  如上圖所示,其展示了rclnodejs軟件架構(gòu)設(shè)計(jì),其原則是對(duì)rcl層薄封裝,從而快速而輕松地適應(yīng)變化。軟件接口采用事件驅(qū)動(dòng)和非阻塞(Promise/Event)模式 ,使得程序可以擁有高并發(fā)特性;另外包本身無(wú)需重新編譯即可使用新的ROS消息,一切都在運(yùn)行過(guò)程中處理。如此一來(lái),用戶就能夠輕松、有效地編寫 ROS 應(yīng)用。

  如上圖所示,展示ros2-web-bridge 是如何將ROS 2.0引入到瀏覽器中。其與ROS 1.0 bridge (rosbridge_suite)現(xiàn)有的JSON消息協(xié)議 兼容,從而現(xiàn)有的 Web Tools 可以直接使用,例如 :2D/3D 可視化。保持開發(fā)的快速簡(jiǎn)單,用戶友好的調(diào)試。如此一來(lái),RWT ROS 1.0組件便可與 ROS 2.0透明兼容。

  除了Node.js,C++ 和 Python也是ROS開發(fā)中常用的兩種語(yǔ)言,我們不妨將三者進(jìn)行性能對(duì)比:發(fā)布一條ROS消息,測(cè)量所用的時(shí)間和內(nèi)存。當(dāng)運(yùn)行次數(shù)增加時(shí),趨勢(shì)趨于穩(wěn)定,其它類型的測(cè)試中也能觀察到同樣的趨勢(shì),兩種趨勢(shì)都與語(yǔ)言常識(shí)相符?梢钥闯觯琋ode.js 的速度2倍于Python,但是在運(yùn)行時(shí)會(huì)消耗更多內(nèi)存。

  在Turtlebot* 3 + ROS 2.0應(yīng)用案例中,采用了Intel® RealSense™ 相機(jī)和Intel Atom®的Up Board* ,用一個(gè)web應(yīng)用作為遠(yuǎn)程控制,可以看出roslibjs + ros2-web-bridge易于創(chuàng)建強(qiáng)大的UI,可運(yùn)行于任何瀏覽器中,其源代碼在github上,ROS 2.0 的消息類型是geometry_msgs/msg/Twist。

  在機(jī)器人領(lǐng)域,英特爾還做出了很多其它貢獻(xiàn),包括推出面向ROS 2.0的AI/ML/CV軟件;通過(guò)Movidius NCS提供專用 AI 硬件;用RealSense深度相機(jī),以3D的方式感知世界;采用改進(jìn)的ROS MoveIt*實(shí)現(xiàn)更佳的操縱;以及對(duì)ROS 2.0 導(dǎo)航的重新設(shè)計(jì)。我們相信隨著硬件和軟件的不斷發(fā)展,機(jī)器人會(huì)變得越來(lái)越智能。

標(biāo)簽: web服務(wù)器 安全 代碼 服務(wù)器 開發(fā)者

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:漫畫賞析:Linux 內(nèi)核到底長(zhǎng)啥樣

下一篇:微軟正在構(gòu)建一個(gè)基于 Chromium 的瀏覽器并計(jì)劃取代 Microsoft Edge