2013-06-06 84 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

如果您只是試圖動態創建單個節點,則可以這樣做。如果你想創建多個節點,你需要創建單獨的進程,這就需要一個系統調用。