精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用VScode搭建ROS開發環境

新機器視覺 ? 來源:CSDN ? 2023-04-17 10:18 ? 次閱讀

俗話說"工欲善其事必先利其器",之前在Ubuntu上運行的ROS項目都是用vim或者gedit編寫和修改代碼,然后在終端編譯運行,很不方便,函數跳轉查看都沒辦法實現。

所以今天我決定找一個方便的開發工具,也就是找一個像Windows上的VS那樣的集成開發工具(IDE),ROS官網上有一個不同IDE的對比文章,網址在:

http://wiki.ros.org/IDEs

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

創建ROS工作環境

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

mkdir src && cd src
catkin_init_workspace
cd ../
catkin_make

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

7ecca2a8-dcb1-11ed-bfe3-dac502259ad0.png

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

7ed1b5fe-dcb1-11ed-bfe3-dac502259ad0.png

添加roscpp, rospy作為依賴項

7edd7074-dcb1-11ed-bfe3-dac502259ad0.png

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

7ee6f66c-dcb1-11ed-bfe3-dac502259ad0.png

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

#include 
#include 
#include 
using namespace std;


#include "ros/ros.h"
#include "std_msgs/String.h"


int main(int argc, char** argv)
{
 ros::init(argc, argv, "talker");
 ros::NodeHandle n;
 ros::Publisher chatter_pub = n.advertise("chatter", 1000);
 ros::Rate loop_rate(10);
 int count = 0;
 while(ros::ok())
 {
  std_msgs::String msg;
  std::stringstream ss;
  ss << "hello world " << count;
  msg.data = ss.str();
  ROS_INFO("%s", msg.data.c_str());
  chatter_pub.publish(msg);
  ros::spinOnce();
  loop_rate.sleep();
  count++;
 }
 return 0;
}

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

配置.json文件

接下來配置

c_cpp_properties.json,launch.json,tasks.json分別如下:

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

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

7eee85d0-dcb1-11ed-bfe3-dac502259ad0.png

之后就會生成c_cpp_properties.json文件,修改文件內容如下,其中"/opt/ros/melodic/include"是

{
  "configurations": [
    {
      "name": "Linux",
      "includePath": [
        "${workspaceFolder}/**",
        "/opt/ros/melodic/include"
      ],
      "defines": [],
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "clang-x64",
      "compileCommands": "${workspaceFolder}/build/compile_commands.json"
    }
  ],
  "version": 4
}

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

catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=1

然后就可以找到ros/ros.h和std_msgs/String.h了

launch.json,用于調試

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

{
  // 使用 IntelliSense 了解相關屬性。
  // 懸停以查看現有屬性的描述。
  // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
      {
      "name": "(gdb) Launch",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/devel/lib/helloworld/helloworld",// 表示可執行程序所在的路徑,其中,${workspaceRoot}表示VScode加載的文件夾的根目錄
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      //"preLaunchTask": "make build"http://最好刪了,不然會影響調試,每次調試都直接執行make build
    }
  ]
}

tasks.json,用于編譯

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

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

修改CMakeLists.txt

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

catkin_package(
 CATKIN_DEPENDS
)
# 頭文件路徑
include_directories(
include
 ${catkin_INCLUDE_DIRS}
)
# 生成可執行文件
add_executable( helloworld src/helloworld.cpp )
# 鏈接庫
target_link_libraries(helloworld ${catkin_LIBRARIES})

結果測試

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

7efebf0e-dcb1-11ed-bfe3-dac502259ad0.png

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

7f11ff38-dcb1-11ed-bfe3-dac502259ad0.png

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

7f1f6420-dcb1-11ed-bfe3-dac502259ad0.png

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

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4308

    瀏覽量

    62445
  • ROS
    ROS
    +關注

    關注

    1

    文章

    276

    瀏覽量

    16967
  • vscode
    +關注

    關注

    1

    文章

    154

    瀏覽量

    7674

