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.txt
和package.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