vscode 開發ROS相關配置

一、基礎配置

1.ros 插件安裝

Visual Studio Code Extension for ROS;通過Extensions搜索安裝;

 

2.c_cpp_properties.json配置

ctrl+shift+p 打開command palette指令面板,找到C/C++:Edit Confiurations(JSON),自動生成c_cpp_properties.json配置文件。

輸出配置、編譯命令文件:

依次執行以下命令,創建並初始化workspace;

mkdir -p ros_ws/src
cd ros_ws/src/
catkin_init_workspace
cd ..
catkin_make

執行:

catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes

在ROS工作空間的build文件夾下面,會生成一個compile_commands.json文件;將其路徑增加到c_cpp_properties.json文件中,如下:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"//編譯命令文件
        }
    ],
    "version": 4
}

這樣就可以找到全部頭文件了,如ros/ros.h,使用代碼智能提示、跳轉等功能。

 

3.task.json配置

配置完成後,按ctrl+shift+b,可直接關聯、執行catkin_make進行程序構建;

Ctrl+shift+P進入命令模式,鍵入tasks: Configure Task,自動生成task.json文件,對其進行更改,如下:

{
	"version": "2.0.0",
	"tasks": [
		{
			//×××××××××× 按以下配置,ctrl+shift+b 會在當前工作空間下執行catkin_make命令 ××××××××//
			"label": "catkin_make: build",//代表提示的描述性信息
			"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": [
				"$catkin-gcc"
			],
			
		}
	]
}

還需要提一下,我們打開vscode一定要在我們的ROS工作空間目錄打開:

code .


因爲這樣你的vscode的Base path就是你打開vscode的位置,在我們執行catkin_make的時候,需要用的這個Base path,必須是我們的ROS工作空間,纔可以正常catkin_make。
 

4.launch.json配置

用來進行GDB debug;

這裏的配置是對C++程序進行調試。

菜單窗口:Run -> Add Configuration... , 自動生成launch.json文件;對其進行如下配置:

{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "(gdb) Launch",//// 配置名稱,在調試配置下拉列表中顯示
            "type": "cppdbg",// // 調試器類型 該值自動生成
            "request": "launch",//// 調試方式,還可以選擇attach
            "program": "${workspaceFolder}/devel/lib/my_second_pkg/hello_world_node_2",//自己給定。要調試的可執行程序(完整路徑,支持相對路徑)
            "args": [],// 傳遞給上面程序的參數,沒有參數留空即可
            "stopAtEntry": false,// 是否停在程序入口點(停在main函數開始)
            "cwd": "${workspaceFolder}",// 調試程序時的工作目錄
            "environment": [], //針對調試的程序,要添加到環境中的環境變量. 例如: [ { "name": "squid", "value": "clam" } ]
            "externalConsole": false,//如果設置爲true,則爲應用程序啓動外部控制檯。 如果爲false,則不會啓動控制檯,並使用VS Code的內置調試控制檯。
            "MIMode": "gdb",//要使用的調試工具
            "setupCommands": [
                {
                    "description": "爲 gdb 啓用整齊打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },

        // {
        //     "name": "Python: 當前文件",
        //     "type": "python",
        //     "request": "launch",
        //     "program": "${file}",
        //     "console": "integratedTerminal"
        // },
        
        // {
        //     "name": "ROS: Attach",
        //     "type": "ros",
        //     "request": "attach"
        // },
    ]
}

這裏的“program”參數是需要自己給定的,比如我要調試一個ROS節點,那麼就需要找到這個節點生成的可執行文件的路徑,然後添加到“program”參數後面,如果要調試其他節點,還需要手動修改。

 

程序編譯時要加上debug選項,詳見這裏

catkin_make -DCMAKE_BUILD_TYPE=Debug

 

VScode + cmakelist.txt + launch.json通過斷點調試:

cmakelists里加一句

set(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -g")

 

二、相關命令

ctrl+shift+p 打開指令面板,>ros:顯示可調用命令。如下:

 

 

參考:

1.ros項目調試:vscode下配置開發ROS項目https://blog.csdn.net/weixin_35695879/article/details/85254422

2.ros項目調試:ROS項目使用GDB調試https://blog.csdn.net/weixin_35695879/article/details/85254399

3.ROS——vscode配置 https://blog.csdn.net/Kalenee/article/details/103828448

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章