原文標題:使用VScode搭建ROS開發環境

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CW32 搭建VSCODE+GCC交叉編譯環境

    在win10下面創建vscode+gcc開發武漢芯源CW32L系列MCU的編譯環境
    的頭像 發表于 06-28 17:02 ?2.6w次閱讀
    CW32 <b class='flag-5'>搭建</b><b class='flag-5'>VSCODE</b>+GCC交叉編譯<b class='flag-5'>環境</b>

    VSCODE+STM32開發環境搭建方式

    史上最簡單的VSCODE+STM32開發環境搭建方式——基于IoT_Link寫在前邊現在用MDK開發STM32越來越惡心了,我天朝向來不缺乏
    發表于 08-03 08:20

    VSCode搭建STM32開發環境

    VSCode搭建STM32開發環境
    發表于 08-24 06:56

    求大佬分享基于IoT Link的VSCODE+STM32開發環境搭建方式

    求大佬分享基于IoT Link的VSCODE+STM32開發環境搭建方式
    發表于 10-11 09:18

    VSCode搭建類似Keil的開發環境

    強大的編輯器之后,就再也回不去了。再次面對Keil時,感覺keil的代碼編輯或者閱讀代碼的功能實在是太不友好了,所以已經習慣不了Keil了。于是,想著能不能在VSCode搭建類似Keil的開發
    發表于 11-19 07:44

    怎樣去搭建一種ROS Windows開發環境

    怎樣去搭建一種ROS Windows開發環境呢?怎樣在Windows中編譯ROS Qt功能包呢?
    發表于 11-22 06:59

    VScode + keil開發環境搭建

    GD32系列總結 - VScode + keil開發環境搭建寫在前面Keil Assistant插件安裝與使用遇見的問題include波浪線警告中文備注亂碼last line of f
    發表于 11-30 07:56

    基于vscode編輯器的stm32 Arduino開發環境如何去搭建

    怎樣去下載并安裝vscode開發環境呢?基于vscode 編輯器的stm32 Arduino開發環境
    發表于 01-24 07:47

    如何搭建VSCode開發環境

    如何搭建VSCode開發環境
    發表于 02-11 08:10

    求Windows下VSCode + kendryte插件 搭建K210開發環境指南

    手上有塊MaixDock K210,想在Windows環境下,嘗試用VSCode搭建開發環境。在VSCo
    發表于 06-04 22:22

    ubuntu18安裝vscode搭建嵌入式linux開發環境

    ubuntu18安裝vscode搭建嵌入式linux開發環境安裝vscode配置vscode(安
    發表于 11-01 16:57 ?10次下載
    ubuntu18安裝<b class='flag-5'>vscode</b><b class='flag-5'>搭建</b>嵌入式linux<b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    VSCode搭建STM32單片機開發環境

    強大的編輯器之后,就再也回不去了。再次面對Keil時,感覺keil的代碼編輯或者閱讀代碼的功能實在是太不友好了,所以已經習慣不了Keil了。于是,想著能不能在VSCode搭建類似Keil的開發
    發表于 11-13 11:06 ?15次下載
    <b class='flag-5'>VSCode</b><b class='flag-5'>搭建</b>STM32單片機<b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    GD32系列總結 - VScode + keil開發環境搭建

    GD32系列總結 - VScode + keil開發環境搭建寫在前面Keil Assistant插件安裝與使用遇見的問題include波浪線警告中文備注亂碼last line of f
    發表于 11-21 17:36 ?26次下載
    GD32系列總結 - <b class='flag-5'>VScode</b> + keil<b class='flag-5'>開發</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    arduino / VScode+platformIO搭建esp32/esp8266編譯環境(一篇足矣)

    arduino/VScode+platformIO 搭建esp32/esp8266開發環境(一篇足矣)前言:入門開源硬件開發,在
    發表于 12-05 14:06 ?33次下載
    arduino / <b class='flag-5'>VScode</b>+platformIO<b class='flag-5'>搭建</b>esp32/esp8266編譯<b class='flag-5'>環境</b>(一篇足矣)

    VScode+keil開發環境搭建安裝使用過程

    這篇文章主要介紹了VScode + keil開發環境搭建及安裝使用過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下。
    的頭像 發表于 10-21 09:19 ?5075次閱讀