ros进二阶学习笔记--关于rospy和parameters(代码片段)

Sonictl Sonictl     2023-03-31     524

关键词:

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 python
import 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:






ros进二阶学习笔记(10)--rospy.publisher()之queue_size

ROS进二阶学习笔记(10)--rospy.Publisher()之queue_sizeref link===============queue_size:publish()behaviorandqueuingpublish()inrospyissyn 查看详情

ros进二阶学习笔记(10)--rospy.publisher()之queue_size

ROS进二阶学习笔记(10)--rospy.Publisher()之queue_sizeref link===============queue_size:publish()behaviorandqueuingpublish()inrospyissynchronousbydefault(forbackwardcompatibilityreasons)whichmeansthattheinvocationisbloc... 查看详情

ros进二阶学习笔记-rosandmultithread

ROS进二阶学习笔记(4)-ROSandMultithreadI'lldiscussabouttheconceptofthread,multithread,andtheapplicationofmultithreadcodinginROSenv.1.What'smultithread?-Basicsofoperatingsystemref:http:// 查看详情

ros进二阶学习笔记--关于overlay:重名package在不同catkinworkspace中,(代码片段)

要把ROS玩转,必须把catkin玩转。http://wiki.ros.org/catkin/Tutorials其中,Overlay问题是重名package在不同catkinworkspace中时,如何处理他们的关系。一个检查的命令:echo$ROS_PACKAGE_PATH可检查overlay用来设置path的命令们:$sou 查看详情

ros进二阶学习笔记--metapackage

ROS进阶学习笔记(24)--MetapackageMetapackage是ROSFileSystem概念层中的一个概念:2.CreateandConfigureaMetapackage:url:http://wiki.ros.org/catkin/package.xml#MetapackagesUsuallytheparentfolder,namedli 查看详情

ros进二阶学习笔记-programmaticwaytostart/stoparoslaunch(代码片段)

ROS进二阶学习笔记(3)-programmaticwaytostart/stoparoslaunchSometimes,weneedtostart/stoparos.launchfile/rosnodeinaprogrammaticway,especiallywhenwebringintheSMACHmethodtohandleourapplications.Here 查看详情

ros进二阶学习笔记--metapackage

ROS进阶学习笔记(24)--MetapackageMetapackage是ROSFileSystem概念层中的一个概念:2.CreateandConfigureaMetapackage:url:http://wiki.ros.org/catkin/package.xml#MetapackagesUsuallytheparentfolder,namedlikethemetapackageorjustthereponame,containsnopackage.xmlbutallpackage... 查看详情

ros进二阶学习笔记--rosbag

ROSBag是ROS计算图级的一个概念:Bags:ref:http://wiki.ros.org/Bags在计算图里在线使用  工具:rosbag  创建bags,收听topic,记录数据。可以回放或者remap到别的topic。  rosbag还能处理具有时间戳的数据,publish一个simula... 查看详情

ros进二阶学习笔记--关于overlay:重名package在不同catkinworkspace中,(代码片段)

要把ROS玩转,必须把catkin玩转。http://wiki.ros.org/catkin/Tutorials其中,Overlay问题是重名package在不同catkinworkspace中时,如何处理他们的关系。一个检查的命令:echo$ROS_PACKAGE_PATH可检查overlay用来设置path的命令们:$sou... 查看详情

ros进二阶学习笔记-命名与命名空间

ref:http://wiki.ros.org/Names命名空间(wikipedia)ref:https://zh.wikipedia.org/wiki/命名空间命名空间(英语:Namespace),也称名字空间、名称空间等,它表示着一个标识符(identifier)的可 查看详情

ros进二阶学习笔记--rosbag

ROSBag是ROS计算图级的一个概念:Bags:ref:http://wiki.ros.org/Bags在计算图里在线使用  工具:rosbag  创建bags,收听topic,记录数据。可以回放或者remap到别的topic。  rosbag还能处理具有时间戳的数据,publish一个simula... 查看详情

ros相关:使用rospy编写ros程序并使用rosbag存储数据

...言接口简单,更容易编写。并且可以使用python与深度学习的一些框架比如Caffe,TensorFlow,Theano等结合。因此 查看详情

ros从入门到精通系列--ros客户端(下)rospy

目录一、rospy、 roscpp二、ROS中Python代码的组织方式三、rospy常用API1、Node相关2、Topic相关 查看详情

ros从入门到精通系列--ros客户端(下)rospy

目录一、rospy、 roscpp二、ROS中Python代码的组织方式三、rospy常用API1、Node相关2、Topic相关 查看详情

[ros]chinesemooc||chapter-7.1rospy介绍上7.2rospy介绍下

                   查看详情

《ros理论与实践》学习笔记机器人语音交互(代码片段)

《ROS理论与实践》学习笔记(七)机器人语音交互课程内容1.讯飞开放平台使用2.ROS语音识别与语音输出3.语音交互本讲作业结语在学习《ROS理论与实践》课程时,记录了学习过程中的编程练习,课后作业以及发现... 查看详情

ros学习笔记之——davis346calibration(代码片段)

之前博客《ROS实验笔记之——DAVIS346测试》已经对davis346相机进行了测试。接下来正式开始gan,先看看如何做calibration官方给的标定在(rpg_dvs_ros/README.mdatmaster·uzh-rpg/rpg_dvs_ros·GitHub)这里面有关于dvs的校正。由于davis有... 查看详情

ros学习笔记三(理解ros节点)

要求已经在Linux系统中安装一个学习用的ros软件包例子:sudoapt-getinstallros-indigo-ros-tutorialsROS图形概念概述nodes:节点,一个节点即为一个可执行文件,可以通过ROS和其他节点进行通信;messages:消息,当订阅或者发布一个topic时使... 查看详情