게임 엔진 Godot에서 ROS의 포인트 클라우드 비주얼 라이저를 만들어 보았습니다.
개요
게임 엔진 Godot에서 ROS의 노드로 작동하는 점 구름 비주얼 라이저를 만들어 보았습니다.
만든 것 : htps : // 기주 b. 이 m / ymd s te / t_ro s_pc ゔ ぃ z
Godot
htps : // 기주 b. 코 m / 고도 텐기네 / 고도 t
Godot은 오픈 소스 게임 엔진입니다.
Unity나 Unreal Engine 4에 비해 지명도가 낮지만 가볍고 간단하게 사용할 수 있다는 큰 이점이 있습니다.
Godot 설정
아래에서 다운로드하여 unzip하면 실행 형식의 파일을 얻을 수 있습니다.
htps : // 미안해. 오 rg / 드 w 응 아 d / ぃ ん x
godot-cpp
htps : // 기주 b. 코 m / 어린 t 나치 ゔ ㅇ ls / 어른 t-c p
Godot의 표준 스크립팅 언어는 GDScript라는 파이썬 유사 언어이지만 GDNative를 사용하면 C++에서 플러그인을 만들 수 있습니다.
이것을 이용하여 Godot에서 ROS 노드를 움직입니다.
버전 3.1 branch를 사용하여 Cmake로 빌드했습니다.
Godot의 노드와 장면
Godot에서는 카메라, 그리기 대상 등을 노드로 취급합니다.
각 노드에는 스크립트를 연결하여 동작을 변경할 수 있습니다.
노드는 자식 노드를 임의의 개수 가질 수 있으므로 트리 구조를 만들 수 있습니다.
이 트리 구조를 장면으로 저장할 수 있습니다.
점군 비주얼라이저를 만들기 위해서 그리기를 한다.
카메라 조작
Godot GUI에서 카메라 초기 위치를 설정할 수 있습니다.
좋은 것 같은 자산을 찾을 수 없었기 때문에 우선 실행중인 마우스 조작은 없었습니다.
컬러맵
OpenCV를 이용해 parula(matlab의 디폴트 컬러 맵)로 색을 붙였습니다.
Rviz의 rainbow보다 강약이 직관적으로 되어 좋을 것 같습니다.
ROS 노드 이동
Godot의 노드의 메소드를 오버라이드(override) 해, PointCloud2의 Subscriber 생성, ros::spinOnce()의 실행, ImmediateGeometry의 생성·조작을 하고 있습니다.
(커맨드 라인 인수는 취할 수 없기 때문에 더미 데이터를 ros::init에 건네주었습니다)
마지막으로
100행 정도의 C++ 코드로 심플한 점군 비주얼라이저를 만들 수 있었습니다.
후에는 rviz와 동등한 카메라 조작을 가능하게 하는 스크립트와 tf를 처리하는 플러그인을 만들면 사용할 수 있을 것 같습니다.
Reference
이 문제에 관하여(게임 엔진 Godot에서 ROS의 포인트 클라우드 비주얼 라이저를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ymd-stella/items/b2d326944338a9daf3fb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
htps : // 기주 b. 코 m / 고도 텐기네 / 고도 t
Godot은 오픈 소스 게임 엔진입니다.
Unity나 Unreal Engine 4에 비해 지명도가 낮지만 가볍고 간단하게 사용할 수 있다는 큰 이점이 있습니다.
Godot 설정
아래에서 다운로드하여 unzip하면 실행 형식의 파일을 얻을 수 있습니다.
htps : // 미안해. 오 rg / 드 w 응 아 d / ぃ ん x
godot-cpp
htps : // 기주 b. 코 m / 어린 t 나치 ゔ ㅇ ls / 어른 t-c p
Godot의 표준 스크립팅 언어는 GDScript라는 파이썬 유사 언어이지만 GDNative를 사용하면 C++에서 플러그인을 만들 수 있습니다.
이것을 이용하여 Godot에서 ROS 노드를 움직입니다.
버전 3.1 branch를 사용하여 Cmake로 빌드했습니다.
Godot의 노드와 장면
Godot에서는 카메라, 그리기 대상 등을 노드로 취급합니다.
각 노드에는 스크립트를 연결하여 동작을 변경할 수 있습니다.
노드는 자식 노드를 임의의 개수 가질 수 있으므로 트리 구조를 만들 수 있습니다.
이 트리 구조를 장면으로 저장할 수 있습니다.
점군 비주얼라이저를 만들기 위해서 그리기를 한다.
카메라 조작
Godot GUI에서 카메라 초기 위치를 설정할 수 있습니다.
좋은 것 같은 자산을 찾을 수 없었기 때문에 우선 실행중인 마우스 조작은 없었습니다.
컬러맵
OpenCV를 이용해 parula(matlab의 디폴트 컬러 맵)로 색을 붙였습니다.
Rviz의 rainbow보다 강약이 직관적으로 되어 좋을 것 같습니다.
ROS 노드 이동
Godot의 노드의 메소드를 오버라이드(override) 해, PointCloud2의 Subscriber 생성, ros::spinOnce()의 실행, ImmediateGeometry의 생성·조작을 하고 있습니다.
(커맨드 라인 인수는 취할 수 없기 때문에 더미 데이터를 ros::init에 건네주었습니다)
마지막으로
100행 정도의 C++ 코드로 심플한 점군 비주얼라이저를 만들 수 있었습니다.
후에는 rviz와 동등한 카메라 조작을 가능하게 하는 스크립트와 tf를 처리하는 플러그인을 만들면 사용할 수 있을 것 같습니다.
Reference
이 문제에 관하여(게임 엔진 Godot에서 ROS의 포인트 클라우드 비주얼 라이저를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ymd-stella/items/b2d326944338a9daf3fb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
htps : // 기주 b. 코 m / 어린 t 나치 ゔ ㅇ ls / 어른 t-c p
Godot의 표준 스크립팅 언어는 GDScript라는 파이썬 유사 언어이지만 GDNative를 사용하면 C++에서 플러그인을 만들 수 있습니다.
이것을 이용하여 Godot에서 ROS 노드를 움직입니다.
버전 3.1 branch를 사용하여 Cmake로 빌드했습니다.
Godot의 노드와 장면
Godot에서는 카메라, 그리기 대상 등을 노드로 취급합니다.
각 노드에는 스크립트를 연결하여 동작을 변경할 수 있습니다.
노드는 자식 노드를 임의의 개수 가질 수 있으므로 트리 구조를 만들 수 있습니다.
이 트리 구조를 장면으로 저장할 수 있습니다.
점군 비주얼라이저를 만들기 위해서 그리기를 한다.
카메라 조작
Godot GUI에서 카메라 초기 위치를 설정할 수 있습니다.
좋은 것 같은 자산을 찾을 수 없었기 때문에 우선 실행중인 마우스 조작은 없었습니다.
컬러맵
OpenCV를 이용해 parula(matlab의 디폴트 컬러 맵)로 색을 붙였습니다.
Rviz의 rainbow보다 강약이 직관적으로 되어 좋을 것 같습니다.
ROS 노드 이동
Godot의 노드의 메소드를 오버라이드(override) 해, PointCloud2의 Subscriber 생성, ros::spinOnce()의 실행, ImmediateGeometry의 생성·조작을 하고 있습니다.
(커맨드 라인 인수는 취할 수 없기 때문에 더미 데이터를 ros::init에 건네주었습니다)
마지막으로
100행 정도의 C++ 코드로 심플한 점군 비주얼라이저를 만들 수 있었습니다.
후에는 rviz와 동등한 카메라 조작을 가능하게 하는 스크립트와 tf를 처리하는 플러그인을 만들면 사용할 수 있을 것 같습니다.
Reference
이 문제에 관하여(게임 엔진 Godot에서 ROS의 포인트 클라우드 비주얼 라이저를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ymd-stella/items/b2d326944338a9daf3fb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Godot GUI에서 카메라 초기 위치를 설정할 수 있습니다.
좋은 것 같은 자산을 찾을 수 없었기 때문에 우선 실행중인 마우스 조작은 없었습니다.
컬러맵
OpenCV를 이용해 parula(matlab의 디폴트 컬러 맵)로 색을 붙였습니다.
Rviz의 rainbow보다 강약이 직관적으로 되어 좋을 것 같습니다.
ROS 노드 이동
Godot의 노드의 메소드를 오버라이드(override) 해, PointCloud2의 Subscriber 생성, ros::spinOnce()의 실행, ImmediateGeometry의 생성·조작을 하고 있습니다.
(커맨드 라인 인수는 취할 수 없기 때문에 더미 데이터를 ros::init에 건네주었습니다)
마지막으로
100행 정도의 C++ 코드로 심플한 점군 비주얼라이저를 만들 수 있었습니다.
후에는 rviz와 동등한 카메라 조작을 가능하게 하는 스크립트와 tf를 처리하는 플러그인을 만들면 사용할 수 있을 것 같습니다.
Reference
이 문제에 관하여(게임 엔진 Godot에서 ROS의 포인트 클라우드 비주얼 라이저를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ymd-stella/items/b2d326944338a9daf3fb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Godot의 노드의 메소드를 오버라이드(override) 해, PointCloud2의 Subscriber 생성, ros::spinOnce()의 실행, ImmediateGeometry의 생성·조작을 하고 있습니다.
(커맨드 라인 인수는 취할 수 없기 때문에 더미 데이터를 ros::init에 건네주었습니다)
마지막으로
100행 정도의 C++ 코드로 심플한 점군 비주얼라이저를 만들 수 있었습니다.
후에는 rviz와 동등한 카메라 조작을 가능하게 하는 스크립트와 tf를 처리하는 플러그인을 만들면 사용할 수 있을 것 같습니다.
Reference
이 문제에 관하여(게임 엔진 Godot에서 ROS의 포인트 클라우드 비주얼 라이저를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ymd-stella/items/b2d326944338a9daf3fb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(게임 엔진 Godot에서 ROS의 포인트 클라우드 비주얼 라이저를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ymd-stella/items/b2d326944338a9daf3fb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)