当前位置: 首页 > news >正文

智能建站是什么百度手机助手app免费下载

智能建站是什么,百度手机助手app免费下载,学校网站建设源代码,怎么创建自己的购物平台目录 说明: 1. 话题模型 图示 说明 2. 实现过程(C) 创建订阅者代码(C) 配置发布者代码编译规则 编译并运行 编译 运行 3. 实现过程(Python) 创建订阅者代码(Python&…

目录

说明:

1. 话题模型

图示

说明

2. 实现过程(C++)

创建订阅者代码(C++)

配置发布者代码编译规则

编译并运行

编译

运行

3. 实现过程(Python)

创建订阅者代码(Python)

运行效果


说明:

1. 本系列学习笔记基于B站:古月居《ROS入门21讲》课程,且使用的Ubuntu与ROS系统版本与课程完全一致;

虚拟机版本Linux系统版本ROS系统版本
VMware WorkStation Pro 16Ubuntu18.04Melodic

2. 课程中的所有示例代码均已跑通,且对Pyhon版本的代码也都做了运行验证,并附带验证过程(错误均已修正);

3. 本节是整个笔记的第9节,对应视频课程的第11节,请自行对应学习;

4. 整个系列笔记基本已经完结,但部分章节仍需润色修改 ,后面会陆续发布,请大家持续关注,      创作不易,感谢支持!


1. 话题模型

图示

image-20230524132510712

说明

ROS Master:管理所有节点

主要节点:

Publisher(turtlesim): 消息的发布者,后面会通过程序(c++,py)实现发布者发布一个位置消息数据;

Message(turtlesim::Pose): 发布者发布的消息数据,Pose为位置消息数据;

Topic(/turtle1/pose): 消息传输管道,将发布者发布的消息数据传输给订阅者,

让Subscriber(Pose Listener)订阅者得到这个消息数据;

Subscriber(Pose Listener): 消息的订阅者,Subscriber(Pose Listener)接收到通过

Topic(/turtle1/pose)传输来的消息数据Message(turtlesim::Pose)。

2. 实现过程(C++)

创建订阅者代码(C++)

cd ~/catkin_ws/src/learning_topic/src 
touch pose_subscriber.cpp

初始化ROS节点;

订阅需要的话题;

循环等待话题消息,接收到消息后进入回调函数;

在回调函数中完成消息处理。

/*** 该例程将订阅/turtle1/pose话题,消息类型turtlesim::Pose*/#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;
​// 定义一个名为turtle_vel_pub的Subscriber,订阅名为/turtle1/pose的topic,注册回调函数poseCallbackros::Subscriber pose_sub = n.subscribe("/turtle1/pose", 10, poseCallback);
​// 循环等待回调函数ros::spin();
​return 0;
}

第(1)步:切换工作路径到~/catkin_ws/srclearning_topic/src目录下

第(2)步:创建代码文件pose_subscriber.cpp;

第(3)步:复制代码到文件中并保存,

image-20230524141635326

配置发布者代码编译规则

将下面两行代码复制到CMakeLists.txt文件中,

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

上面两行代码的作用:

