서론
이전 글에서 C++을 사용하여 ROS2 패키지를 간단하게 작성해 보았다.
2024.10.29 - [ROS/ROS2] - [ROS2] 005 : ROS2 C++ 패키지, 노드 작성 가이드
[ROS2] 005 : ROS2 C++ 패키지, 노드 작성 가이드
서론이전 글에서 노드(Node)에 대해 이해해 보았다.2024.10.29 - [ROS/ROS2] - [ROS2] 004 : ROS2 노드(Node)와 데이터 [ROS2] 004 : ROS2 노드(Node)와 데이터서론이전 글에서 demo_nodes_cpp, turtlesim을 실행해 보며 노드,
menggu1234.tistory.com
이번 글에서는 QT를 활용해 ROS2에서 GUI를 사용해서 데이터를 관리하고, 사용자 편의성을 높이는 법을 정리하겠다.
QT 관련 내용은 이전 포스트를 참고하면 좋다.
2024.09.25 - [C, C++/QT] - [QT] 001 : QT란?
[QT] 001 : QT란?
1. QT란?Qt는 Cross-Platform software develop framework로 주로 C++언어를 사용하여 다양한 어플리케이션을 개발하는데 사용된다. C++외에도 Python, JavaScript(QML), C#, Ruby 등의 언어로도 개발이 가능하다. Qt의 가
menggu1234.tistory.com
2024.09.25 - [분류 전체 보기] - [QT] 002 : QT 설치
[QT] 002 : QT 설치
1. QT 설치 Windows & LinuxQt를 무료로 사용하기 위해서는 Open Source 라이선스를 발급받아야 한다. https://www.qt.io/ko-kr/ Qt | Tools for Each Stage of Software Development LifecycleAll the essential tools for all stages of Softwa
menggu1234.tistory.com
2024.09.26 - [C, C++/QT] - [QT] 003 : QT c++ 사용법 및 UI 구성
[QT] 003 : QT c++ 사용법 및 UI 구성
C++을 사용하여 QT 프로젝트를 진행하는 방법을 알려주도록 하겠다. 1. QT c++ 프로젝트 생성QT를 실행하게 되면 다음과 비슷한 화면이 나온다. QT로 제작된 예제들과 프로젝트를 생성하거나 열
menggu1234.tistory.com
1. ros2_create_qt_pkg 설치
필자는 ros2_create_qt_pkg라는 shell script 기반의 매크로를 사용해서 ros2 pkg create 와 비슷하게 사용할 수 있도록 하였다. 다른 점은 템플릿을 사용하여 미리 QT 기반의 C++ ROS 패키지를 생성해 준다는 점이다.
ros2_create_qt_pkg는 현재 아래 Git repository를 통해 공유 중이다. 사용 후 편리하다면 star를 남겨주면 좋겠다.
https://github.com/mjlee111/ros2_create_qt_pkg
GitHub - mjlee111/ros2_create_qt_pkg: ros2 qt5 based GUI package create shell script
ros2 qt5 based GUI package create shell script. Contribute to mjlee111/ros2_create_qt_pkg development by creating an account on GitHub.
github.com
설치방법은 아래와 같다.
$ cd
$ git clone https://github.com/mjlee111/ros2_create_qt_pkg.git
$ cd ros2_create_qt_pkg
$ ./setup.sh
$ source ~/.bashrc
설치가 완료되면. bashrc 파일에 아래와 같은 내용이 추가된다.
ros2_create_qt_pkg() {
local package_name="$1"
shift
local dependencies="$@"
local current_directory="$PWD"
/home/"$USER"/.ros2_create_qt_pkg_scripts/ros2_create_qt_pkg.sh "$current_directory" "$package_name" "$dependencies"
}
2. ros2_create_qt_pkg 사용 방법
ros2_create_qt_pkg의 경우 간단한 기능만을 지원한다. 기본적으로 ros2_create_qt_pkg라는 명령어를 통해서 패키지명, dependencies를 자동으로 설정하여 C++ 패키지를 생성해 준다.
명령어 사용 방법과 개형은 아래와 같다.
$ ros2_create_qt_pkg [package_name] [dependencies]
[package_name] -> 패키지명
[dependencies] -> 빌드 참조 라이브러리, 패키지 등
사용 예시는 아래와 같다.
$ ros2_create_qt_pkg my_qt_package rclcpp std_msgs
my_qt_package라는 이름의 ROS2패키지에 rclcpp, std_msgs를 참조하게 하였다.
빌드 후 실행할 경우
QT GUI 창이 출력되고 ros node 역시 작동하고 있는 상태이다.
기본적으로 QThread 내에서 qnode라는 객체로 ros spin이 작동하게 하였고, MainWindow 객체에서 QNode 객체의 변수나 함수를 사용하려면 일반적으로 C++에서 사용하듯이 qnode.variable, qnode.function() 형태로 사용하면 된다.
반대로 QNode에서 MainWindow에 접근하여 사용하려면 Q_Signal을 활용하여 Signal/Slot을 통해 접근하면 편리하다.
'ROS > ROS2' 카테고리의 다른 글
[ROS2] 008 : ROS2 카메라 이미지 데이터 사용하기 (0) | 2024.10.31 |
---|---|
[ROS2] 007 : ROS2 launch 파일 작성 (0) | 2024.10.31 |
[ROS2] 005 : ROS2 C++ 패키지, 노드 작성 가이드 (1) | 2024.10.29 |
[ROS2] 004 : ROS2 노드(Node)와 데이터 (0) | 2024.10.29 |
[ROS2] 002 : ROS2 예제 (demo_nodes, turtlesim) (0) | 2024.10.29 |