学习笔记:ROS使用经验(创建功能包)

在ROS中使用C++编写一个节点,你需要按照以下步骤进行操作:

1.创建一个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.使用文本编辑器(如vimnano)打开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
今日推荐