NodeHandle in class vs main

OpenJR·2022년 11월 15일
0

노드핸들을 보통 사람들은 크게 아래 2가지 방법으로 짜는 듯 하다.

1

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;

2

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번을 일단 사용하기로 하였다.

profile
Jacob

0개의 댓글