[ROS2] TurtleBot3+ROS2(Foxy)+Gazebo Naviagtion2 Install
·
💻 Language/ROS : 로봇시스템
Linux Ubuntu 환경에서 Gazebo 시뮬레이터를 이용하여 Turtlebot3으로 Navigation2 Task를 수행하는 방법을 알아보자. 관련 패키지를 설치하기 전에, OS 버전과 설치된 ROS 버전을 먼저 확인해야 한다. Ubuntu 20.04(focal) $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal ROS2 Foxy $ printenv ROS_DISTRO foxy Gazebo 11 gazebo --version Gazebo multi-robot simulator, version 11.11.0 Copy..
[E] XML Attribute[version] in element[sdf] not defined in SDF, ignoring.
·
💻 Language/ROS : 로봇시스템
Gazebo에서 SDF파일을 로드하는 과정에서 다음과 같은 Warning이 발생했다. SDF 파일에 완전한 SDF로 쓰여있지 않은 부분(형식이 어긋난?)이 존재한다는 것인데, URDF 언어를 사용하거나 하면 이런 오류가 발생한다고 한다. SDF Format과 일치하지 않는 부분을 수정해주면 되는데, 연결된 파일이 많아서 아직 고치지는 못했다. CLOiSim과 Gazebo, Turtlebot3을 합치는 과정에서 어딘가 꼬인 것으로 추정된다. 더보기 SDF Format
[ROS2+Gazebo] Docker Image로 ROS2, Gazebo 빌드하기
·
💻 Language/ROS : 로봇시스템
Dockerfile을 이용하면 다양한 패키지가 한 번에 설치된 도커 컨테이너를 쉽게 생성할 수 있다. 이미지 생성을 위해 아래 Github의 도커 파일을 이용할 것이다. GitHub - ryomo/ros2-gazebo-docker: A ROS2 & Gazebo container with WSLg enabled A ROS2 & Gazebo container with WSLg enabled. Contribute to ryomo/ros2-gazebo-docker development by creating an account on GitHub. github.com 먼저 깃을 클론하고, 이미지를 빌드한다. 아래와 같이 명령어를 입력하면 된다. $ git clone https://github.com/ryomo/ro..
[Ubuntu+ROS2] LG CLOiSim Simulator 설치 및 구동
·
💻 Language/ROS : 로봇시스템
CLOiSim? LG에서 제작한 Simulator로, 3D 세계 환경과 로봇 설명이 포함된 SDF 파일을 사용하는 멀티 로봇 시뮬레이터이다. Unity 3D를 기반으로 동작하며, 여러 센서가 장착된 로봇을 지원하는 등 Gazebo와 유사하게 동작하는 것처럼 보일 수 있다. C#용 SDF Parser 단일성을 위한 SDF 로봇 구현 > 시각/충돌/센서/물리 관절 Unity 3D용 SDF 플러그인 UI 모듈 > 화면 정보 모듈 네트워크 모듈 -> 센서 데이터 또는 제어 신호를 전송하는 모듈 웹 서비스 -> 웹 인터페이스를 통한 시뮬레이션 제어 모듈 CLOiSim은 Gazebo와 비교하여 위와 같은 기능을 추가로 제공한다. 더 자세한 내용은 공식 Github를 참조하자. LGE-ROS2 'lge-ros2' p..
[ROS2] Ubuntu 20.04 Focal - ROS2 Foxy 설치 및 구동
·
💻 Language/ROS : 로봇시스템
ROS는 ROS1, ROS2 두 가지 버전이 존재하는데, 이때까지 ROS1만 사용하다 이번 시뮬레이터 설치에는 ROS2가 필요하여 처음으로 Install하게 되었다. ROS1보다 설치가 간단하고 지원하는 기능도 많다고 하는데 한 번 알아보기로 한다. ROS Version (amd64, arm64) 2018년 이후(그나마 최신) 버전만을 나열하였으며, 자신의 OS 버전에 맞는 ROS2 버전을 Install하여 사용하면 된다. 보통 우분투 20.04 버전에서는 Foxy를, 18.04 버전에서는 Dashing을 많이 사용한다고 한다. 나는 CLOiSim을 포팅하기 위해 ROS2를 설치하는데 배포사의 테스트 환경이 우분투 20.04이므로 Foxy Version을 설치할 것이다. Ubuntu 22.04(Jammy..
[ROS] Gazebo 시뮬레이션 환경에 대해 알아보자.
·
💻 Language/ROS : 로봇시스템
Gazebo란? 자동 로봇을 위한 3D 시뮬레이션 환경으로, ROS와 함께 사용하거나 독립적으로 사용할 수 있다. (ROS와는 별개의 프로그램으로, 오픈 소스로 제공되는 가상 시뮬레이션 툴. ROS와 높은 호환성을 띄어 로보틱스 개발에 많이 이용된다.) URDF, SDF, XACRO 등의 XML 문서로 로봇/가상환경을 Gazebo에 삽입하고 프로그램을 실행하면 로봇과 프로그램이 메시지를 주고받으며 동작하게 된다. 분산 시뮬레이션: 여러 서버에서 동작시켜 성능 향상 효과를 받을 수 있다. 동적 자산 로딩: 시뮬레이션 자산을 자동으로 Load하여 성능을 향상시킨다. 성능 조정: 실시간 속도, 또는 느리게/빠르게 조절하여 시뮬레이션 시간 단계를 조절할 수 있다. 플랫폼: Linux, Mac OS, Window..
[ROS] 로봇 모델을 표현하기 위한 XML, URDF에 대해 알아보자.
·
💻 Language/ROS : 로봇시스템
Robotics 프로그래밍의 Robot Operating System(ROS)에서 로봇 모델을 표현하기 위해서는 URDF를 사용한다. URDF (Unified Robot Description Format) 로봇 모델을 표현하기 위한 XML 파일 로봇, 센서, 작업 환경을 정의할 수 있음 링크들이 트리와 같은 구조를 가지고 있음 링크 간 조인트를 통해 연결됨 * 로보틱스에서 로봇의 팔은 링크, 로봇의 관절은 조인트라고 한다. URDF는 다음과 같은 곳에서 사용할 수 있다. Rviz: ROS에서 로봇의 상태를 시각화하는 툴 MoveIt!: ROS 기반의 motion planning framework Simulator (V-Rep, Gazebo, mujoco, etc) Rigid multi-body dynam..
[ROS] Python으로 간단한 Publisher & Subscriber 만들기
·
💻 Language/ROS : 로봇시스템
ROS에서는 Publisher와 Subscriber가 Topic을 송수신하는 방식으로 통신한다. Publisher와 Subscriber를 만들고 rosrun 명령을 통해 실행하는 과정까지 살펴보자. Package 생성 먼저 실습을 진행할 패키지를 생성한다. 패키지 이름은 practice_1이며, C++/Python을 사용하는 패키지이므로 roscpp rospy 옵션을, 표준 메시지 형식인 std_msgs 패키지를 추가한다. $ cd ~/catkin_ws/src $ catkin_create_pkg practice_1 roscpp rospy std_msgs Publisher 생성 Publisher는 ROS의 Node로, 발행자(서버) 역할을 하는 노드이다. $ roscd practice_1 $ mkdir s..