欢迎访问宙启技术站
智能推送

如何在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_paramfloat_parambool_paramstring_paramlist_paramdict_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参数值的常用函数之一,可以灵活获取各种类型的参数值,并提供默认值功能。