ROS系統(tǒng)是什么
ROS(Robot Operating System)是一個(gè)適用于機(jī)器人的開(kāi)源的元操作系統(tǒng)。它提供了操作系統(tǒng)應(yīng)有的服務(wù),包括硬件抽象,底層設(shè)備控制,常用函數(shù)的實(shí)現(xiàn),進(jìn)程間消息傳遞,以及包管理。它也提供用于獲取、編譯、編寫(xiě)、和跨計(jì)算機(jī)運(yùn)行代碼所需的工具和庫(kù)函數(shù)。
圖1
隨著工業(yè)智能化的快速發(fā)展,智能機(jī)器人設(shè)備已成為工業(yè)自動(dòng)化體系的佼佼者,而智能機(jī)器人設(shè)備核心—ROS系統(tǒng),是機(jī)器人領(lǐng)域的集大成者,主要應(yīng)用于機(jī)器人控制領(lǐng)域,如AGV工業(yè)機(jī)器人控制器、智能機(jī)械臂控制器、機(jī)器人導(dǎo)航系統(tǒng)等。
ROS系統(tǒng)主要特點(diǎn)有哪些
(1) 提供豐富的機(jī)器人算法庫(kù)
機(jī)器人的各種控制以及通信離不開(kāi)算法庫(kù)的支持,ROS系統(tǒng)提供豐富且功能強(qiáng)大的機(jī)器人算法庫(kù),如坐標(biāo)變換、運(yùn)動(dòng)控制等。機(jī)器人開(kāi)發(fā)者可根據(jù)開(kāi)發(fā)需要,簡(jiǎn)單快捷地調(diào)用合適的算法庫(kù),以提高開(kāi)發(fā)效率,加快開(kāi)發(fā)進(jìn)程。
(2)開(kāi)源免費(fèi),架構(gòu)精簡(jiǎn)
ROS系統(tǒng)是一個(gè)開(kāi)源免費(fèi),架構(gòu)精簡(jiǎn)的機(jī)器人操作系統(tǒng)。ROS被設(shè)計(jì)為盡可能精簡(jiǎn),以便為ROS編寫(xiě)的代碼可與其他機(jī)器人軟件框架一起使用,如ROS已與OpenRAVE、Orocos和Player集成。正是由于這一特點(diǎn),探索開(kāi)發(fā)ROS系統(tǒng)的人員眾多,遍布世界各地,形成一種“百花齊放,家爭(zhēng)鳴”局面,促使ROS功能日益強(qiáng)大。“開(kāi)源免費(fèi)、架構(gòu)精簡(jiǎn)”這也更是意味著可大大降低產(chǎn)品開(kāi)發(fā)成本,縮短產(chǎn)品開(kāi)發(fā)周期,提高產(chǎn)品開(kāi)發(fā)效率。
(3)支持實(shí)時(shí)控制與通信,數(shù)據(jù)安全可靠
如今ROS系統(tǒng)支持實(shí)時(shí)控制與通信,并且數(shù)據(jù)安全可靠。“實(shí)時(shí)性”、“安全性”是如今工業(yè)自動(dòng)化行業(yè)的普遍追求,特別是對(duì)于AGV開(kāi)發(fā),若AGV機(jī)器人的主控制器、雷達(dá)、攝像頭、GPS等部件的控制、通信的實(shí)時(shí)性與安全性得不到保障,導(dǎo)致的后果將是核心數(shù)據(jù)泄露、路線控制偏離、系統(tǒng)通信異常等嚴(yán)重后果。而ROS系統(tǒng)憑借其優(yōu)勢(shì),已成為AGV開(kāi)發(fā)利器,廣泛應(yīng)用于各種機(jī)器人開(kāi)發(fā),并逐漸成為主流。
RK3568J +Debian的ROS2系統(tǒng)演示案例
創(chuàng)龍科技SOM-TL3568是一款基于瑞芯微RK3568J/RK3568B2處理器設(shè)計(jì)的四核ARM Cortex-A55全國(guó)產(chǎn)工業(yè)核心板,主頻高達(dá)2.0GHz。核心板CPU、ROM、RAM、電源、晶振、連接器等所有器件均采用國(guó)產(chǎn)工業(yè)級(jí)方案,國(guó)產(chǎn)化率100%,并提供國(guó)產(chǎn)化率認(rèn)證報(bào)告。
我司RK3568J平臺(tái)提供的ROS系統(tǒng)啟動(dòng)鏡像文件update.img位于產(chǎn)品資料“4-軟件資料Demoplatform-demosros2_foxybin”目錄下,請(qǐng)先參考《Linux系統(tǒng)啟動(dòng)卡制作及系統(tǒng)固化》文檔,將鏡像文件update.img通過(guò)“瑞芯微創(chuàng)建升級(jí)磁盤(pán)工具”制作SD啟動(dòng)卡(即ROS系統(tǒng)啟動(dòng)卡),然后將SD啟動(dòng)卡插至評(píng)估板Micro SD卡槽。亦可通過(guò)SD升級(jí)卡或USB固化方式將系統(tǒng)固化至eMMC。
基于Python語(yǔ)言的通信演示
案例功能:基于Python語(yǔ)言,啟動(dòng)ROS節(jié)點(diǎn)發(fā)布與訂閱消息,實(shí)現(xiàn)訂閱消息節(jié)點(diǎn)與發(fā)布消息節(jié)點(diǎn)之間的實(shí)時(shí)通信。
請(qǐng)將評(píng)估板上電啟動(dòng),執(zhí)行如下命令,配置評(píng)估板測(cè)試環(huán)境。
Target#export COLCON_CURRENT_PREFIX=/opt/ros
Target# source /opt/ros/local_setup.sh
圖 2
執(zhí)行如下命令,啟動(dòng)ROS節(jié)點(diǎn)訂閱消息。
Target# ros2 run demo_nodes_py listener &
圖 3
執(zhí)行如下命令,啟動(dòng)ROS節(jié)點(diǎn)發(fā)布消息,實(shí)現(xiàn)訂閱消息節(jié)點(diǎn)與發(fā)布消息節(jié)點(diǎn)之間的通信。此時(shí)評(píng)估板串口調(diào)試終端將會(huì)打印兩節(jié)點(diǎn)間通信的信息,如下圖所示。按"Ctrl + C"可退出測(cè)試程序,即讓發(fā)布消息的節(jié)點(diǎn)退出。
Target# ros2 run demo_nodes_py talker
圖 4
執(zhí)行如下命令,查看并根據(jù)系統(tǒng)進(jìn)程號(hào)關(guān)閉所有ROS節(jié)點(diǎn)。進(jìn)程號(hào)請(qǐng)以實(shí)際情況為準(zhǔn)。
Target# ps -a
Target# kill 1256
Target# kill 1257
圖 5
基于C++語(yǔ)言的通信演示
案例功能:基于C++語(yǔ)言,啟動(dòng)ROS節(jié)點(diǎn)發(fā)布與訂閱消息,實(shí)現(xiàn)訂閱消息節(jié)點(diǎn)與發(fā)布消息節(jié)點(diǎn)之間的實(shí)時(shí)通信。
請(qǐng)將評(píng)估板上電啟動(dòng),執(zhí)行如下命令,配置評(píng)估板測(cè)試環(huán)境。
Target#export COLCON_CURRENT_PREFIX=/opt/ros
Target# source /opt/ros/local_setup.sh
圖 6
執(zhí)行如下命令,啟動(dòng)ROS節(jié)點(diǎn)訂閱消息。
Target# ros2 run demo_nodes_cpp listener &
圖 7
執(zhí)行如下命令,啟動(dòng)ROS節(jié)點(diǎn)發(fā)布消息,實(shí)現(xiàn)訂閱消息節(jié)點(diǎn)與發(fā)布消息節(jié)點(diǎn)之間的通信。此時(shí)評(píng)估板串口調(diào)試終端將會(huì)打印兩節(jié)點(diǎn)間通信的信息,如下圖所示。按"Ctrl + C"可退出測(cè)試程序,即讓發(fā)布消息的節(jié)點(diǎn)退出。
Target# ros2 run demo_nodes_cpp talker
圖 8
執(zhí)行如下命令,根據(jù)系統(tǒng)進(jìn)程號(hào)關(guān)閉所有ROS節(jié)點(diǎn)。進(jìn)程號(hào)請(qǐng)以實(shí)際情況為準(zhǔn)。
Target# ps -a
Target# kill 1332
Target# kill 1333
圖 9
審核編輯 黃宇
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28416瀏覽量
207063 -
ROS
+關(guān)注
關(guān)注
1文章
278瀏覽量
17007 -
創(chuàng)龍科技
+關(guān)注
關(guān)注
2文章
131瀏覽量
7725
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論