ROS进二阶学习笔记-- 关于rospy 和 parameters
Posted Sonictl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS进二阶学习笔记-- 关于rospy 和 parameters相关的知识,希望对你有一定的参考价值。
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进二阶学习笔记-- 关于rospy 和 parameters的主要内容,如果未能解决你的问题,请参考以下文章
ROS进二阶学习笔记(10) -- rospy.Publisher() 之 queue_size
ROS进二阶学习笔记(10) -- rospy.Publisher() 之 queue_size
ROS进二阶学习笔记- SMACH:用状态机来管理机器人任务
ROS进二阶学习笔记-- 关于Overlay:重名 package 在不同catkin workspace 中,