2013-06-06 82 views
0

我想在运行时使用代码产生并销毁节点。我知道ROS groovy有rosspawn,但我正在研究的这个项目正在进行中。这是我有一个节点类在ROS feurte中创建动态节点

class node { 
    private: 
     ros::NodeHandle *n; 
    public: 
     void init(int argc, char **argv, std::string s) { 
      ros::init(argc, argv, s); 
      n = new NodeHandle(); 
     } 
     void shutdown() { 
      n->~NodeHandle(); 
     } 
}; 

我一直在使用rosnode list测试了它的代码,它似乎工作。我的问题是,这是不好的编程,或者是否有可能发生的无法预料的错误?我所见过的问题表明,为了在执行期间产生节点,需要系统调用。

回答

0

如果您只是试图动态创建单个节点,则可以这样做。如果你想创建多个节点,你需要创建单独的进程,这就需要一个系统调用。