pdf文档 古月《ROS入门21讲》10.发布者Publisher的编程实现.pdf

1.12 MB 8 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档详细介绍了ROS中发布者(Publisher)的编程实现,包括初始化ROS节点、向ROS Master注册节点信息、创建消息数据以及按照一定频率循环发布消息的步骤。文档提供了Python和C++两种语言的实现示例,展示了如何在ROS环境中配置并运行发布者节点。此外,还介绍了如何通过Catkin创建功能包、配置CMakeLists.txt以管理编译规则,以及如何使用 turtlesim 模拟器进行测试。
AI总结
以下是文档内容的总结,简洁明了地概括了核心观点和关键信息: --- ### ROS发布者(Publisher)的实现 #### 实现步骤: 1. **初始化ROS节点**:向ROS Master注册节点信息,包括发布的话题名和消息类型。 2. **创建消息数据**:使用特定类型的消息(如`geometry_msgs::Twist`),并填充消息数据。 3. **按照一定频率循环发布消息**:设置循环频率,循环发布消息。 #### 示例代码: 1. **Python实现(`velocity_publisher.py`)**: - 初始化节点:`rospy.init_node('velocity_publisher', anonymous=True)`。 - 创建发布者:`rospy.Publisher('/turtle/cmd_vel', Twist, queue_size=19)`。 - 设置循环频率:`rospy.Rate(19)`。 - 发布消息:`turtle_vel_pub.publish(vel_msg)`。 2. **C++实现(`velocity_publishercpp.cpp`)**: - 初始化节点:`ros::init(argc, argv, "velocity_publisher");`。 - 创建节点句柄:`ros::NodeHandle nh;`。 - 创建发布者:`ros::Publisher turtle_vel_pub = nh.advertise("/turtle/cmd_vel", 19);`。 - 设置循环频率:`ros::Rate loop_rate(16);`。 - 发布消息:`turtle_vel_pub.publish(vel_msg);`。 #### 配置工具链: 1. **创建功能包**: - 使用`catkin_create_pkg`创建并配置功能包`learning_topic`,依赖包包括`roscpp`、`rospy`、`std_msgs`、`geometry_msgs`、`turtlesim`。 - 配置`CMakeLists.txt`,添加可执行文件目标 và 链接库: ```cmake add_executable(velocity_publisher src/velocity_publishercpp) target_link_libraries(velocity_publisher ${catkin_LIBRARIES}) ``` #### 运行测试: 1. 编译代码:`cd ~/catkin_ws; catkin_make`。 2. 运行: - 启动ROS Master:`roscore`。 - 启动Turtlesim节点:`rosrun turtlesim turtlesim_node`。 - 运行发布者节点:`rosrun learning_topic velocity_publisher`。 #### 输出信息示例: ```bash INFO] [1562269882.139849161]: PubLsh turtte veLoctty command[9. INFO] [1562299882.233767855]: PubLsh turtte veLocity command[6. ``` --- ### 概述 文档详细介绍了如何在ROS中实现一个发布者节点,包括Python和C++的具体实现步骤、功能包的配置以及代码的编译和运行。通过这些步骤,可以创建一个向`/turtle/cmd_vel`话题发布`geometry_msgs::Twist`类型消息的节点,并以指定频率循环发送消息。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 1 页请下载阅读 -
文档评分
请文明评论,理性发言.