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.![](https://i-blog.csdnimg.cn/blog_migrate/a3eccf3caa8278bb8540eee006b34ff2.png)
在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健正常运行了