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

如何使用rospy.get_param()函数在Python中读取ROS参数

发布时间:2023-12-25 18:24:16

在ROS中,可以使用rospy.get_param()函数来读取ROS参数。get_param()函数的参数是要读取的参数的名称,返回值是一个Python对象,表示该参数的值。

下面是一个使用rospy.get_param()函数读取ROS参数的示例:

1. 首先,创建一个ROS节点并初始化:

import rospy
rospy.init_node('param_reader')

2. 定义一个回调函数,用于读取并打印ROS参数:

def read_param():
    param_value = rospy.get_param('param_name')
    rospy.loginfo('param_value: %s', param_value)

3. 在main函数中,使用rospy.Timer来定时调用回调函数:

if __name__ == '__main__':
    rate = rospy.Rate(1)  # 每秒钟执行一次
    while not rospy.is_shutdown():
        read_param()
        rate.sleep()

在上述示例中,param_name是要读取的ROS参数的名称。rate用于设置回调函数被执行的频率,默认为1Hz。

运行上述代码后,在终端中可以使用rosparam命令修改参数的值:

$ rosparam set /param_name param_value

然后,在终端中运行ROS节点:

$ rosrun package_name script_name.py

ROS节点将会每秒钟打印一次参数的值。

另外,rospy.get_param()函数还可以接受一个可选的第二个参数,用于设置参数的默认值。例如:

param_value = rospy.get_param('param_name', default_value)

当ROS参数不存在时,将返回默认值。

总结:

- 使用rospy.get_param()函数可以方便地读取ROS参数;

- 可以在回调函数中定时调用rospy.get_param()函数来实时读取参数的值;

- 可以在第二个参数中设置默认值,以备参数不存在时使用。