完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
C++
编写程序 nano ~/catkin_workspace/src/learning_topic/src/pose_subscriber.cpp /*********************************************************************** Copyright 2020 GuYueHome (www.guyuehome.com). ***********************************************************************/ /** * 该例程将订阅/turtle1/pose话题,消息类型turtlesim::Pose */ #include #include "turtlesim/Pose.h" // 接收到订阅的消息后,会进入消息回调函数 void poseCallback(const turtlesim::Pose::ConstPtr& msg) { // 将接收到的消息打印出来 ROS_INFO("Turtle pose: x:%0.6f, y:%0.6f", msg->x, msg->y); } int main(int argc, char **argv) { // 初始化ROS节点 ros::init(argc, argv, "pose_subscriber"); // 创建节点句柄 ros::NodeHandle n; // 创建一个Subscriber,订阅名为/turtle1/pose的topic,注册回调函数poseCallback ros::Subscriber pose_sub = n.subscribe("/turtle1/pose", 10, poseCallback); // 循环等待回调函数 ros::spin(); return 0; } 配置CMakeLists.txt nano ~/catkin_workspace/src/learning_topic/CMakeLists.txt 在Build内,Install前加入 add_executable(pose_subscriber src/pose_subscriber.cpp) target_link_libraries(pose_subscriber ${catkin_LIBRARIES}) 编译并运行发布者 cd ~/catkin_workspace catkin_make # 新建一个终端 source ~/catkin_workspace/devel/setup.bash roscore # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rosrun turtlesim turtlesim_node # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rosrun learning_topic velocity_publisher # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rosrun learning_topic pose_subscriber # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rqt_graph python 创建并编写脚本 nano ~/catkin_workspace/src/learning_topic/scripts/pose_subscriber.py #!/usr/bin/env python # -*- coding: utf-8 -*- ######################################################################## #### Copyright 2020 GuYueHome (www.guyuehome.com). ### ######################################################################## # 该例程将订阅/turtle1/pose话题,消息类型turtlesim::Pose import rospy from turtlesim.msg import Pose def poseCallback(msg): rospy.loginfo("Turtle pose: x:%0.6f, y:%0.6f", msg.x, msg.y) def pose_subscriber(): # ROS节点初始化 rospy.init_node('pose_subscriber', anonymous=True) # 创建一个Subscriber,订阅名为/turtle1/pose的topic,注册回调函数poseCallback rospy.Subscriber("/turtle1/pose", Pose, poseCallback) # 循环等待回调函数 rospy.spin() if __name__ == '__main__': pose_subscriber() 运行 sudo chmod +x ~/catkin_workspace/src/learning_topic/scripts/pose_subscriber.py # 新建一个终端 source ~/catkin_workspace/devel/setup.bash roscore # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rosrun turtlesim turtlesim_node # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rosrun learning_topic velocity_publisher.py # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rosrun learning_topic pose_subscriber.py # 新建一个终端 source ~/catkin_workspace/devel/setup.bash rqt_graph |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1285 浏览 1 评论
RK3568平台,进入烧录模式,部分电脑提示无法识别,无法烧录
4306 浏览 1 评论
【RK3568 Android11.0】如何在设置-显示-HDMI-分辨率设置中添加3840*2160的选项?
6896 浏览 1 评论
瑞芯微第二代8nm高性能AIOT平台 RK3576 详细介绍
1710 浏览 0 评论
7147 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-9 15:52 , Processed in 0.661900 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号