亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
        當(dāng)前位置:Linux認(rèn)證 > 綜合輔導(dǎo) > 文章內(nèi)容
        

      Linux教程:機(jī)器人操作系統(tǒng)ROS學(xué)習(xí)教程

      來源:robotos.net [ 2016年2月14日 ] 【

      描述:這篇教程主要介紹ROS圖的概念及命令行工具roscore,rosnode和rosrun等;

      1、必備條件

      在這篇教程里,我們會(huì)使用一個(gè)輕量級(jí)的模擬器,可以通過下面的命令安裝:

      $ sudo apt-get install ros--ros-tutorials

      替換命令中為你的ROS發(fā)布版本,如electric,fuerte,groovy等;

      2、瀏覽圖的概念

      •        節(jié)點(diǎn):節(jié)點(diǎn)是一個(gè)可執(zhí)行文件,可以與其它ROS節(jié)點(diǎn)進(jìn)行通信;
      •        消息:ROS中的一種數(shù)據(jù)類型,用于訂閱或者發(fā)布一個(gè)主題;
      •        話題:節(jié)點(diǎn)發(fā)布的一個(gè)話題,同時(shí)也可以接收一個(gè)話題;
      •        Master:ROS系統(tǒng)中的名稱管理器,方便節(jié)點(diǎn)之間的查找;
      •        rosout:在ROS系統(tǒng)中相當(dāng)于標(biāo)準(zhǔn)的stdout/stderr;
      •        roscore:Master+rosout+parameter server(parameter server會(huì)稍后介紹)

      3、Nodes節(jié)點(diǎn)

      節(jié)點(diǎn)只不過是ROS功能包中的一個(gè)可執(zhí)行文件,ROS節(jié)點(diǎn)采用ROS客戶端庫與其它節(jié)點(diǎn)進(jìn)行通信,節(jié)點(diǎn)可以發(fā)布或訂閱一個(gè)話題,也可以提供或使用一個(gè)服務(wù)。

      4、客戶端庫

      ROS客戶端庫允許節(jié)點(diǎn)以不同的編程語言實(shí)現(xiàn),通信方式也可以采用不同的語言實(shí)現(xiàn):
      •        rospy 為 python 語言實(shí)現(xiàn)的客戶端庫
      •        roscpp 為 c++ 語言實(shí)現(xiàn)的客戶端庫

      5、roscore

      使用ROS時(shí),roscore 是第一個(gè)需要運(yùn)行的指令;

      指令如下:

      $ roscore

      運(yùn)行后將看到類似如下的相關(guān)信息:
      •        ... logging to ~/.ros/log/9cf88ce4-b14d-11df-8a75-00251148e8cf/roslaunch-machine_name-13039.log
      •        Checking log directory for disk usage. This may take awhile.
      •        Press Ctrl-C to interrupt
      •        Done checking log file disk usage. Usage is <1GB.
      •       
      •        started roslaunch server //machine_name:33919/
      •        ros_comm version 1.4.7
      •       
      •        SUMMARY
      •        ========
      •       
      •        PARAMETERS
      •        * /rosversion
      •        * /rosdistro
      •       
      •        NODES
      •       
      •        auto-starting new master
      •        process[master]: started with pid [13054]
      •        ROS_MASTER_URI=//machine_name:11311/
      •       
      •        setting /run_id to 9cf88ce4-b14d-11df-8a75-00251148e8cf
      •        process[rosout-1]: started with pid [13067]
      •        started core service [/rosout]

      如果roscore沒有成功初始化,有可能是網(wǎng)絡(luò)配置的問題;

      6、rosnode的使用

      打開一個(gè)新的命令終端,利用rosnode查看一下正在運(yùn)行的roscore在做什么

      rosnode可以顯示正在運(yùn)行的ROS節(jié)點(diǎn)信息;

      rosnode list列出了正在活動(dòng)的節(jié)點(diǎn):

      $ rosnode list

      將會(huì)看到如下執(zhí)行結(jié)果
      •        /rosout

      這表明只有一個(gè)節(jié)點(diǎn)正在運(yùn)行,就是rosout,這是一個(gè)始終都在運(yùn)行的節(jié)點(diǎn),它用來收集節(jié)點(diǎn)的調(diào)試輸出信息等;

      rosnode info命令顯示指定的節(jié)點(diǎn)的信息:

      $ rosnode info /rosout

      這將顯示出節(jié)點(diǎn)rosout更多的信息,比如它將發(fā)布/rosout_agg等;
      •        ------------------------------------------------------------------------
      •        Node [/rosout]
      •        Publications:
      •        * /rosout_agg [rosgraph_msgs/Log]
      •       
      •        Subscriptions:
      •        * /rosout [unknown type]
      •       
      •        Services:
      •        * /rosout/set_logger_level
      •        * /rosout/get_loggers
      •       
      •        contacting node //machine_name:54614/ ...
      •        Pid: 5092

      現(xiàn)在,我們查看其他的節(jié)點(diǎn);這次采用rosrun的方式激活節(jié)點(diǎn);

      7、rosrun的使用

      采用rosrun指令,可以通過功能包的名字直接運(yùn)行一個(gè)節(jié)點(diǎn),而不必知道這個(gè)功能包的具體路徑;

      用法:
      $ rosrun [package_name] [node_name]

      讓我們來運(yùn)行一下turtlesim功能包里的節(jié)點(diǎn)turtlesim_node;

      在一個(gè)新的命令終端輸入如下指令:

      $ rosrun turtlesim turtlesim_node

      可以看到一個(gè)turtlesim窗口:

      機(jī)器人操作系統(tǒng)ROS學(xué)習(xí)教程

      注意:turtlesim窗口中的小烏龜可能不一樣,不用擔(dān)心,ROS里有多種類型的小烏龜,你的是一個(gè)驚喜哦!

      在一個(gè)新的命令終端輸入:

      $ rosnode list

      可以看到如下信息:
      •        /rosout
      •        /turtlesim

      ROS中一個(gè)比較強(qiáng)大的功能是你可以通過命令行重新指定名稱;

      關(guān)閉turtlesim窗口停止這個(gè)節(jié)點(diǎn),或者返回rosrun turtlesim命令終端,按下crtl+C鍵盤。我們重新運(yùn)行它,不過這次我們通過映射參數(shù)(Remapping Argument)來改變節(jié)點(diǎn)的名字:

      $ rosrun turtlesim turtlesim_node __name:=my_turtle

      現(xiàn)在我們依然采用rosnode list:

      $ rosnode list

      •        將會(huì)得到如下輸出信息:
      •        /rosout
      •        /my_turtle

      我們查看這個(gè)新的my_turtle節(jié)點(diǎn),這次采用另外一個(gè)rosnode參數(shù)ping,如下所示:

      $ rosnode ping my_turtle
      •        rosnode: node is [/my_turtle]
      •        pinging /my_turtle with a timeout of 3.0s
      •        xmlrpc reply from //aqy:42235/    time=1.152992ms
      •        xmlrpc reply from //aqy:42235/    time=1.120090ms
      •        xmlrpc reply from //aqy:42235/    time=1.700878ms
      •        xmlrpc reply from //aqy:42235/    time=1.127958ms

      8、Review回顧

      這一節(jié)我們講解了如下一些指令:
      roscor = ros+core:master(在ROS中提供名字的服務(wù))+rosout(stdout/stderr)+parameter server(參數(shù)服務(wù));
      rosnode = ros+node:用于獲取節(jié)點(diǎn)信息的ROS 工具;
      rosrun = ros+run:從指定的功能包中運(yùn)行一個(gè)節(jié)點(diǎn);

      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved