[ROS] C++ 패키지의 main 함수 인자(parameter) 의미

HY K·2024년 8월 17일

ROS1

목록 보기
22/34

C++로 ROS 패키지를 작성하게 된다면 (당연히) int main() 함수를 사용하게 된다.
int main() 함수를 작성하게 되면 다음과 같은 형식으로 작성하게 된다.

int main(int argc, char **argv){
...
...
}

이번 포스팅에서는 int argc와 char **argv 인자에 대해서 공부해보고자 한다.

int argc

  • 명령줄에서 전달된 인자의 개수를 나타내는 정수이다.
  • ROS 노드가 실행될 때 프로그램에 전달된 인자의 수를 알 수 있게 한다.

char argv

  • 문자열 포인터들의 배열로, 각 문자열은 명령줄에서 입력된 인자를 의미한다.
  • ROS 노드를 초기화 할 때 명령줄 인자들을 저장하여 필요한 정보를 전달하는데 사용된다.
  • 예를 들어 argv를 통해 ros::init 함수에 인자들을 받아, 노드 이름을 설정하거나 특정 파라미터를 처리할 수 있다.

예를 들어보면 다음과 같다.

#include "ros/ros.h"

int main(int argc, char **argv){
	ros::init(argc, argv, "node_name");
    ros::NodeHandel nh;
    ros::spin();
    return 0;
}

argc와 argv를 활용해 ROS 노드를 초기화 하는 모습을 살펴볼 수 있다.

profile
로봇, 드론, SLAM, 제어 공학 초보

0개의 댓글