이번 강의, 그리고 다음 강의에 걸쳐서 앞서 구현했던 다양한 ROS 프로그램들을 C++로 다시 작성해보는 시간을 갖겠습니다.

강좌를 따라옴에 있어 문법적인 측면에선, C++ Class를 사용하는 방법 정도만 알고 계시면 따라오실 수 있습니다.

이와 더불어 ROS는 기본적으로 빌드 툴로 CMake를 사용하기에 CMakeLists.txt에 대한 이해가 있다면 더 좋습니다.

그럼, 시작해보겠습니다!!

basic_node.cpp


#include <ros/ros.h>

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

    ros::init(argc, argv, "basic_node");
    ros::NodeHandle nh;
    ros::Rate r(5); # Hz

    while ( ros::ok() ) {
        ROS_INFO("This is Basic Node");
        r.sleep();
    }

    return 0;
}
import rospy
rospy.init_node("drive_forward")
r = rospy.Rate(1)  # 1 Hz
r.sleep()
while not rospy.is_shutdown():
rospy.loginfo()

ros::Rate, r.sleep() 등 익숙한 코드들이 보이지요?

node의 생성은 ros::init으로 가능하며, roscpp에서는 NodeHandle이라는 클래스를 생성해야 Publisher, Subscriber, serviceServer 등의 node를 만들 수 있습니다.

<aside> 💡 NodeHandle은 반드시 ros::init 보다 뒤에 ****생성되어야 합니다

</aside>