網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
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)試即可
原文鏈接:https://blog.csdn.net/qq_41565578/article/details/127180188
相關(guān)推薦
- 2022-09-17 oracle臨時(shí)表空間的作用與創(chuàng)建及相關(guān)操作詳解_oracle
- 2022-09-24 python?繪制3D圖案例分享_python
- 2022-10-30 Python標(biāo)準(zhǔn)庫(kù)中的logging用法示例詳解_python
- 2022-11-09 golang包循環(huán)引用的幾種解決方案總結(jié)_Golang
- 2023-04-01 一文帶你深入了解Python中的二次移動(dòng)平均法_python
- 2022-06-22 一文搞懂C++多態(tài)的用法_C 語(yǔ)言
- 2022-07-03 Python基礎(chǔ)教程之錯(cuò)誤和異常的處理方法_python
- 2022-07-28 Python?datacompy?找出兩個(gè)DataFrames不同的地方_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支