이번 강의, 그리고 다음 강의에 걸쳐서 앞서 구현했던 다양한 ROS 프로그램들을 C++
로 다시 작성해보는 시간을 갖겠습니다.
강좌를 따라옴에 있어 문법적인 측면에선, C++ Class를 사용하는 방법 정도만 알고 계시면 따라오실 수 있습니다.
이와 더불어 ROS는 기본적으로 빌드 툴로 CMake를 사용하기에 CMakeLists.txt
에 대한 이해가 있다면 더 좋습니다.
그럼, 시작해보겠습니다!!
#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>