如何在Python中使用rospy.get_param()函数获取ROS参数的值
发布时间:2023-12-25 18:25:46
在Python中,我们可以使用rospy.get_param()函数来获取ROS参数的值。该函数可以用于获取全局参数服务器中的参数值或者获取ROS节点中已经设置的私有参数。
rospy.get_param()函数使用如下形式:
rospy.get_param(name, default_value=None)
其中,name表示要获取的参数的名称,default_value是可选的默认值,用于在参数未设置时返回。
下面是一个使用rospy.get_param()函数获取参数值的例子:
import rospy
# 初始化节点
rospy.init_node('param_example')
# 从全局参数服务器中获取int类型的参数值
int_param = rospy.get_param('int_param')
print("Int param: ", int_param)
# 从全局参数服务器中获取float类型的参数值
float_param = rospy.get_param('float_param')
print("Float param: ", float_param)
# 从全局参数服务器中获取bool类型的参数值
bool_param = rospy.get_param('bool_param')
print("Bool param: ", bool_param)
# 从全局参数服务器中获取string类型的参数值
string_param = rospy.get_param('string_param')
print("String param: ", string_param)
# 从全局参数服务器中获取list类型的参数值
list_param = rospy.get_param('list_param')
print("List param: ", list_param)
# 从全局参数服务器中获取dict类型的参数值
dict_param = rospy.get_param('dict_param')
print("Dict param: ", dict_param)
上述代码中的参数int_param、float_param、bool_param、string_param、list_param、dict_param分别表示不同类型的参数值。这些参数需要在ROS节点中的参数服务器中进行设置。
例如,假设我们希望在全局参数服务器中设置一个名为int_param的整数类型参数,可以在命令行中使用以下命令进行设置:
rosparam set int_param 10
上述命令将int_param设置为10。
同理,我们可以通过命令行设置其他类型的参数。
使用rospy.get_param()函数获取参数值时,如果参数未在参数服务器中设置,函数将返回默认值(如果提供了默认值),否则将抛出KeyError异常。
需要注意的是,rospy.get_param()函数只能获取已经在参数服务器中设置的参数值。如果想要在ROS节点中的私有参数中获取参数值,可以使用rospy.get_param("~param_name")的形式。
综上所述,rospy.get_param()函数是在Python中获取ROS参数值的常用函数之一,可以灵活获取各种类型的参数值,并提供默认值功能。
