关于ros的节点问题

1.运行ros节点
rosrun [package_name] [node_name] ,其中package_name是包名,是当时用catkin_create_pkg命令创建的,[node_name]是节点名,是 CMakeLists.txt文件中声明的部分,例如

## Declare a C++ executable
 add_executable(tts_voice_node src/xf_tts.cpp)
 add_executable(tuling_arv_node src/tuling_arv.cpp)

2.程序中用ros::innit()创建的节点,例如

ros::init(argc, argv,"xf_tts_node");

是ros节点启动后真正活跃的节点,其不同于rosrun命令的第二个参数。

ding@ding-ubuntu:~/catkin_xftts/src/tts_voice$ rosnode list
/rosout
/tuling_arv_node
/xf_tts_node

3.ros中有另一类型的节点,称为nodelet。这类特殊节点可以在单个进程中运行多个节点,其中每个nodelet为一个线程。这样,可以在不使用ros网络的情况下与其他节点通信,节点效率更高,并避免网络拥塞。nodelet对于摄像头和3D传感器这类传输量非常大的设备非常有用。

你可能感兴趣的:(ROS学习)