網站首頁 編程語言 正文
準備工作
首先在VScode中安裝ROS和catkin_tool插件
VScode快捷鍵說明:
ctrl+shift+p
:調出用于執行命令的輸入框ctrl+shift+b
:編譯
使用
1 創建工作空間
終端打開,在命令行:
mkdir -p ~/am_ws/src cd ~/am_ws/src catkin_init_workspace cd ~/am_ws catkin_make # 然后在~/.bashrc中設置ROS工作空間的環境變量
2 VScode打開工作空間
打開VScode,終端輸入:
code .
因為安裝了ROS插件,VScode會直接識別catkin環境,并且自動生成.vscode
文件夾,里面保含c_cpp_properties.json
、settings.json
兩個文件。
其中:
-
c_cpp_properties.json
主要是includePath參數,當有自定義頭文件時,需要在其內添加。 -
setting.json
主要是ROS使用python編程,python相關配置,以及其它配置。
3 創建功能包
- 方法一:終端
# 在src文件夾下 # catkin_create_pkg 【功能包的名稱】 std_msgs rospy roscpp # 如: catkin_create_pkg my_test_pkg std_msgs rospy roscpp
- 方法二:VScode中創建
在左側資源管理器找到我們創建的工作區中的src文件夾,右鍵src選擇create catkin package
。
- 彈出的第一個框(package name)填寫你的功能包名稱,這個是自定義,如my_test_pkg;
- 彈出的第二個框(dependencies)填寫用到的功能包名稱,如roscpp rospy std_msgs;
4 創建配置json文件
- 自動生成的json文件
c_cpp_properties.json
和settings.json
自動生成不需要修改。
tasks.json
按下ctrl + shfit + p
輸入指令tasks: configure task
,然后會下拉出許多,選擇catkin_make: build
會自動生成tasks.json
文件。
5 編寫文件
在功能包的src
下面創建cpp或者python文件,編寫節點信息、話題信息等。
注意創建的文件如果無法運行,可以右鍵-屬性-設為可執行文件
6 修改功能包CMakeList.txt
如果是cpp文件,需要修改功能包CMakeList.txt,在其中添加以下內容:
# add_executable(節點名稱 src/文件名稱.cpp) add_executable(hello src/helloworld.cpp) # target_link_libraries(節點名稱 ${catkin_LIBRARIES}) target_link_libraries(hello ${catkin_LIBRARIES})
7 編譯
- 方法一:終端
catkin_make
- 方法二:VScode
執行快捷鍵:ctrl+shift+b
8 運行ROS MASTER
- 方法一:終端
roscore
方法二:VScode
執行快捷鍵ctrl + shfit + p, 再輸入 ROS:START
9 運行節點
- 方法一:終端
source devel/setup.bash rosrun test_pkg hello
- 方法二:VScode
在這里插入代碼片 ```bash 執行快捷鍵ctrl + shfit + p 輸入ROS:Run a Ros executable 依次輸入創建的功能包的名稱以及節點名稱(即編譯成功后二進制文件的名稱,注意不是文件名) ```
調試
快捷鍵ctrl+shift+d
,新建launch.json文件:
(每次debug不同的文件,需要修改"program"
,可選修改 "name"
,也可以定義多個name這樣的結構體)
{ "version": "0.2.0", "configurations": [ { "name": "my_dxl_node", // 自定義的名稱 "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/devel/lib/myDynamixel/my_dxl_node", // 需要debug的文件。注意是node名稱,不是文件名 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "catkin_make: build",//這里跟的是tasks.json文件中的定義,意在debug前進行build操作 "miDebuggerPath": "/usr/bin/gdb" } ] }
參考
關于json文件的配置,可以參考(不用特別配置就可以運行的):
https://www.jb51.net/article/192889.htm
https://www.jb51.net/article/192888.htm
關于ros debug調試相關的,可以參考:
使用VScode搭建ROS開發環境的教程詳解
ros項目調試:vscode下配置開發ROS項目的詳細教程
原文鏈接:https://blog.csdn.net/gyxx1998/article/details/125710726
相關推薦
- 2022-11-30 react組件的創建與更新實現流程詳解_React
- 2023-11-16 Linux查看某目錄下的文件個數
- 2022-09-19 正則表達式regexp_replace的使用方法_正則表達式
- 2022-09-12 shell腳本5種執行方式及腳本不同的執行方法和區別詳解_linux shell
- 2021-12-29 CentOS系統rpm安裝Nginx和配置_nginx
- 2022-07-11 Android?studio實現單選按鈕_Android
- 2022-07-20 C語言深入探究直接插入排序與希爾排序使用案例講解_C 語言
- 2022-10-04 Android系統優化Ninja加快編譯_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支