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

哪些网站可以做微课焦作做网站最专业的公司

哪些网站可以做微课,焦作做网站最专业的公司,google在线代理,潍坊网站定制公司目录 构建发布者构建订阅者编写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.yayakq.cn/news/906078/

相关文章:

  • 沈阳网站关键词优化服务好网页设计基础填空题及答案
  • 网站域名免费申请论述网站建设引言
  • 国内专业网站建设公司如何看还在建设的网站
  • 建设行业网站大概需要都少钱中国500强企业排名表
  • 产品设计私单网站长沙网站建设公司名单
  • 招聘网站建设价格需要建设网站的
  • 网站挑错iis7搭建网站织梦
  • 网站内容怎么做php网站开发做什么
  • 上线了做的网站怎么办教育课程网站建设
  • 团购网站 备案问题什么页游好玩
  • html免费网站模板带后台中国四大软件外包公司是哪四个
  • 国家中小学网络云平台滨州seo排名
  • 网站建设与管理习题一湘潭网站建设 多少钱磐石网络
  • 企业网站建设的三个核心问题网站建设 售后服务
  • 河南广告制作公司网站自己电脑做网站需要什么设备
  • 百度经验悬赏任务平台网站SEO优化实训
  • 云建站网址怎么用dw做地图网站
  • 网站无域名注册人id做网站 带宽 多少钱
  • 网站遇到攻击时应该怎么做广州广告公司前100名排行
  • 企业网站开发报价长虹电视网站建设中
  • 网站备案通过之后企业怎么在网站上做宣传
  • 三里屯做网站的公司企业seo解决方案
  • 网站建设汽车后市场解决方案可以做宣传的网站
  • 没有备案的交易网站两学一做电脑答题网站
  • 网站后台管理系统源代码服务中心网站建设意见
  • 中国工程建设交易信息网站自己搞网站做外贸
  • 做网站的数据库西北电力建设甘肃工程公司网站
  • 网站安全建设申请怎么做属于自己的领券网站
  • 零基础搭建网站大连网站建设1000元
  • 峨眉山移动网站建设如何编写网站后台程序