国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - 使用VScode搭建ROS開發環境的教程詳解

使用VScode搭建ROS開發環境的教程詳解

2021-09-22 14:39白鳥無言 C/C++

這篇文章主要介紹了使用VScode搭建ROS開發環境,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

俗話說"工欲善其事必先利其器",之前在Ubuntu上運行的ROS項目都是用vim或者gedit編寫和修改代碼,然后在終端編譯運行,很不方便,函數跳轉查看都沒辦法實現。所以今天我決定找一個方便的開發工具,也就是找一個像Windows上的VS那樣的集成開發工具(IDE),ROS官網上有一個不同IDE的對比文章,網址在這里

我選擇使用VScode.下載安裝好VScode后,在擴展欄安裝C/C++CMakeCMake ToolsCode RunnerROS(deprecated)Chinese 這些插件.接下來用一個簡單的話題發布栗子來演示操作過程

創建ROS工作環境

首先新建一個文件夾,我命名為test_ros,在該文件夾中打開終端,執行以下命令來創建ROS工作環境:

  1. mkdir src && cd src
  2. catkin_init_workspace
  3. cd ../
  4. catkin_make

然后在VScode中打開test_ros文件夾,此時的文件目錄如下

使用VScode搭建ROS開發環境的教程詳解

右鍵單擊src,選擇Create Catkin Package,Package命名為helloworld

使用VScode搭建ROS開發環境的教程詳解

添加roscpp, rospy作為依賴項

使用VScode搭建ROS開發環境的教程詳解

之后src目錄下會出現以下文件:

使用VScode搭建ROS開發環境的教程詳解

繼續在src/helloworld/src目錄下添加一個cpp文件,命名為helloworld.cpp,內容如下:

  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. using namespace std;
  5.  
  6. #include "ros/ros.h"
  7. #include "std_msgs/String.h"
  8.  
  9. int main(int argc, char** argv)
  10. {
  11. ros::init(argc, argv, "talker");
  12. ros::NodeHandle n;
  13. ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
  14. ros::Rate loop_rate(10);
  15. int count = 0;
  16. while(ros::ok())
  17. {
  18. std_msgs::String msg;
  19. std::stringstream ss;
  20. ss << "hello world " << count;
  21. msg.data = ss.str();
  22. ROS_INFO("%s", msg.data.c_str());
  23. chatter_pub.publish(msg);
  24. ros::spinOnce();
  25. loop_rate.sleep();
  26. count++;
  27. }
  28. return 0;
  29. }

此時會提示找不到ros/ros.hstd_msgs/String.h,我們繼續通過后面的步驟來解決.

配置.json文件

接下來配置c_cpp_properties.json,launch.json,tasks.json分別如下:

c_cpp_properties.json,用于指定C/C++類庫和包含路徑以及配置

按住Fn+F1,找到C/C++:編輯配置(JSON)

使用VScode搭建ROS開發環境的教程詳解

之后就會生產c_cpp_properties.json文件,修改文件內容如下:

  1. {
  2. "configurations": [
  3. {
  4. "name": "Linux",
  5. "includePath": [
  6. "${workspaceFolder}/**",
  7. "/opt/ros/melodic/include"
  8. ],
  9. "defines": [],
  10. "compilerPath": "/usr/bin/gcc",
  11. "cStandard": "c11",
  12. "cppStandard": "c++17",
  13. "intelliSenseMode": "clang-x64",
  14. "compileCommands": "${workspaceFolder}/build/compile_commands.json"
  15. }
  16. ],
  17. "version": 4
  18. }

其中/opt/ros/melodic/include為ROS相關頭文件所在的路徑,此時可能仍然找不到ros/ros.hstd_msgs/String.h,繼續運行以下命令即可在build文件夾下生成compile_commands.json文件

  1. catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=1

然后就可以找到ros/ros.hstd_msgs/String.h

launch.json,用于調試

