ROS进二阶学习笔记(8)-- 关于rospy 和 parameters

来源:互联网 发布:淘宝直播镜像怎么下载 编辑:程序博客网 时间:2024/06/05 06:14

ref:

http://wiki.ros.org/Parameter Server  --  总领阐述parameter的一些概念。比如namespace
http://wiki.ros.org/rospy/Overview/Parameter Server  --  如何使用Python操作params
http://wiki.ros.org/rospy_tutorials/Tutorials/Parameters  --  如何使用Python操作params
http://wiki.ros.org/roslaunch/XML -- 使用launchfile操作 param
http://wiki.ros.org/roslaunch/XML/param -- 使用launchfile 操作param
http://wiki.ros.org/rosparam  --  ROS Tool之rosparam用法


ros进阶学习笔记(24)-- 关于rospy 和 parameters

进行rospy编程时,需要用到parameter,但如何灵活用好它,还需进一步学习总结。

  • 节点程序如何声明parameter,是global, relative or private?
  • 声明完了如何通过外部为rosparam赋值?rosrun命令行怎么赋?launch文件怎么赋?yaml怎么赋?

参数Parameters - 概念


 

一个简单的 python 代码 - 使用params



rosparam工具



arguments 赋值 mynode.py

   http://answers.ros.org/question/64552/how-to-pass-arguments-to-python-node/

#!/usr/bin/env pythonimport sys class MyNodeClass():    #Setup the node:    def __init__(self):...    rospy.set_param('~n_naviLoop', sys.argv[1])    rospy.set_param('~layoverSecs', sys.argv[2])    print rospy.get_param("~n_naviLoop")    print rospy.get_param("~layoverSecs")if __name__ == '__main__':  if len(sys.argv)<3 :    print "Usage: mynode.py arg1 arg2"  else:    try:        MyNodeClass()        rospy.spin()    except rospy.ROSInterruptException:        rospy.loginfo("my_node finished.")

命令行赋值上面代码中的 n_naviLoop:
       $ rosrun mypkg my_node.py 3 5  //n_naviLoop = 3; layoverSecs = 5;

另一例:

    Launch File + Arguments + CommandLine 赋值方式:



命令行赋值 neato_laser_publisher

源码片:

  std::string port;  int baud_rate;  std::string frame_id;  int firmware_number;   std_msgs::UInt16 rpms;   priv_nh.param("port", port, std::string("/dev/ttyUSB0"));  priv_nh.param("baud_rate", baud_rate, 115200);  priv_nh.param("frame_id", frame_id, std::string("neato_laser"));priv_nh.param("firmware_version", firmware_number, 1);

赋值命令:

rosrun xv_11_laser_driver neato_laser_publisher _port:=/dev/ttyUSB0 _firmware_version:=2
rosrun mypkg mynode.py _savepath:=/home/usrname/catkin_ws/src/mypkg/save_mm_dir


命名空间与params



综合赋值问题实例 - Usage

  >> global_name params : python节点代码、yaml赋值param、launchFile赋值param、命令行赋值param、rosparam工具赋值param

  >> relative_name params : python节点代码、yaml赋值param、launchFile赋值param、命令行赋值param、rosparam工具赋值param

  >> private_name params : python节点代码、yaml赋值param、launchFile赋值param、命令行赋值param、rosparam工具赋值param

------

Private_name params + PythonCode + LaunchFile_Envalue:






0 0
原创粉丝点击