ros2(humble) launch 文件調試
ros2(humble) launch 文件調試
系統配置:WSL Ubuntu-22.04、ROS 版本 Humble、Visual Studio Code Version 1.89.1。首先,創建了 launch.py 文件,并安裝到 install 目錄下。使用 colcon 構建,若已創建 jsons.task,可通過 shift+ctrl+b 執行默認構建任務。執行構建命令時,使用 --symlink-install 創建符號鏈接以避免修改.launch.py 文件后重新構建包;使用 --packages-select 選定構建的包,避免對其他無關的包進行構建。
導讀系統配置:WSL Ubuntu-22.04、ROS 版本 Humble、Visual Studio Code Version 1.89.1。首先,創建了 launch.py 文件,并安裝到 install 目錄下。使用 colcon 構建,若已創建 jsons.task,可通過 shift+ctrl+b 執行默認構建任務。執行構建命令時,使用 --symlink-install 創建符號鏈接以避免修改.launch.py 文件后重新構建包;使用 --packages-select 選定構建的包,避免對其他無關的包進行構建。
![](https://img.51dongshi.com/20241126/wz/18333686052.jpg)
在學習開源項目 vrx 時,發現其提供的 wiki 內容較為簡略,僅涉及環境配置、運行方法以及項目特點,而本人對 ROS 缺乏深入了解,因此決定從項目的啟動文件(launch 文件)入手。在嘗試理解 ros2 的 launch 文件格式時,發現利用 AI 閱讀代碼效率不高且容易出錯,特別是無法驗證中間變量是否與預期一致。因此,對 launch 文件的調試需求逐漸凸顯。系統配置:WSL Ubuntu-22.04、ROS 版本 Humble、Visual Studio Code Version 1.89.1。首先,創建了 launch.py 文件,并安裝到 install 目錄下。使用 colcon 構建,若已創建 jsons.task,可通過 shift+ctrl+b 執行默認構建任務。執行構建命令時,使用 --symlink-install 創建符號鏈接以避免修改.launch.py 文件后重新構建包;使用 --packages-select 選定構建的包,避免對其他無關的包進行構建。創建 tasks.json 文件,檢查項目文件夾下是否存在.vscode/task.json。若不存在,通過命令臺輸入并點擊 Tasks: Confige Task,選擇 Others,將預先準備的內容粘貼到 tasks.json 中并保存。接著,創建 launch.json 文件,用于啟動對.launch.py 文件的調試。launch.json 配置包括:name 標識調試配置標簽,type 指定調試類型(對 Python 的調試),request 表示調試方式(launch 方法從程序文件啟動時開始調試),program 指定要調試的文件路徑,stopOnEntry 控制是否在程序入口設置斷點。配置完成后,點擊 Run and Debug 按鈕,選擇配置的 ROS Launch Debug,點擊綠色三角按鈕進入調試模式。在調試過程中,遇到 Python 子函數需要被調用才能執行的問題。因此,引入 LaunchService 模塊啟動.launch.py 文件。修改代碼以啟動 generate_launch_description() 函數,運行后發現文件可以獨立運行。回到 launch.json 配置,對 turtlesim.launch.py 進行調試。通過閱讀 launch.py 文件中的 ld 變量,可以深入了解 Python 啟動節點的工作原理。為了進階掌握 launch 文件的用法,考慮對 launch.py 中引用 Python 包時的環境設置進行調整。同時,了解 launch 命令中參數的傳遞方法。創建 test.launch.py 文件,配置參數傳遞,確保在調試過程中能夠輸入參數。
ros2(humble) launch 文件調試
系統配置:WSL Ubuntu-22.04、ROS 版本 Humble、Visual Studio Code Version 1.89.1。首先,創建了 launch.py 文件,并安裝到 install 目錄下。使用 colcon 構建,若已創建 jsons.task,可通過 shift+ctrl+b 執行默認構建任務。執行構建命令時,使用 --symlink-install 創建符號鏈接以避免修改.launch.py 文件后重新構建包;使用 --packages-select 選定構建的包,避免對其他無關的包進行構建。
為你推薦