ros进阶--msg、srv和参数服务器的使用

ROS不是传统意义上的操作系统,不是用于进程管理和调度,而是构建在其它操作系统之上的一种结构化的通讯层。

一、自定义msg

1.定义msg文件

功能包下新建msg目录,添加文件Person.msg。

string name
uint16 age
float64 height
2.编辑配置文件package.xml

package.xml中添加编译依赖与执行依赖。

message_generationbuild_depend>
message_runtimeexec_depend>
3.CMakeLists.txt编辑msg相关配置
find_package(catkin REQUIRED COMPONENTS
roscpp
 rospy
 std_msgs
 message_generation
 )
 # 需要加入 message_generation,必须有 std_msgs
 ## 配置 msg 源文件
 add_message_files(
FILES
Person.msg
)
# 生成消息时依赖于 std_msgs
generate_messages(
DEPENDENCIES
std_msgs
)
#执行时依赖
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES demo02_talker_listener
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#  DEPENDS system_lib
)
4.python

Python需要调用的中间文件在(…/工作空间/devel/lib/python3/dist-packages/包名/msg/xxx.py)

二、自定义srv

1 定义srv文件

服务通信中,数据分成两部分,请求与响应,在srv文件中请求和响应使用—分割。

功能包下新建srv目录,添加xxx.srv文件,内容:

# 客户端请求时发送的两个数字
int32 num1
int32 num2
---
# 服务器响应发送的数据
int32 sum
2.编辑配置文件package.xml

package.xml中添加编译依赖与执行依赖

message_generationbuild_depend>
message_runtimeexec_depend>
3.CMakeLists.txt编辑srv相关配置
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
 # 需要加入 message_generation,必须有 std_msgs
add_service_files(
FILES
AddInts.srv
)
generate_messages(
DEPENDENCIES
std_msgs
)

三、参数服务器

rosparam包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数。

rosparam set    设置参数
rosparam get    获取参数
rosparam load    从外部文件加载参数
rosparam dump    将参数写出到外部文件
rosparam delete    删除参数
rosparam list    列出所有参数
  • rosparam set设置参数
rosparam set name huluwa23
//再次调用 rosparam list 结果
/name
  • rosparam get获取参数
rosparam get name23
//结果
huluwa
  • rosparam load(先准备yaml文件)从外部文件加载参数
rosparam load xxx.yaml
  • rosparam dump将参数写出到外部文件
rosparam dump yyy.yaml
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值