<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 3.2 launch文件 ## 3.2.1 簡介 機器人是一個系統工程,通常一個機器人運行操作時要開啟很多個node,對于一個復雜的機器人的啟動操作應該怎么做呢?當然,我們并不需要每個節點依次進行rosrun,ROS為我們提供了一個命令能一次性啟動master和多個node。該命令是: $ roslaunch pkg_name file_name.launch roslaunch命令首先會自動進行檢測系統的roscore有沒有運行,也即是確認節點管理器是否在運行狀態中,如果master沒有啟動,那么roslaunch就會首先啟動master,然后再按照launch的規則執行。launch文件里已經配置好了啟動的規則。 所以`roslaunch`就像是一個啟動工具,能夠一次性把多個節點按照我們預先的配置啟動起來,減少我們在終端中一條條輸入指令的麻煩。 ## 3.2.2 寫法與格式 launch文件同樣也遵循著xml格式規范,是一種標簽文本,它的格式包括以下標簽: ```xml <launch> <!--根標簽--> <node> <!--需要啟動的node及其參數--> <include> <!--包含其他launch--> <machine> <!--指定運行的機器--> <env-loader> <!--設置環境變量--> <param> <!--定義參數到參數服務器--> <rosparam> <!--啟動yaml文件參數到參數服務器--> <arg> <!--定義變量--> <remap> <!--設定參數映射--> <group> <!--設定命名空間--> </launch> <!--根標簽--> ``` 參考鏈接:http://wiki.ros.org/roslaunch/XML ## 3.2.3 示例 launch文件的寫法和格式看起來內容比較復雜,我們先來介紹一個最簡單的例子如下: ```xml <launch> <node name="talker" pkg="rospy_tutorials" type="talker" /> </launch> ``` 這是官網給出的一個最小的例子,文本中的信息是,它啟動了一個單獨的節點`talker`,該節點是包`rospy_tutorials`軟件包中的節點。 然而實際中的launch文件要復雜很多,我們以`Ros-Academy-for-Beginners`中的`robot_sim_demo`為例: ```xml <launch> <!--arg是launch標簽中的變量聲明,arg的name為變量名,default或者value為值--> <arg name="robot" default="xbot2"/> <arg name="debug" default="false"/> <arg name="gui" default="true"/> <arg name="headless" default="false"/> <!-- Start Gazebo with a blank world --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <!--include用來嵌套仿真場景的launch文件--> <arg name="world_name" value="$(find robot_sim_demo)/worlds/ROS-Academy.world"/> <arg name="debug" value="$(arg debug)" /> <arg name="gui" value="$(arg gui)" /> <arg name="paused" value="false"/> <arg name="use_sim_time" value="true"/> <arg name="headless" value="$(arg headless)"/> </include> <!-- Oh, you wanted a robot? --> <!--嵌套了機器人的launch文件--> <include file="$(find robot_sim_demo)/launch/include/$(arg robot).launch.xml" /> <!--如果你想連同RViz一起啟動,可以按照以下方式加入RViz這個node--> <!--node name="rviz" pkg="rviz" type="rviz" args="-d $(find robot_sim_demo)/urdf_gazebo.rviz" /--> </launch> ``` 這個launch文件相比上一個簡單的例子來說,內容稍微有些復雜,它的作用是:啟動gazebo模擬器,導入參數內容,加入機器人模型。 ## 小結 對于初學者,我們不要求掌握每一個標簽是什么作用,但至少應該有一個印象。如果我們要進行自己寫launch文件,可以先從改launch文件的模板入手,基本可以滿足普通項目的要求。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看