欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > ROS 2中创建一个节点

ROS 2中创建一个节点

2024/10/25 7:33:09 来源:https://blog.csdn.net/weixin_44318762/article/details/140949950  浏览:    关键词:ROS 2中创建一个节点

ROS 2中创建一个节点

ROS 2(机器人操作系统2)是一个为机器人开发提供支持的开源框架。本文将介绍如何使用ros2 pkg create命令来创建一个新的ROS 2包,并在该包中创建一个简单的C++和Python节点。

前提条件

在开始之前,请确保您已经安装了ROS 2。

创建一个新的ROS 2包

首先,打开终端并导航到您的ROS 2工作空间。通常,工作空间的名称是ros2_ws。如果您还没有创建一个工作空间,可以使用以下命令创建:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src

接下来,使用ros2 pkg create命令创建一个新的包。例如,我们将创建一个名为robotcpprobotpy的新包:

ros2 pkg create robotcpp --build-type ament_cmake --dependencies rclcpp
ros2 pkg create robotpy  --build-type ament_python --dependencies rclpy

该命令将在src目录中创建一个名为my_robot的新包,并包含基本的目录结构和文件。

在C++中创建一个节点

1. 编写C++节点代码

首先,导航到robotcpp包的src目录:

cd ~/ros2_ws/src/robotcpp/src

创建一个名为my_robot_node.cpp的C++文件,并添加以下代码:

#include "rclcpp/rclcpp.hpp"class MyRobotNode : public rclcpp::Node {
public:MyRobotNode() : Node("my_robot_node") {RCLCPP_INFO(this->get_logger(), "Hello, ROS 2 from C++!");}
};int main(int argc, char **argv) {rclcpp::init(argc, argv);rclcpp::spin(std::make_shared<MyRobotNode>());rclcpp::shutdown();return 0;
}

2. 修改CMakeLists.txt

打开CMakeLists.txt文件,并添加以下内容以包含新的C++节点:

add_executable(my_robot_node src/my_robot_node.cpp)
ament_target_dependencies(my_robot_node rclcpp)
install(TARGETSmy_robot_nodeDESTINATION lib/${PROJECT_NAME})

在这里插入图片描述

3. 构建包

返回到工作空间的根目录,并构建包:

cd ~/ros2_ws
colcon build

4. 运行C++节点

构建完成后,使用以下命令运行C++节点:

source ~/ros2_ws/install/setup.bash
ros2 run robotcpp my_robot_node

您应该会在终端中看到"Hello, ROS 2 from C++!"的输出。

在这里插入图片描述

在Python中创建一个节点

1. 编写Python节点代码

首先,导航到robotpy包的robotpy目录::

cd ~/ros2_ws/src/robotpy/robotpy

创建一个名为my_robot_node.py的Python文件,并添加以下代码:

import rclpy
from rclpy.node import Nodeclass MyRobotNode(Node):def __init__(self):super().__init__('my_robot_node')self.get_logger().info('Hello, ROS 2 from Python!')def main(args=None):rclpy.init(args=args)node = MyRobotNode()rclpy.spin(node)node.destroy_node()rclpy.shutdown()if __name__ == '__main__':main()

2. 修改setup.py

打开setup.py文件,并添加以下内容以包含新的Python节点:

"my_robot_node=robotpy.my_robot_node:main"

在这里插入图片描述

3. 构建包

返回到工作空间的根目录,并构建包:

cd ~/ros2_ws
colcon build

4. 运行Python节点

构建完成后,使用以下命令运行Python节点:

source ~/ros2_ws/install/setup.bash
ros2 run robotpy my_robot_node

您应该会在终端中看到"Hello, ROS 2 from Python!"的输出。

在这里插入图片描述

结论

通过本文,您已经学习了如何使用ros2 pkg create命令创建一个新的ROS 2包,并在其中创建和运行简单的C++和Python节点。这是开始使用ROS 2进行机器人开发的第一步。接下来,您可以探索更多的ROS 2功能,如发布者和订阅者、服务和动作等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com