환경: Ubuntu 22.05ros2 humble 이전 글에 이어 Nav2를 사용해서 Navigating을 실제로 하려고 한다.https://2nnsv.tistory.com/223 [ROS2] Cartographer SLAM환경: Ubuntu 22.05 ros2 humble 먼저 navigation2를 사용하기 위해서 아래 명령어를 통해 필요한 패키지를 설치한다.sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup 가제보로 시뮬레이션을 돌리고 싶2nnsv.tistory.com 먼저 환경 변수 설정을 해준다.source /opt/ros/humble/setup.bash export TURTLEBOT3_MODEL=waffle 하던 중에 아래와..
환경: Ubuntu 22.05 ros2 humble 먼저 navigation2를 사용하기 위해서 아래 명령어를 통해 필요한 패키지를 설치한다.sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup 가제보로 시뮬레이션을 돌리고 싶으면 아래 명령어로 설치할 수 있다.sudo apt install ros-humble-turtlebot3* Nav2로 맵을 만들기 전에 먼저 nav가 내 환경에서 잘 작동하도록 설정해주어야 한다.turtlebot3 model 변수를 설정해준다. export TURTLEBOT3_MODEL=waffle다음 Gazebo가 제대로 작동하는지 확인해보자.ros2 launch turtlebot3_gazebo turtlebot3_w..
이전 글에서 SLAM의 원리에 대해서 언급했었다. 이번에는 3D LiDAR SLAM에 대해서 알아볼 것이다. 다시 한 번 정리하자면, SLAM은 실시간 위치 추정 및 지도 작성을 말한다. 주변에 대한 사전 정보가 없는 상황에서 센서를 이용해 이동 중에 주변 환경과 현재 위치를 인식하는 것이다. 이렇게 하기 위해서는 센서를 사용해서 주변을 인지하는데, 카메라, LiDAR 등 여러 센서가 존재하는데 그 중에서 3D LiDAR 방식을 알아볼 것이다. 3D LiDARLiDAR는 레이저 펄스를 쏘고 반사되어 돌아오는 시간을 측정해 반사체의 위치를 측정하는 시스템이다. 왜 3D LiDAR를 사용할까? 대표적인 센서인 카메라와 비교해보자. 카메라는 2D 이미지를 통해서 환경을 생성한다. 3D LiDAR는 실시간 고해..
SLAM(Simultaneous Localization And Mapping)SLAM이란 주변 관경 지도를 작성하는 동시에 이동체의 위치를 작성된 지도 안에서 추정하는 방법이다. SLAM 알고리즘을 사용하면 이동체가 이동하면서 알지 못하는 환경에 대해서 지도를 작성할 수 있다. 주변 환경에 대한 사전 정보가 없는 상황에서도 센서를 이용해 주변 환경을 인식하고 자신의 위치를 추정한다. SLAM 알고리즘초반 SLAM 알고리즘은 베이즈 필터에 기반한 방법들이 연구되었다. 베이즈 필터는 사전확률과 가능도로부터 사후확률을 계산하는 베이즈 정리에 기반으루 두고 있다. 지속적으로 주변 환경에 대한 센서 정보와 로봇의 현재 위치 정보를 받아 로봇 위치와 주변 환경 정보를 업데이트한다. 이를 기반으로 확장 칼만 필터..
Topic Topic은 노드들 간에 정보를 주고 받기 위한 것이다. 비동기식 단방향 메시지 송수진 방식으로, msg 메시지 형태를 발행하는 Publisher, 메시지를 구독하는 Subscriber 간의 통신 방식이다. 하나의 노드는 여러 개의 토픽을 발행할 수 있고, 수신할 수도 있다. 단방향 통신이기 때문에 노드가 토픽을 제대로 수신했는지 정상 처리 되었는지 확인하지 않는다. in Terminal터미널 상에서 turtlesim에서 제공하는 라이브러리로 토픽을 발행해본 다음 직접 코드를 작성해보자.먼저, 터미널에서 사용할 수 있는 토픽 관련 명령을 알아볼 것인데, 사용할 수 있는 토픽이 뭐가 있는지 보자.ros2 topic list 이 토픽을 사용하기 위해서 토픽 정보를 확인해보자. 먼저 토픽이 사용..
ROS란ROS(Robot Operating System)은 로봇 애플리케이션 구축에 필요한 SW 라이브러리와 툴 모음을 말한다. 로봇이 움직일 때를 생각해보면, 통신, 제어, 계측 등 다양한 분야의 지식이 필요하고 이것을 유기적으로 연결해야 자연스럽게 로봇의 움직임을 만들 수 있다. 이 많은 것을 모두 공부하고 로봇을 만드려면 적어도 1년이 걸릴 텐데, 이를 쉽게 하도록 도와주는 것이 ROS이다. NodeROS에서 하나 또는 여러 목적을 달성하기 위한 기능 단위를 말한다. 바퀴 구동을 위한 모터를 조작하는 노드, 레이저의 센서 데이터를 전달하는 노드를 예로 들 수 있다. 각 노드들은 앞으로 나올 topic, service, action, parameter 들을 전달하거나 받을 수 있다. Node 확인을..