首頁 > 軟體

在VScode中設定ROS環境的詳細過程

2022-07-14 18:02:42

準備工作

首先在VScode中安裝ROS和catkin_tool外掛


VScode快捷鍵說明:
ctrl+shift+p:調出用於執行命令的輸入框
ctrl+shift+b:編譯

使用

1 建立工作空間

終端開啟,在命令列:

mkdir -p ~/am_ws/src
cd ~/am_ws/src
catkin_init_workspace

cd ~/am_ws
catkin_make

# 然後在~/.bashrc中設定ROS工作空間的環境變數

2 VScode開啟工作空間

開啟VScode,終端輸入:

code .

因為安裝了ROS外掛,VScode會直接識別catkin環境,並且自動生成.vscode資料夾,裡面保含c_cpp_properties.jsonsettings.json 兩個檔案。

其中:

  • c_cpp_properties.json主要是includePath引數,當有自定義標頭檔案時,需要在其內新增。
  • setting.json主要是ROS使用python程式設計,python相關設定,以及其它設定。

3 建立功能包

  • 方法一:終端
# 在src資料夾下
# catkin_create_pkg 【功能包的名稱】 std_msgs rospy roscpp
# 如:
catkin_create_pkg my_test_pkg std_msgs rospy roscpp
  • 方法二:VScode中建立

在左側資源管理器找到我們建立的工作區中的src資料夾,右鍵src選擇create catkin package

  • 彈出的第一個框(package name)填寫你的功能包名稱,這個是自定義,如my_test_pkg;
  • 彈出的第二個框(dependencies)填寫用到的功能包名稱,如roscpp rospy std_msgs;

4 建立設定json檔案

  • 自動生成的json檔案

c_cpp_properties.jsonsettings.json自動生成不需要修改。

  • tasks.json

按下ctrl + shfit + p輸入指令tasks: configure task,然後會下拉出許多,選擇catkin_make: build 會自動生成tasks.json檔案。

5 編寫檔案

功能包的src下面建立cpp或者python檔案,編寫節點資訊、話題資訊等。
注意建立的檔案如果無法執行,可以右鍵-屬性-設為可執行檔案

6 修改功能包CMakeList.txt

如果是cpp檔案,需要修改功能包CMakeList.txt,在其中新增以下內容:

# add_executable(節點名稱 src/檔名稱.cpp)
add_executable(hello src/helloworld.cpp)

# target_link_libraries(節點名稱 ${catkin_LIBRARIES})
target_link_libraries(hello ${catkin_LIBRARIES})

7 編譯

  • 方法一:終端
catkin_make
  • 方法二:VScode
執行快捷鍵:ctrl+shift+b

8 執行ROS MASTER

  • 方法一:終端
roscore

方法二:VScode

執行快捷鍵ctrl + shfit + p,
再輸入 ROS:START

9 執行節點

  • 方法一:終端
source devel/setup.bash 
rosrun test_pkg hello
  • 方法二:VScode
在這裡插入程式碼片

```bash
執行快捷鍵ctrl + shfit + p
輸入ROS:Run a Ros executable
依次輸入建立的功能包的名稱以及節點名稱(即編譯成功後二進位制檔案的名稱,注意不是檔名)
```

偵錯

快捷鍵ctrl+shift+d,新建launch.json檔案:
(每次debug不同的檔案,需要修改"program",可選修改 "name",也可以定義多個name這樣的結構體)

{
    "version": "0.2.0",
    "configurations": [    
        {
            "name": "my_dxl_node", // 自定義的名稱
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/devel/lib/myDynamixel/my_dxl_node", // 需要debug的檔案。注意是node名稱,不是檔名
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "catkin_make: build",//這裡跟的是tasks.json檔案中的定義,意在debug前進行build操作
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

參考

關於json檔案的設定,可以參考(不用特別設定就可以執行的):

https://blog.csdn.net/g944468183/article/details/123759886

https://blog.csdn.net/qq_42688495/article/details/107750466

關於ros debug偵錯相關的,可以參考:

使用VScode搭建ROS開發環境的教學詳解

ros專案偵錯:vscode下設定開發ROS專案的詳細教學

到此這篇關於在VScode中設定ROS環境的文章就介紹到這了,更多相關VScode設定ROS環境內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com