学習メモ:ROS利用体験(機能パッケージの作成)

C++ を使用して ROS でノードを作成するには、次の手順に従う必要があります。

1. ROS ワークスペースを作成します (すでに ROS ワークスペースがある場合は、この手順をスキップしてください)。ターミナルを開き、次のコマンドを実行します。

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

2. ROS ワークスペースのディレクトリを入力しsrc、新しいパッケージを作成します。次のコマンドを実行します。

cd ~/catkin_ws/src
catkin_create_pkg my_package_name roscpp std_msgs

my_package_nameこれにより、 という新しいパッケージが作成され、 とroscppstd_msgs依存関係として追加されます。

3. パッケージのディレクトリに移動し、my_node.cppという名前の新しいファイルを作成します。次のコマンドを実行します。

cd ~/catkin_ws/src/my_package_name
touch my_node.cpp

4.テキスト エディタ ( または などvim)を使用してファイルnanoを開きmy_node.cpp、ノード コードを記述します。簡単な例を次に示します。

#include <ros/ros.h>
#include <std_msgs/String.h>

void messageCallback(const std_msgs::String::ConstPtr& msg)
{
    ROS_INFO("Received message: %s", msg->data.c_str());
}

int main(int argc, char** argv)
{
    ros::init(argc, argv, "my_node");
    ros::NodeHandle nh;

    ros::Subscriber sub = nh.subscribe("my_topic", 10, messageCallback);

    ros::spin();

    return 0;
}

この例では、ROS ライブラリと std_msgs ライブラリを組み込み、messageCallback受信したメッセージを処理するコールバック関数を定義し、関数内でmainノードを初期化し、サブスクライバを作成してノードのループを開始します。

5.CMakeLists.txtファイルを編集してノードをビルド システムに追加します。ターミナルを開き、パッケージのディレクトリに移動し、次のコマンドを実行します。

cd ~/catkin_ws/src/my_package_name
nano CMakeLists.txt

6.add_executable行を見つけて、その下に次の行を追加します。

add_executable(my_node src/my_node.cpp)  # 替换成你的节点文件名
target_link_libraries(my_node ${catkin_LIBRARIES})

7. ROS ワークスペースのルート ディレクトリに戻り、コンパイル コマンドを実行します。

cd ~/catkin_ws
catkin_make

8. ノードを実行します。ターミナルで次のコマンドを実行します。

rosrun my_package_name my_node

これによりノードが起動し、メッセージの受信と処理が開始されます。

独自のニーズに応じて変更および拡張します。また、コードを記述するときは、必ず ROS の仕様とベスト プラクティスに従ってください。

おすすめ

転載: blog.csdn.net/weixin_56337147/article/details/132554307