ros环境+自定义消息+自定义服务踩坑记

0 篇文章 0 订阅

一、ros环境

官网按照对应的Ubuntu版本进行安装,Ubuntu18.04下安装如果遇到问题,先检查是否是Python 2.7

更改Python版本:

                           sudo cp /usr/bin/python /usr/bin/python_bak

                           sudo rm /usr/bin/python

                           sudo ln -s /usr/bin/python3.6 /usr/bin/python   #设置为python3.6

                           //sudo ln -s /usr/bin/python2.7 /usr/bin/python   #设置为python2.7
                          作者:57a5e7fd0ee6
                          链接:https://www.jianshu.com/p/153c86976d5d
                          来源:简书
                          著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

如果Python版本没有问题,尝试卸载重新安装一下,这个时候还有问题一般是安装流程问题。

二、自定义消息+自定义服务

如何自定义服务和消息:ros Wiki 里面有详细的教程

问题1:自定义消息的时候,注意自己定义的类型一定是要小写的,不然的话在编译的时候会报错,找不到std_msgs包

问题2:自己定义的服务和消息在rosrun的时候找不到,是没有给Python文件添加可执行权限 chmod +x  ***.py

问题3:pycharm的坑1:不能在桌面添加快捷方式,添加快捷方式每次启动的时候会提示找不到rospy相关的包,解决方式,控制台通过./ pycharm.sh 进行启动(这个最简单,其他方法自己尝试)

             坑2:自己写的消息和服务不能import,解决办法:在 ./ pycharm.sh 前,先source一下ros的环境 (source ~/catkin_ws/devel/setup.bash)

问题4:

#!/usr/bin/env python
import rospy
from my_srvs.srv import AddTwoInts, AddTwoIntsResponse

rospy.init_node("add_two_ints_srv")


def handle_add_two_ints(req):
    return AddTwoIntsResponse(req.a + req.b)


s = rospy.Service("add_two_ints", AddTwoInts, handle_add_two_ints)
rospy.spin()

自定义的服务,注意return的对象(AddTwoIntsResponse),如果不小心写错成AddTwoIntsRequest,会在传参的时候报错参数个数不对

              

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值