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

宝安有效的网站制作网站优化公司排名

宝安有效的网站制作,网站优化公司排名,企业网站制作模板免费,b2b特点及典型平台目录 构建发布者构建订阅者编写lanch文件自动启动节点测试运行ROS的目录结构 切换到工作空间的src目录下: 构建发布者 catkin_create_pkg publisher std_msgs rospy roscpp编写发布者程序: // 1.包含头文件 #include "ros/ros.h" #include &…

目录

  • 构建发布者
  • 构建订阅者
  • 编写lanch文件自动启动节点
  • 测试运行
  • ROS的目录结构

切换到工作空间的src目录下:

构建发布者

catkin_create_pkg publisher std_msgs rospy roscpp

编写发布者程序:

// 1.包含头文件 
#include "ros/ros.h"
#include "std_msgs/String.h" //普通文本类型的消息
#include <sstream>int main(int argc, char  *argv[])
{   //设置编码setlocale(LC_ALL,"");//2.初始化 ROS 节点:命名(唯一)// 参数1和参数2 后期为节点传值会使用// 参数3 是节点名称,是一个标识符,需要保证运行后,在 ROS 网络拓扑中唯一ros::init(argc,argv,"talker");//3.实例化 ROS 句柄ros::NodeHandle nh;//该类封装了 ROS 中的一些常用功能//4.实例化 发布者 对象//泛型: 发布的消息类型//参数1: 要发布到的话题//参数2: 队列中最大保存的消息数,超出此阀值时,先进的先销毁(时间早的先销毁)ros::Publisher pub = nh.advertise<std_msgs::String>("test",10);//5.组织被发布的数据,并编写逻辑发布数据//数据(动态组织)std_msgs::String msg;std::string msg_front = "这里是发布者发来的信息"; //消息前缀int count = 0; //消息计数器//发布消息前睡眠0.5秒,确保消息发布成功ros::Duration(0.5).sleep();//这里是每秒通过一次,剩余时间则阻塞在下面的r.sleepros::Rate r(1);//节点不死while (ros::ok()){//使用 stringstream 拼接字符串与编号std::stringstream ss;ss << msg_front << count;msg.data = ss.str();//发布消息pub.publish(msg);//加入调试,打印发送的消息ROS_INFO("发送的消息:%s",msg.data.c_str());//根据前面制定的发送贫频率自动休眠 休眠时间 = 1/频率;r.sleep();count++;//循环结束前,让 count 自增//暂无应用ros::spinOnce();}return 0;
}

在cmakelist中把:

add_executable(${PROJECT_NAME}_node src/publisher.cpp)
target_link_libraries(${PROJECT_NAME}_node${catkin_LIBRARIES}
)

注释去掉

构建订阅者

同样先创建包:

catkin_create_pkg subscriber std_msgs rospy roscpp

然后构建订阅者节点:

// 1.包含头文件 
#include "ros/ros.h"
#include "std_msgs/String.h"
//这里创建了回调函数,接收信息后传递的是std_msgs::String类型的常指针
void doMsg(const std_msgs::String::ConstPtr& msg_p){ROS_INFO("作为订阅者,我接收到了:%s",msg_p->data.c_str());}
int main(int argc, char  *argv[])
{setlocale(LC_ALL,"");//2.初始化 ROS 节点:命名(唯一)ros::init(argc,argv,"listener");//3.实例化 ROS 句柄ros::NodeHandle nh;//4.实例化 订阅者 对象ros::Subscriber sub = nh.subscribe<std_msgs::String>("test",10,doMsg);//5.处理订阅的消息(回调函数)ros::spin();//循环读取接收的数据,并调用回调函数处理return 0;
}

对于cmakelist的操作相同,添加构造对象及对象所需的依赖:

add_executable(${PROJECT_NAME}_node src/subscriber.cpp)
target_link_libraries(${PROJECT_NAME}_node${catkin_LIBRARIES}
)

然后退回到工作空间所在的下层目录,进行catkin_make编译。

编写lanch文件自动启动节点

在功能包目录下新建launch目录,下面放launch文件。形如:

<launch><!-- screen表示输出到屏幕上 --><node pkg="publisher" type="publisher_node" name="talker" output="screen" />
</launch>

其中:
pkg=“包名”

节点所属的包

type=“nodeType”

节点类型(与之相同名称的可执行文件)

name=“nodeName”

节点名称(在 ROS 网络拓扑中节点的名称)

测试运行

激活工作空间环境变量:

source ./devel/setup.bash

启动:

rosluanch publisher start.launch
rosluanch subscriber start.launch

在这里插入图片描述

ROS的目录结构

在这里插入图片描述

http://www.ds6.com.cn/news/77348.html

相关文章:

  • 设计建设网站哪家好最新国内新闻事件今天
  • ps做网站视图大小网站目录结构
  • 济宁网站建设公司电话seo营销技巧培训班
  • 浦东新区网站推广公司网站定制的公司
  • wordpress百宝箱软件优化大师客服
  • 外包网站开发 收费今日国内重大新闻
  • 学生网站建设实训总结日本比分算1:1
  • python代码网站品牌策划方案案例
  • 做网站的标签及属性网址查询服务中心
  • 亳州做网站的公司seo赚钱培训
  • 做网站公司实习日记关键词推广价格
  • 佛山专注网站制作细节杭州seo按天计费
  • 做网站需要学会写代码吗中文域名
  • 苏州网站建设在哪里网站建设优化推广系统
  • 童装 技术支持 东莞网站建设百度指数数据分析平台官网
  • 网站建设官网免费模板网站推广营销
  • 石家庄做网站优化semiconductor是什么意思
  • 建设网站费用记什么科目搜狗网站提交入口
  • 商城网站建设分为几块专业网络推广公司
  • 域名停靠网站下载大全免费功能neotv
  • 织梦网站底端的怎么删除百度助手安卓版下载
  • 前端框架模板搜索优化推广公司
  • 哪有网站建设明细报价表品牌推广策划方案
  • 外墙清洗搜狗搜索引擎优化论文
  • 手机哪里可以做视频网站推广普通话手抄报简单又好看
  • 无锡网站制作企业佛山网站优化服务
  • 免费WAP建导航网站网上哪里接app推广单
  • 做消费信贷网站价格什么是电商?电商怎么做
  • 国外网站视觉设计趋势网络推广费用预算表
  • 企业网站php模板下载衡阳seo快速排名