ROS launch文件的使用(同時打開多個終端運行)


 

1.需求

一個程序中可能需要啟動多個節點,比如:ROS 內置的小烏龜案例,如果要控制烏龜運動,要啟動多個窗口,分別啟動 roscore、烏龜界面節點、鍵盤控制節點。如果每次都調用 rosrun 逐一啟動,顯然效率低下,如何優化?

官方給出的優化策略是使用 launch 文件,可以一次性啟動多個 ROS 節點。

2.實現

  1. 選定功能包右擊 ---> 添加 launch 文件夾

  2. 選定 launch 文件夾右擊 ---> 添加 launch 文件

  3. 編輯 launch 文件內容

    <launch>
        <node pkg="helloworld" type="demo_hello" name="hello" output="screen" />
        <node pkg="turtlesim" type="turtlesim_node" name="t1"/>
        <node pkg="turtlesim" type="turtle_teleop_key" name="key1" />
    </launch>
    • node ---> 包含的某個節點

    • pkg -----> 功能包

    • type ----> 被運行的節點文件

    • name --> 為節點命名

    • output-> 設置日志的輸出目標

  4. 運行 launch 文件

    roslaunch 包名 launch文件名
  5. 運行結果: 一次性啟動了多個節點

<!--rosrun turtlesim-->
<launch>
    <!--添加被執行的節點-->
    <!--烏龜GUI-->
    <node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_key"/>
   

</launch>

運行:ctrl+~(esc下的鍵)

roslaunch hello_vscode start_turtle.launch

 

<!--rosrun turtlesim-->
<launch>
    <!--添加被執行的節點-->
    <!--烏龜GUI-->
    <node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_key"/>
    <node pkg="hello_vscode" type="hello_vscode_c" name="hello" output="screen"/> 

</launch>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM