ROS与Python教程之参数使用

ros中可以使用的参数类型有整数、浮点数、字符串、bool、列表、字典为参数;

参数为字典时有额外的意义,可以当做命名空间使用:

/gains/P = 1.0
/gains/I = 2.0
/gains/D = 3.0

#在rospy输出/gains
{'P':1.0, 'I':2.0, 'D':'3.0}

操作参数

1.参数的获取,使用rospy.get_param(param_name):

#获取全局参数
rospy.get_param(’/global_param_name’)

#获取目前命名空间的参数
rospy.get_param(‘param_name’)

#获取私有命名空间参数
rospy.get_param(’~private_param_name’)

#获取参数,如果没有,使用默认值
rospy.get_param(‘foo’,‘default_value’)

2.参数设置,使用rospy.set_param(param_name,param_value):

rospy.set_param(‘some_numbers’,[1., 2., 3., 4.])
rospy.set_param(‘truth’,True)
rospy.set_param(’~private_bar’,1+2)

3.删除参数,使用rospy.delete_param(‘param_name’):

rospy.delete_param(‘to_delete’)

4.判断参数是否存在

if rospy.has_param(‘to_delete’):
rospy.delete_param(‘to_delete’)

解释参数名

  • 在ROS中,相同的名称可以映射成为不同的命名,你的节点也可以放到命名空间中
  • rospy一般能够自动解释这些名称,但用做调试,需要了解所有名称之间的关联
  • 获取实际的名称,rospy.resolve_name(name):

value = rospy.get_param(’~foo’)
rospy.loginfo(‘Parameter %s has value %s’,rospy.resolve_name(’~foo’),value

搜索参数

  • 如果不知道命名空间,可以搜索参数
  • 搜索从私有命名空间开始,向上到全局命名空间
  • 使用rospy.search_param(param_name)

full_param_name = rospy.search_param(param_name)
param_value = rospy.get_param(full_param_name)

  • 获取到参数名后,也可以进行参数操作
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值