按住Fn+F5啟動調試,就會生成launch.json,修改launch.json文件內容如下:

  1. {
  2. // 使用 IntelliSense 了解相關屬性。
  3. // 懸停以查看現有屬性的描述。
  4. // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [
  7. {
  8. "name": "(gdb) Launch",
  9. "type": "cppdbg",
  10. "request": "launch",
  11. "program": "${workspaceFolder}/build/helloworld/helloworld",// 表示可執行程序所在的路徑,其中,${workspaceRoot}表示VScode加載的文件夾的根目錄
  12. "args": [],
  13. "stopAtEntry": false,
  14. "cwd": "${workspaceFolder}",
  15. "environment": [],
  16. "externalConsole": false,
  17. "MIMode": "gdb",
  18. "setupCommands": [
  19. {
  20. "description": "Enable pretty-printing for gdb",
  21. "text": "-enable-pretty-printing",
  22. "ignoreFailures": true
  23. }
  24. ],
  25. //"preLaunchTask": "make build"//最好刪了,不然會影響調試,每次調試都直接執行make build
  26. }
  27. ]
  28. }

tasks.json,用于編譯

按住Fn+F1,找到任務:配置任務,創建tasks.json文件,修改tasks.json文件內容如下:

  1. {
  2. "version": "2.0.0",
  3. "tasks": [
  4. {
  5. "label": "catkin_make", //代表提示的描述性信息
  6. "type": "shell", //可以選擇shell或者process,如果是shell代碼是在shell里面運行一個命令,如果是process代表作為一個進程來運行
  7. "command": "catkin_make",//這個是我們需要運行的命令
  8. "args": [],//如果需要在命令后面加一些后綴,可以寫在這里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
  9. "group": {"kind":"build","isDefault":true},
  10. "presentation": {
  11. "reveal": "always"//可選always或者silence,代表是否輸出信息
  12. },
  13. "problemMatcher": "$msCompile"
  14. },
  15. ]
  16. }

修改CMakeLists.txt

繼續修改src/helloworld/CMakeLists.txt文件,在其中添加以下程序:

  1. # 頭文件路徑
  2. include_directories(
  3. include
  4. ${catkin_INCLUDE_DIRS}
  5. )
  6. # 生成可執行文件
  7. add_executable( helloworld src/helloworld.cpp )
  8. # 鏈接庫
  9. target_link_libraries(helloworld ${catkin_LIBRARIES})

結果測試

按住Ctrl+Shift+B編譯該程序,就可以看到與catkin_make一樣的編譯過程

使用VScode搭建ROS開發環境的教程詳解

最后測試生成的可執行文件.新開一個終端,運行ROS的master節點,然后按住Fn+F5運行生成的可執行文件,結果如下;

使用VScode搭建ROS開發環境的教程詳解

在另一個終端中輸出該程序發布的話題:

使用VScode搭建ROS開發環境的教程詳解

這樣,VScode的ROS開發環境就搭建好了

參考

ros項目調試:vscode下配置開發ROS項目

到此這篇關于使用VScode搭建ROS開發環境的教程詳解的文章就介紹到這了,更多相關VScode搭建ROS開發環境內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_42688495/article/details/107750466

延伸 · 閱讀

精彩推薦
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产毛片18片毛一级特黄日韩a | 国产精品久久久久久吹潮 | 91精品入口蜜桃 | 中文在线一区 | 亚洲国产精品久久人人爱 | 亚洲精品国产二区 | 亚洲精品久久久久久久久久久 | 一区二区三区高清 | 亚洲福利社区 | www.色.com| 日本黄色免费播放 | 欧美精品网 | 国产高清精品在线 | 午夜精品久久久久久久久久久久久 | 91免费视频 | 亚洲国产精品成人 | 成人永久免费视频 | 成人久久久精品国产乱码一区二区 | 亚洲精品久久久久久动漫 | 精品久久久久一区二区国产 | 欧美视频第一页 | 日韩精品免费视频 | 国产在线视频一区二区 | 一区二区国产在线观看 | 国产精品久久久久久久久久久久久久久久 | 国产精品久久久久久久久久久久 | 久久777| 中文字幕四虎 | 亚洲综合大片69999 | 久久久亚洲 | 亚洲视频第一页 | 日本一区二区不卡在线观看 | 欧美日韩一区二 | 成人在线网址 | 在线视频三级 | wwwav在线播放| 国产美女在线观看 | 国产最新视频 | 精品久久久久久久 | 国产一区二区三区视频在线观看 | 日韩欧美视频免费观看 |