Linux 環境下の VScode で ROS、PCL、OpenCV 開発環境レコードを構成する

1. 必要なプラグインをインストールする

VScode を開き、開発中にCMake、CMake Tools、ROS、catkin-toolsプラグインをインストールします。スクリーンショットは次のとおりです。インストール後、VScode プラグインを再度開くと有効になります。

 2. ROS ワークスペースを作成する

選択したパスの下でターミナルを開いてワークスペースを作成します。具体的なコマンドは次のとおりです。

mkdir -p ~/ROS_Study2/src
cd ~/ROS_Study2/src
catkin_init_workspace

cd ~/ROS_Study2
catkin_make

3. VScode でワークスペースを開き、作業パッケージを作成します

VScode で上記で作成したワークスペースを開くと、ファイル ディレクトリは次のように表示されます。

 を右クリックしてsrcを選択しCreate Catkin Package、パッケージに HelloROS という名前を付けます。

 次のステップは、roscpp 兄弟 rospy 依存関係を追加することです。

 次に、srcファイル内のファイルディレクトリは以下のとおりです。

 .vscode で自動的に生成されc_cpp_properties.jsonますsettings.json

 次に、src/helloROS/src ディレクトリに cpp ファイルを追加します。コマンドは helloros.cpp で、内容は次のとおりです。

#include <iostream>
#include <string>
#include <sstream>
#include <ros/ros.h>
#include <std_msgs/String.h>

using namespace std;

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

4. vscode での json ファイルの生成と設定

1. c_cpp_properties.json: C/C++ クラス ライブラリを指定し、 path を含めるのに使用されます。Fn+F1 を押したままにして検索します。C/C++:编辑配置(JSON)即可自动生成json文件(这里已经自动生成,不需要创建)

 ここで自動的に生成されるc_cpp_properties.jsonファイル、具体的な内容は次のとおりです。

{
  "configurations": [
    {
      "browse": {
        "databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db",
        "limitSymbolsToIncludedHeaders": false
      },
      "includePath": [
        "/opt/ros/kinetic/include/**",
        "/usr/include/**"
         //这里就可以包含ROS,PCL和OpenCV相关的头文件的路径
      ],
      "name": "ROS",
      "intelliSenseMode": "gcc-x64",
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "gnu11",
      "cppStandard": "c++14"
    }
  ],
  "version": 4
}

2.tasks.json :コンパイル用

ctrl + shfit + p入力コマンド を押しtasks: configure taskドロップダウンで選択してファイルをcatkin_make: build 自動的に生成します。tasks.json生成されたtasks.jsonファイルの内容は次のとおりです。

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "catkin_make",
			"args": [
				"--directory",
				"/home/yang/Project/ROS_Study2",
				"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
			],
			"problemMatcher": [
				"$catkin-gcc"
			],
			"group": "build",
			"label": "catkin_make: build"
		}
	]
}

src/helloROS/CMakeLists.txt ファイルを変更し、次の内容を追加します。

catkin_package(
  CATKIN_DEPENDS
)
# 头文件路径
include_directories(
include
  ${catkin_INCLUDE_DIRS}
)
# 生成可执行文件
add_executable( helloROS src/helloros.cpp )
# 链接库
target_link_libraries(helloROS ${catkin_LIBRARIES})

3.  launch.json、デバッグ用

ショートカット キーをctrl+shift+d使用して、新しいlaunch.jsonファイルを作成すると、次の内容が自動的に生成されます。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/devel/lib/helloROS/helloROS",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
    ]
}

5 つの実行ノード

1.ROS MASTERを実行する

执行快捷键ctrl + shfit + p,

再输入 ROS:Start

 2. ノードを実行します

执行快捷键ctrl + shfit + p

输入ROS:Run a Ros executable

依次输入创建的功能包的名称以及节点名称(即编译成功后二进制文件的名称,注意不是文件名)

 端末は次のように結果を出力します。

 ここまでで、VScode での ROS の設定は完了しましたが、VScode での PLC と OpenCV の設定は、対応するヘッダー ファイルのパスと関連コマンドを c_cpp_properties.json と CMakeLists.txt に追加するだけで、動的補完機能を実現できます。

追記: VScode は、 compile_commands.json を使用して includePath 環境を構成します

1.cmakeを使用してcompile_commands.jsonをエクスポートする

コマンド:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=YES ..

2. ROS で使用する

コマンド:catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=YES

3. CMakeLists.txtにsetコマンドを追加します。

命令:set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

4.VScodeにcompile_commands.jsonを追加します

加える:

"compileCommands": "${workspaceFolder}/build/compile_commands.json" //cmake によって生成されたcompile_commands.jsonを追加します

図に示すように:

おすすめ

転載: blog.csdn.net/qq_36812406/article/details/127696926