使用VS Code對ROS進行編程


Code in VSCode

1. 下載 vscode

下載vscode的方式有很多種,其中比較簡單是直接從ubuntu software里下載

如果在ubuntu software中找不到vscode,可以從官網下載.deb包。

下載好后,在.deb包所在的目錄處,打開終端輸入:

$ sudo dpkg -i code_1.58.2-1626302803_amd64.deb

之后就可以在應用里看到vscode了,右鍵可以將其添加到左邊的收藏夾。

2. 搭建 ROS 的開發環境

進入VSCode后可以下載如圖所示的一些插件。

其中Jupyter 和 Pylance 非必須。

有了插件后還需要修改配置文件,但在這之前我們先創建一個工作空間。

mkdir -p xxx_ws/src
cd xxx_ws
catkin_make

完成后再使用

code .

打開vscode

然后我們可以在src處右鍵 創建一個catkin的包

隨后兩步是命名和創建包的依賴

包的依賴就是上一節講的 roscpp, rospy, std_msgs

這時會生成一個.xml文件,其中包含了我們剛剛創建的包的信息。

然后我們使用快捷鍵ctrl+shift+b,點擊catkin_make:build 后面的齒輪,進入配置文件。

初始的配置文件如圖:

我們需要把它替換為其他的代碼:

{
// 有關 tasks.json 格式的文檔,請參見
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make:debug", //代表提示的描述性信息
            "type": "shell",  //可以選擇shell或者process,如果是shell代碼是在shell里面運行一個命令,如果是process代表作為一個進程來運行
            "command": "catkin_make",//這個是我們需要運行的命令
            "args": [],//如果需要在命令后面加一些后綴,可以寫在這里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
            "group": {"kind":"build","isDefault":true},
            "presentation": {
                "reveal": "always"//可選always或者silence,代表是否輸出信息
            },
            "problemMatcher": "$msCompile"
        }
    ]
}

然后我們再使用快捷鍵ctrl+shift+b編譯一下我們剛剛創建的包,出現以下結果則創建成功,這也意味這我們的ROS環境搭建成功。

如果報錯了也不要慌,那可能是我們的依賴寫錯了,正確的3個依賴名稱是:rospy, roscpp, std_msgs。我們只需要將CMakeLists.txtpackage.xml文件中的全部錯誤依賴名稱修改為正確的就可以了。

3. 開始寫cpp程序

在src下創建一個叫hello_vscode.cpp的文件。寫入一個輸出代碼:

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    // 初始化ros
    ros::init(argc,argv,"hello");
    // 輸出信息
    ROS_INFO("Hello_vscode");
    return 0;
}

在寫的過程中我們會發現,在寫與ros有關的代碼的時候,編輯器並不會出現提示,這是因為我們選擇的編譯器有點老了,我們需要在修改.vscode文件夾中的c_cpp_properties.json文件。修改或添加"cppStandard": "c++20"就可以了。

此時,我們再編寫就會出現提示了。

代碼寫好后,我們還需要修改CMakeLists.txt文件。方法和之前一樣,但多了我們可以使用快捷鍵ctrl+/來取消#注釋了。

add_executable(任意名稱
  src/步驟3的源文件名.cpp
)
target_link_libraries(任意名稱
  ${catkin_LIBRARIES}
)

然后我們用ctrl+shift+b編譯文件。如圖所示就是成功了。

然后,我們可以在vscode中之間使用快捷鍵ctrl+shift+~新建終端,vscode中的終端與我們在ubuntu系統中創建的終端使用相同。
現開一個ros master:

roscore

然后source我們的包:

source ./devel/setup.bash 

最后rosrun

rosrun 包名 節點名

out:

[ INFO] [1627223101.571287843]: Hello_vscode


免責聲明!

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



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