使用任何roscpp
函数前,必须调用ros::init
函数。一般有如下形式:
ros::init ( argc, argv, "my_node_name" );
ros::init ( argc, argv, "my_node_name", ros::init_options::AnonymousName );
ros::init ( argc, argv, "my_node_name", ros::init_options::NoSigintHandler );
ROS
系统不允许节点的名字出现重复,如果再运行一个,前一个节点会自动关闭。使用ros::init_options::AnonymousName
就可以同时运行多个同名节点,ROS
会在节点名后面加上UTC
时间以示区别。
运行同一个节点还有更好的方法:比如已经使用命令rosrun pub Pub
运行了一个名为Pub
的节点,我们可以指定参数__name
运行同一个可执行文件,但是节点名不同:
rosrun pub Pub __name:=newPub