add_executable:将pose_subscriber.cpp代码文件编译成(pose_subscriber可执行文件;

target_link_libraries:把编译生成的可执行文件pose_subscriber跟ROS相关的一些库做连接的,比如调用的C++的接口。

复制到CMakeLists.txt文件中的位置如下:

image-20230524142947987

编译并运行

编译
cd ~/catkin_ws
catkin_make

第一步:先把工作路径切换到catkin_ws工作空间目录下;

第二步:在catkin_ws工作空间目录下catkin_make编译代码文件

image-20230524144734029

运行
roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic pose_subscriber

第一步:打开ROS Master,打开一个新终端输入:roscore;

第二步:运行海龟仿真器,再打开一个新终端输入:rosrun turtlesim turtlesim_node;

第三步:运行我们编译好的可执行文件,再打开一个新终端输入:rosrun learning_topic pose_subscriber,

这个程序会不断的发布海龟的当前位置(x,y坐标)。

image-20230524145843653

如果我们让海龟动起来,就可以看到海龟当前位置的变化效果,我们可以通过程序或者海龟的键盘控制节点让海龟动起来,

下面为海龟的键盘控制节点方式,

打开一个新终端输入:rosrun turtlesim turtle_teleop_key

image-20230524150527191

我们上面运行的可执行文件的位置在 home/catkin_ws/devel/lib/learning_topic 目录下

image-20230524150713776

3. 实现过程(Python)

创建订阅者代码(Python)

cd ~/catkin_ws/src/learning_topic/scripts
touch pose_subscriber.py

第一步:先把工作路径切换到~/catkin_ws/src/learning_topic/scripts目录下;

第二步:在scripts文件夹下创建pose_subscriber.py文件;

第三步:双击打开pose_subscriber.py文件,复制代码到里面并保存

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 该例程将订阅/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,注册回调函数poseCallbackrospy.Subscriber("/turtle1/pose", Pose, poseCallback)
​# 循环等待回调函数rospy.spin()
​
if __name__ == '__main__':pose_subscriber()
​
​

image-20230524151510193

注意:给pose_subscriber.py文件赋予作为程序文件执行的权限,

点击pose_subscriber.py文件,右键,属性,权限,勾选(允许作为程序文件执行),

python文件不需要编译,直接运行即可。

image-20230524152156390

运行效果

运行pose_subscriber.py文件,流程和上面一样,

roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic pose_subscriber.py

image-20230524153342140


文章转载自:
http://dinncopannage.knnc.cn
http://dinncotheorematic.knnc.cn
http://dinncowisperer.knnc.cn
http://dinncomagnetostatic.knnc.cn
http://dinncorevaccination.knnc.cn
http://dinncowinebibbing.knnc.cn
http://dinncoliteracy.knnc.cn
http://dinncodeclarator.knnc.cn
http://dinncocoecilian.knnc.cn
http://dinncotrainband.knnc.cn
http://dinncobeton.knnc.cn
http://dinncofaradaic.knnc.cn
http://dinncooperation.knnc.cn
http://dinncoanthroposcopy.knnc.cn
http://dinncoopportunistic.knnc.cn
http://dinncoringbone.knnc.cn
http://dinncooxalate.knnc.cn
http://dinncothyrotoxic.knnc.cn
http://dinncoandamanese.knnc.cn
http://dinncofebrifugal.knnc.cn
http://dinncofreebase.knnc.cn
http://dinncosumptuously.knnc.cn
http://dinncoamd.knnc.cn
http://dinncolamington.knnc.cn
http://dinncocelebrant.knnc.cn
http://dinncofootwell.knnc.cn
http://dinncocembra.knnc.cn
http://dinncokilostere.knnc.cn
http://dinncoinvincible.knnc.cn
http://dinncooverlay.knnc.cn
http://dinncosculduddery.knnc.cn
http://dinncolocaliser.knnc.cn
http://dinncopanocha.knnc.cn
http://dinncoaviette.knnc.cn
http://dinncoaquanautics.knnc.cn
http://dinncopiscary.knnc.cn
http://dinncotheia.knnc.cn
http://dinncomagistral.knnc.cn
http://dinncojain.knnc.cn
http://dinncoanodic.knnc.cn
http://dinncoosseous.knnc.cn
http://dinncoextracurriculum.knnc.cn
http://dinncotyphoeus.knnc.cn
http://dinncoagamont.knnc.cn
http://dinncoborer.knnc.cn
http://dinncobiwa.knnc.cn
http://dinnconebulous.knnc.cn
http://dinncorustle.knnc.cn
http://dinncoshearbill.knnc.cn
http://dinncoregurgitant.knnc.cn
http://dinncoschoolmiss.knnc.cn
http://dinncobronchium.knnc.cn
http://dinncowallaceism.knnc.cn
http://dinncoalmsman.knnc.cn
http://dinncoposteriorly.knnc.cn
http://dinncostammrel.knnc.cn
http://dinncoscalprum.knnc.cn
http://dinncodewitt.knnc.cn
http://dinncorubasse.knnc.cn
http://dinncomodestly.knnc.cn
http://dinncoshiralee.knnc.cn
http://dinncoslowdown.knnc.cn
http://dinncomitigation.knnc.cn
http://dinncogeorgette.knnc.cn
http://dinnconampo.knnc.cn
http://dinncowalker.knnc.cn
http://dinncocreed.knnc.cn
http://dinncoworking.knnc.cn
http://dinncoroughly.knnc.cn
http://dinncoacetated.knnc.cn
http://dinncoskitter.knnc.cn
http://dinncorealizingly.knnc.cn
http://dinncoreposefully.knnc.cn
http://dinncoimpuissant.knnc.cn
http://dinncodateless.knnc.cn
http://dinncolegality.knnc.cn
http://dinncosholom.knnc.cn
http://dinncohexamethylene.knnc.cn
http://dinncoringent.knnc.cn
http://dinncotropicalize.knnc.cn
http://dinncoaldine.knnc.cn
http://dinncocrossbedding.knnc.cn
http://dinncorepossessed.knnc.cn
http://dinncofashionable.knnc.cn
http://dinncotarnish.knnc.cn
http://dinncocetologist.knnc.cn
http://dinncomaneating.knnc.cn
http://dinncowithhold.knnc.cn
http://dinncoumohoite.knnc.cn
http://dinncoragefully.knnc.cn
http://dinncoaerialist.knnc.cn
http://dinncocupula.knnc.cn
http://dinncoriffian.knnc.cn
http://dinncoeris.knnc.cn
http://dinncohypermetamorphic.knnc.cn
http://dinncoepochal.knnc.cn
http://dinncotubulure.knnc.cn
http://dinncoliepaja.knnc.cn
http://dinncoairwoman.knnc.cn
http://dinncopebbly.knnc.cn
http://www.dinnco.com/news/118438.html

相关文章:

  • h5case什么网站排行榜网站
  • 移动网站排名教程典型的网络营销案例
  • 遵义网站建设哪家好推广链接点击器
  • 河池网站建设公司河北网络科技有限公司
  • 医疗网站建设讯息线上推广如何引流
  • 做养生的网站多吗seo 0xu
  • 网站后台怎么做超链接1个百度指数代表多少搜索
  • 自适应网站建设服务哪家好如何开展网络营销活动
  • 免费网站申请注册百度导航如何设置公司地址
  • 哪种语言做网站好短链接在线生成官网
  • 深圳网站设计九曲白山seo
  • 商城网站的管理用户模块房地产销售技巧和话术
  • esc怎么做网站培训总结
  • 长沙做网站 必看 磐石网络搜索引擎优化面对哪些困境
  • 做网站如何给图片命名网站关键字优化软件
  • 景区网站建设方案百度推广一天费用200
  • 零基础自己建网站开发一个app软件多少钱
  • filetype ppt 网站建设目前推广平台都有哪些
  • 为客户做网站的方案一个公司可以做几个百度推广
  • 用照片做模板下载网站好cnzz
  • 自己做的网站搜索不到seo优化外包
  • 网站建设运营费用百度网盘资源搜索引擎入口
  • ps 做网站切图网页设计学生作业模板
  • 公司网站如何做的美丽品牌推广策划方案怎么写
  • 优化网站教程如何做好网络推广工作
  • 景宁县建设局网站成都seo网站qq
  • 做网站最小的字体是多少像素友情链接交易平台源码
  • 网站推广有哪些公司可以做企业宣传ppt
  • 广州外贸网站开发郑州营销型网站建设
  • 随州做网站的公司北京百度推广开户