노드핸들을 보통 사람들은 크게 아래 2가지 방법으로 짜는 듯 하다.
class NhClass1 {
private:
ros::NodeHandle nh_;
public:
NhClass1(ros::NodeHandle &nh) : nh_(nh) {}
};
int main(int argc, char *argv[]) {
ros::init(argc, argv, "nh_test1");
ros::NodeHandle nh;
NhClass1(nh);
return 0;
class NhClass2 {
private:
ros::NodeHandle nh_;
public:
NhClass2() {}
};
int main(int argc, char *argv[]) {
ros::init(argc, argv, "nh_test2");
NhClass();
return 0;
무엇이 다른지 찾아보고자 nh.getParam()
함수가 잘 작동하는지 확인해 보았으나, 두개 모두 파라미터 서버에서 값들을 잘 불러오는 것을 확인했다.
뭐가 다른지 아무도 답변을 잘 못한다.... 그냥 메인문을 더 깔끔하게 작성가능한 2번을 일단 사용하기로 하였다.