Topic 프로그래밍에 앞서 기본적인 C++ ROS2 개발에 대한 지식을 익혀봅니다.

C++은 언어 자체가 Python과 비교하여 난이도가 있습니다. 그렇기에 빠른 구현을 희망하신다면 Python 강좌만을 먼저 수강하시고 C++ 강의는 추후 차근차근 듣는 것을 추천드립니다.

강의 후반부의 실제 로봇을 만드는 과정에서도 Python 개발이 주력이기 때문에 수강 완료에는 지장이 없도록 구성하였습니다.

예제 실행


$ rosfoxy
$ cbp cpp_first_pkg

# Windows
> colcon build --symlink-install --packages-select cpp_first_pkg
> install\\setup.bat
# New Terminal 
$ ros2 run cpp_first_pkg simple_node
[INFO] [1621571601.351868900] [simple_node]: Logger Test

$ ros2 run cpp_first_pkg simple_loop_node
[INFO] [1621571623.628317300] [simple_loop_node]: Simple Loop Node
[INFO] [1621571624.137430000] [simple_loop_node]: Simple Loop Node
[INFO] [1621571624.637388900] [simple_loop_node]: Simple Loop Node
...

$ ros2 run cpp_first_pkg simple_oop_node
[INFO] [1621571658.158510000] [simple_oop_node]: I am Simple OOP Example, count : 7340132
[INFO] [1621571658.658082100] [simple_oop_node]: I am Simple OOP Example, count : 7340133
[INFO] [1621571659.152032000] [simple_oop_node]: I am Simple OOP Example, count : 7340134
...

$ ros2 run cpp_first_pkg lifecycle_node
[WARN] [1621571766.599589500] [simple_oop_node]: Node Constructor
[INFO] [1621571767.102470700] [simple_oop_node]: I am Simple OOP Example, count : 1
[INFO] [1621571767.600820400] [simple_oop_node]: I am Simple OOP Example, count : 2
[INFO] [1621571768.022392500] [rclcpp]: signal_handler(signal_value=2)
[INFO] [1621571768.023429800] [simple_oop_node]: ==== Spin Done ====
==== After Shutdown ====
[WARN] [1621571768.025122300] [simple_oop_node]: Node Destructor

간략한 개요는 다음과 같습니다.