服务通信遇到问题(找不到功能包+ERROR: service [赌] responded with an error: b“error processing request: unsupported)

1.一直提示找不到功能包,在尝试操作
catkin_make
source ./devel/setup.bash

也无济于事,

rospack find server_client_pkg
#出现错误
[rospack] Error: package 'server_client_pkg' not found

然后cd 和ls,明明有这个包但就找不到

然后哀家 

rospack list

出现

 

 原来哀家的功能包长这样  "ser_pkg ",虽然不知为何(可能是中间重命名了一下)

后面运行就可以了

2.

 

在donum函数中,首先将req重新赋值为AddintsRequest,这实际上是将req的类型更改为AddintsRequest类本身,而不是从请求消息中获取实际的req对象。

解决这个问题的方法是删除req = AddintsRequest这一行代码。你应该直接使用函数参数req来获取请求消息中的数据。

改正后

import rospy
from ser_pkg.srv import Addints, AddintsRequest, AddintsResponse

def donum(req):
    num1 = req.num1
    num2 = req.num2
    sum = num1 + num2

    res = AddintsResponse()
    res.summ = sum
    rospy.loginfo("解析的数据:%d,%d,响应的数据:%d", req.num1, req.num2, res.summ)
    return res

if __name__ == "__main__":
    rospy.init_node("保洁公司")
    server = rospy.Service("赌", Addints, donum)
    rospy.logwarn("服务器已经启动")

    rospy.spin()

然后rosservice call "话题"  + Tab健正常运行了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值