如何使用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()函数来实时读取参数的值;
- 可以在第二个参数中设置默认值,以备参数不存在时使用。
