IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ROS学习第四天 -> 正文阅读

[人工智能]ROS学习第四天

今天学习订阅这个话题的实现。我们要订阅这个话题是关于小海龟的位置信息。依旧是先运行roscore。然后启动小海龟节点。输入rostopic list,查看当前小海龟启动后的对应的话题。
在这里插入图片描述
我们要订阅的话题就是/turtle1/pose。具体查看某个话题,比如查看改话题的发布者(Publishers)和订阅者(Subscribers)以及话题的类型(Type),用命令:rostopic info +某个话题。这里我们输入指令
rostopic info /turtle1/pose

在这里插入图片描述
这个话题所包含是海龟的位置信息,我们可以输入指令查看里面的包含的数据类型。:

rosmsg show turtlesim/Pose 

在这里插入图片描述
接下俩我们编写c++和python对应的程序。这里仍旧用的是古月居老师的例程。
具体c++代码:

#include <ros/ros.h>
#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();
}

python代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

########################################################################
####          Copyright 2020 GuYueHome (www.guyuehome.com).          ###
########################################################################

# 该例程将订阅/turtle1/pose话题,消息类型turtlesim::Pose
import rospy
from turtleim.msg import Pose
def poseCallback(msg):
	rospy.loginfo("Turtle pose: x:%0.6f,y:%0.6f")
def pose_subcriber():
	#ros节点初始化
	rospy.init_node('pose_subcriber',anonymous=True)
	#创建一个Subscriber,订阅名为/turtle1/pose的Topic,注册回调函数poseCallback
	rospy.Subscriber("/turtle1/pose",Pose,poseCallback)
	#循环等待回调函数
	rospy.spin()
if __name__ == '__main__':
	pose_subcriber()

运行c++程序时候我们仍然需要先往CMakelists.txt添加俩句指令:

add_executable(pose_subscriber src/pose_subscriber.cpp)
target_link_libraries(pose_subscriber ${catkin_LIBRARIES})

所在路径如下图所示:
在这里插入图片描述
接下来切换回根文件夹,输入指令:catkin_make.等待编译成功。接下来仍旧要是环境变量生效,但每次输入过于麻烦,所以可以让环境变量生效可以往/home/bathwind你的文件夹下的隐藏文件.bashrc文件。如下图所示。
在这里插入图片描述
在保存完之后重启终端窗口。输入指令rosrun learning_topic pose_subsiber运行编译好的c++程序。
在这里插入图片描述
发现程序能够返回坐标,证明订阅话题的数据能够实现。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:00:00  更:2022-01-08 14:02:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 8:49:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码