首页 > 其他分享 >ROS1学习记录(8.0)

ROS1学习记录(8.0)

时间:2024-04-24 17:22:56浏览次数:28  
标签:8.0 头文件 记录 server person add srv 编译 ROS1

学习视频:

15.服务数据的定义与使用_哔哩哔哩_bilibili

 三个横线上方为request数据,横线下方为response数据;

第一步先在功能包中创建一个srv文件夹放置数据定义文档;

在srv内部自定义一个数据srv文档

 将数据的结构定义写入,数据的结构定义如下

string name
uint8 age
uint8 sex

uint8 unknown = 0
uint8 male = 1
uint8 female = 2

---
string result

 定义完成后在package.xml内部添加功能包依赖:

<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>

 再在CMakeList内部添加编译选项

首先在find_package里面添加message_generation添加功能包要寻找的依赖

 再添加如下指令:使得编译器知道根据哪个srv产生你的头文件

add_service_files(
FILES                                                      #自动收缩srv文件夹内文件
Person.srv
)

generate_messages(
DEPENDENCIES                      #根据Person.srv的定义以及DEPENDENCIES下方的依赖产生头文件
std_msgs                                    
)

 再在CMakeList里面的catkin_package里面添加一个message_runtime依赖放入;

至此配置就完成了进入编译生成相关头文件;

 对于服务数据定义编译完成会出现三个头文件,第一个是包含后续两个是一个总体的头文件,第二个是在服务中的请求,是数据的结构定义时三个横线上方的头文件,第三个则是三个横线下方的。编译完还是要记得设置变量环境的好习惯

 下一步放置源码在功能包src内部;

 放置完源码还是一样在CMakeList内部放置编译规则:

add_executable(person_server src/person_server.cpp)                           #将src中person_server.cpp编译成对应可执行文件person_server
target_link_libraries(person_server ${catkin_LIBRARIES})                      #将person_server与person_client做一个链接
add_dependencies(person_server ${PROJECT_NAME}_gencpp)            #将动态生成的头文件做一个依赖

 #下面同上方一个意思

add_executable(person_client src/person_client.cpp)
target_link_libraries(person_client ${catkin_LIBRARIES})
add_dependencies(person_client ${PROJECT_NAME}_gencpp)

 添加完后就可以执行编译了

 编译后,要记得设置变量环境好习惯。

 可以在devel文件夹下找到编译的可执行文件

 最后就是测试了;

 可以看见运行有应答,测试就完成了。

 

标签:8.0,头文件,记录,server,person,add,srv,编译,ROS1
From: https://www.cnblogs.com/qianzhu/p/18155925

相关文章

  • Spring MVC拦截器实现,记录访问请求日志
    SpringMVC拦截器实现,记录访问请求日志1.创建拦截器类并实现HandlerInterceptor拦截器packagecom.jxdinfo.hussar.sys.interceptor;importcom.jxdinfo.hussar.base.entity.UserInfo;importcom.jxdinfo.hussar.common.util.UserUtils;importcom.jxdinfo.hussar.core.util......
  • ROS1学习记录(6.0)
    学习视频:13.客户端Client的编程实现_哔哩哔哩_bilibili服务通讯:第一步还是在工作空间中src中创建功能包 创建功能包后将源码放入功能包中的src在功能包中的CMakeList进行配置:add_executable(turtle_spawnsrc/turtle_spawn.cpp)target_link_libraries(turtle_spawn${cat......
  • Pycharm远程连接服务器调试过程(个人记录)
    Pycharm远程调试服务器,这里主要讲的是ssh方法(避免自己主机显存、内存不足的情况,ssh服务如何开启请自行查找)。主要分为几个步骤:1、服务器开启ssh服务,开放ssh端口号(一般为22)2、打开pycharm,设置ssh远程python为解释器(如下,打开设置后点设置添加解释器,随后选择ssh解释器,最后填写服务......
  • 第一篇博客记录test
    调试vsCode查看使用test工作在浏览器上人-YangBobin知识不在广泛,在于精通。知识不在积累,在于消化。学习不在激情,在于坚持。书不在多,一两本真正看懂就行。书读百遍,其义自现。随笔-897,文章-1,评论-81,阅读- 158万VSCode用markdown发博客目录一......
  • 网络流做题记录
    网络流的建图灵活,需要大量练习。一些常见套路:拆点:一般来说可以把一个点拆为一个入点和一个出点并连边,用于点边转化。连INF边:这种边不可能包含在最小割中,可以用来将点定向。建立超级源点和超级汇点:用于构建网络流模型。加辅助点:比较灵活,可以用于处理多种问题。做......
  • 泰山派RK3566学习记录
    一.烧录环境1.rkdeveloptoolSPL烧录命令格式ForwithSPL:rkdeveloptooldbrkxx_loader_vx.xx.binrkdeveloptoolgptparameter_gpt.txtrkdeveloptooldbrkxx_loader_vx.xx.binrkdeveloptoolwl0x40idbloader.imgrkdeveloptoolwl0x4000u-boot.itbrkdeveloptoolw......
  • 记录个简单的进度条同步显示方法
    //进度条同步显示的方法publicvoidCommonProgressHandle(Action<Action>bizAct,intmax,stringmsg){using(SimpleProgresssp=newSimpleProgress()){sp.Message=msg;sp.Position=0;......
  • shell脚本一键安装nginx-1.18.0
    shell脚本一键安装nginx-1.18.0#!/bin/bashset-euopipefailNGINX_VERSION="1.18.0"DOWNLOAD_URL="https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz"INSTALL_DIR="/apps/nginx"PACKAGE_LIST="gccpcre-developenssl-develz......
  • Flink生产问题记录
    1.集群有2个flink版本,用application方式启动报错Causedby:java.lang.ClassCastException:cannotassigninstanceoforg.apache.commons.collections.map.LinkedMaptofieldorg.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.pendingOffsetsToCommito......
  • ROS1学习记录(4.0)
    学习视频:11.订阅者Subscriber的编程实现_哔哩哔哩_bilibili创建订阅者:先将相关源码放入src内部: 进行编译前一样要先设定编译规则:add_executable(pose_subscribersrc/pose_subscriber.cpp)target_link_libraries(pose_subscriber${catkin_LIBRARIES}) 保存后回到根目......