ubuntu20.04中vscode使用ROS的詳細(xì)方法
ubuntu20.04 vscode使用ROS(C++)
1.在vscode安裝擴(kuò)展
ROS的安裝較為麻煩,需要的@我,我單獨(dú)出一份教程
在vscode的左邊中的拓展(快捷鍵Ctrl+Shift+X)中搜索并添加以下拓展
· C/C++
· CMake
· ROS
2. 創(chuàng)建工作文件夾
2.1 快捷鍵打開終端 ctrl+alt+t
2.2 新建文件夾 mkdir -p test_ros/src
2.3 進(jìn)入新建的文件夾 cd test_ros
2.4 編譯catkin_make
如果有多個(gè)版本 python, 輸入:
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
2.5 輸入code
打開vscode,點(diǎn)擊文件
-打開文件夾
,選擇剛剛新建的test_ros文件夾
3.新建ros工程
3.1 右鍵點(diǎn)擊src文件夾,選擇Create Catkin Package
3.2 Package name
是自定義的,在運(yùn)行時(shí)用到,這里命名為ros_test
3.3 Dependecies
中輸入std_msgs rospy roscpp
以上兩步等同于在命令行中輸入
catkin_create_pkg ros_test std_msgs rospy roscpp
4.修改配置文件
4.1 c_cpp_properties.json
快捷鍵Ctrl+Shift+p
, 找到C/C++: 編輯配置 或者 C/C++: Edit configurations(JSON)
修改如下
// 指定C/C++類庫(kù)和包含路徑以及配置 { "configurations": [ { "browse": { "databaseFilename": "${default}", "limitSymbolsToIncludedHeaders": false }, "includePath": [ "/opt/ros/noetic/include/**", //注意要跟所安裝的ROS路徑一致 "/usr/include/**" ], "name": "ROS", "intelliSenseMode": "gcc-x64", "compilerPath": "/usr/bin/gcc", "cStandard": "gnu11", "cppStandard": "c++14", "compileCommands": "${workspaceFolder}/build/compile_commands.json" } ], "version": 4 }
4.2 tasks.json
快捷鍵Ctrl+Shift+p
, 找到任務(wù):配置任務(wù) 或者 Tasks: Configure task,選哪項(xiàng)都可以,因?yàn)橐薷?/p>
// 指定catkin_make編譯參數(shù) { "tasks": [ { "label": "catkin_make: build", "type": "shell", "command": "catkin_make", "args": [ "--directory", "/home/jawenos/project/test_ros",// 注意文件路徑 "-DCMAKE_BUILD_TYPE=Debug" // 注意這里是debug ], "group": { "kind": "build", "isDefault": true }, "problemMatcher":"$catkin-gcc" } ], "version": "2.0.0" }
4.3 launch.json
在vscode的左邊欄中運(yùn)行與調(diào)試
(快捷鍵Ctrl+Shift+D)創(chuàng)建launch.json,
修改如下:
{ // 使用 IntelliSense 了解相關(guān)屬性。 // 懸停以查看現(xiàn)有屬性的描述。 // 欲了解更多信息,請(qǐng)?jiān)L問: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "ros_test", "type": "cppdbg", "request": "launch", //表示可執(zhí)行文件所在路徑。workspaceFolder表示vscode所加載文件根目錄 "program": "${workspaceFolder}/devel/lib/ros_test/ros_test", "args": [], "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": false } ], "stopAtEntry": false, "cwd": "${workspaceFolder}", } ] }
5.cpp文件
5.1 首先在ros_test
文件夾中的src文件夾中新建一個(gè)C++文件 ros_test.cpp
,在其中寫入
#include<iostream> #include"ros/ros.h" using namespace std; int main(int argc, char** argv){ ROS_INFO("hello"); return 0; }
5.2 修改ros_test中的CMakeList文件
cmake_minimum_required(VERSION 3.0.2) project(ros_test) find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs ) catkin_package( CATKIN_DEPENDS roscpp rospy std_msgs ) include_directories( # include ${catkin_INCLUDE_DIRS} ) add_executable(ros_test src/ros_test.cpp) target_link_libraries(ros_test ${catkin_LIBRARIES} )
5.3 點(diǎn)擊vscode上方終端
,新建終端,catkin_make
重新編譯一次文件,再輸入roscore
啟動(dòng)ROS,最后到ros_test.cpp中F5
開始調(diào)試即可
到此這篇關(guān)于ubuntu20.04 vscode使用ROS的文章就介紹到這了,更多相關(guān)ubuntu vscode使用ROS內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言中實(shí)現(xiàn)itoa函數(shù)的實(shí)例
這篇文章主要介紹了C語(yǔ)言中實(shí)現(xiàn)itoa函數(shù)的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10C語(yǔ)言數(shù)據(jù)類型與sizeof關(guān)鍵字
這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)類型與sizeof關(guān)鍵字,C語(yǔ)言的數(shù)據(jù)類型包括基本類型、構(gòu)造類型、指針類型以及空類型,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-04-04Qt?QDateTime計(jì)算時(shí)間差的實(shí)現(xiàn)示例
本文主要介紹了Qt?QDateTime計(jì)算時(shí)間差的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Java?C++?算法題解leetcode145商品折扣后最終價(jià)格單調(diào)棧
這篇文章主要介紹了Java?C++?算法題解leetcode145商品折扣后最終價(jià)格單調(diào)棧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09C++解決大數(shù)組棧內(nèi)存不夠問題的方法分析
這篇文章主要介紹了C++解決大數(shù)組棧內(nèi)存不夠問題的方法,結(jié)合實(shí)例形式對(duì)比分析了C++針對(duì)大數(shù)組棧內(nèi)存不足情況的常見解決方法及其優(yōu)缺點(diǎn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05C++中vector的實(shí)現(xiàn)方法示例詳解
這篇文章主要介紹了C++中vector實(shí)現(xiàn)的相關(guān)資料,vector是C++中重要的容器之一,底層通過三個(gè)迭代器實(shí)現(xiàn),分別是_start,?_finish,?和_end_of_storage,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10C語(yǔ)言編程銀行ATM存取款系統(tǒng)實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了C語(yǔ)言編程銀行ATM存取款系統(tǒng)實(shí)現(xiàn)的源碼示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11