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

网站建设税种分类制作营业执照图片手机软件

网站建设税种分类,制作营业执照图片手机软件,游戏ui设计最好的培训机构,郑州专业网站推广优化公司【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们只是编写了一个publisher节点,以及一个subscribe节点。有了这两个节点,它们之间就可以通信了。在实际生产中&#…

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们只是编写了一个publisher节点,以及一个subscribe节点。有了这两个节点,它们之间就可以通信了。在实际生产中,我们除了简单的通信之外,要传递的数据可能还有很多。这个时候,我们就要构建一个消息体。这个消息体可以是各种脚本,但需要同时能被publisher和subscribe访问到。幸好,ros给我们提供了这样的一种形式。

1、构建消息体

        在package下面创建一个msg文件夹。文件夹中保存一个Student.msg文件,它的内容如下所示,

string name
float64 height
float64 weight

        这个文件其实只是一个脚本。通过在workspace顶层输入catkin_make,就可以生成对应的头文件Student.h。注意,头文件保存的位置位于./devel/include/beginner_tutorials/Student.h。编译之前也要修改下CMakelists.txt文件,如下面2所示。

 2、修改CMakelists.txt文件


cmake_minimum_required(VERSION 2.8.3)
project(beginner_tutorials)## Find catkin and any catkin packages
find_package(catkin REQUIRED COMPONENTS message_generation roscpp rospy std_msgs genmsg)add_message_files(FILES Student.msg)## Declare ROS messages and services
#add_message_files(FILES Num.msg)
#add_service_files(FILES AddTwoInts.srv)## Generate added messages and services
generate_messages(DEPENDENCIES std_msgs)## Declare a catkin package
catkin_package()## Build talker and listener
include_directories(include ${catkin_INCLUDE_DIRS})add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker beginner_tutorials_generate_messages_cpp)add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener beginner_tutorials_generate_messages_cpp)

3、重新构建talker.cpp文件


#include "ros/ros.h"
#include "beginner_tutorials/Student.h"
#include <cstdlib>using namespace std;int main(int argc, char* argv[])
{ros::init(argc, argv, "node_MyMsgPub");if(argc!=4){cout << "Error command parameter!\n" \"Please run command eg:\n" \"rosrun begin_tutorials talker LiLei 180 160" << endl;return 1;}ros::NodeHandle nh;ros::Publisher MyMsgPub = nh.advertise<beginner_tutorials::Student>("MyMsg", 100);beginner_tutorials::Student sdtMsg;sdtMsg.name = argv[1];sdtMsg.height = atof(argv[2]);sdtMsg.weight = atof(argv[3]);ros::Rate rate(10);while(ros::ok()){MyMsgPub.publish(sdtMsg);rate.sleep();}return 0;
}

        代码大部分和之前差不多,只要注意beginner_tutorials::Student这个结构体即可。

4、重新构建listener.cpp文件

#include "ros/ros.h"
#include "beginner_tutorials/Student.h"void MyMsgCallback(const beginner_tutorials::Student& sdtInfo)
{ROS_INFO("Thestudent information is:\n""name:%s--height:%f--weight:%f\n",sdtInfo.name.c_str(),sdtInfo.height,sdtInfo.weight);
}int main(int argc, char* argv[])
{ros::init(argc, argv, "node_MyMsgSub");ros::NodeHandle nh;ros::Subscriber MyMsgSub = nh.subscribe("MyMsg", 1000, &MyMsgCallback);ros::spin();return 0;
}

        和talker.cpp一样,代码中只需要关注下beginner_tutorials::Student这个结构体就行。

5、顶层编译

        cd到workspace的顶层,直接输入catkin_make即可。

6、准备运行talker和listener节点

        在运行talker和listener节点之前,有两件事情要做。第一步,打开roscore;第二步,source ./dev/setup.sh文件。最后,分别打开talker和listenner即可。

rosrun beginner_tutorials talker LiLei 180 160
rosrun beginner_tutorials listener

        没什么意外的化,你会看到这样的打印。如果能看到这些打印,基本上说明我们已经学会使用了ros的消息功能。

[ INFO] [1695351213.590856004]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351213.692688848]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351213.791460924]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351213.891075380]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351213.990753652]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351214.090438037]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351214.190497066]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351214.291007141]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351214.390375087]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000[ INFO] [1695351214.490385779]: Thestudent information is:
name:LiLei--height:180.000000--weight:160.000000

http://www.yayakq.cn/news/759170/

相关文章:

  • 怎样做模具钢网站利用百度网盘自动播放做视频网站
  • 做易买网网站项目心得体会wordpress api json
  • 淮安企业网站制作大连建设主管部门官方网站
  • 产权交易网站建设方案地方门户网站系统
  • 制作网站用c 做前台企业网站结构图
  • 万盛网站建设公司做问卷的网站生成二维码
  • 安徽长江建设集团有限公司网站网站底部广告代码
  • asp.net免费网站网站的优势是什么
  • 怎样做才能让网站更受关注徐州网站建设
  • 天津做网站推广的网站云南建筑工程网
  • 快速建设房产网站微网站中加入一键拨号功能代码
  • 服装设计素材网站大全升级wordpress需要ftp
  • 环球贸易网站wordpress商城主题 原创
  • 做废品推广哪个网站好十大教育培训机构排名
  • 深圳移动官网网站建设重庆网站建设必选承越
  • seo优化能提高网站的流量吗企业宣传网站案例
  • 网站建设选择数据库哪个网站教做ppt模板
  • 免费又实用的网站大型公司网络搭建实例
  • 网站的基础服务怎么才可以做网站
  • 做抖音风的网站有口碑的坪山网站建设
  • 做的网站 为什么百度搜不到c做项目的网站
  • 辽宁建设厅网站官方app下载
  • 学校网站建设命名个人主页中不会展示下列哪项内容
  • 防腐木用什么名字做网站厦门企业app开发
  • 中国建设银行网站首页joy网站备案 备注关联性
  • 丹阳高铁站对面的规划互联网公司大厂排名
  • 建设网上银行官方网站空间里怎么放多个网站
  • 百度手机模板网站福田建设网站
  • 做网站是要云空间吗奉节县关键词seo排名优化
  • 做外贸站推广电商店铺首页设计