ROS (11) 썸네일형 리스트형 [ROS] Slamtec Mapper 사용 목적- Slamtec 사에서 나온 M2M2 라이다를 연결해 ROS 로 데이터를 받아보려고 했는데 한 번에 되지 않아서 기록으로 남겨두고자 한다. 제품 설명- 디바이스마트에서는 Mapper M2M2 라이다라고 되어 있어서 M2M2 를 열심히 검색했는데, Mapper 라고 검색했어야 했다.- 가격은 754,000 원 (VAT 미포함)- 거리 : 40m- 라이다 스캔 뿐만아니라 SLAM 까지 수행해서 그 데이터를 제공해준다.- LAN을 통해 데이터를 받는다 (Wifi 로도 가능하다고 하는데 방법을 잘 모르겠다.)- 연결은 아래를 참조 - 랜선은 따로 제공되지 않아서 별도로 갖고 있는 걸로 해야 한다.SDK 다운로드 링크- https://www.slamtec.com/ko/Support#rplidar-mapper.. [ros 설치 오류] Could NOT find random_numbers 위와 같이 오류가 떴을 때 CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "random_numbers" with any of the following names: random_numbersConfig.cmake random_numbers-config.cmake 아래와 같이 random-numbers 를 설치해주면 된다. sudo apt-get install ros-noetic-random-numbers MSCKF_vio 를 설치하다가 생긴 오류이다. ** 추가사항 CMake Error at cma.. ROS 강의 - (9) Octomap에 대해 알아보기 Octomap 이란? 많은 매핑 방법론 중 하나 사전 정보 없이 임의의 환경을 3차원으로 모델링할 수 있는 방법론이다. 센서 정보를 통해, 빈 공간에 대한 점유 확률을 계산하고, 점유 확률이 일정 값(threshold) 이상 커질 경우 해당 영역이 점유되었다고 보는 것이다. Octomap 의 특징은 계산량을 줄이기 위해 Octree 를 사용한 것이다. 모든 격자를 미리 나눠두지 않고, 큰 영역에서 구체화되는 것에 맞춰 격자를 추가로 나누는 방법이다. (자세한 설명은 논문을 참조하자. 여기서는 단순히 코드를 사용하는 방법만 리뷰한다.) - 링크 : https://octomap.github.io 단순히 pointcloud 만 갖고는 할 수 있는 것이 별로 없다. Octomap 과 같은 매핑을 통해 장애물 /.. ROS 강의 - (8) Pointcloud, Pointcloud2에 대해 알아보기 (2) Pointcloud란? ROS 에서 다루는 다양한 메시지 타입 중 점들의 집합에 대한 정보를 담고 있는 메시지 주로 Pointcloud2 를 통해 이 데이터를 얻어내고, 이것을 처리하기가 조금 어렵다는 게 지난 포스트 내용 그걸 다루는 라이브러리에 대해 알아보자. 1) PCL library 설치하기 Pointcloud 정보를 다루기 위해서 필요한 라이브러리이다. 설치 명령 (Ubuntu 20.04 / ROS noetic 기준) sudo apt-get install libpcl-dev sudo apt-get install ros-noetic-pcl-conversions ros-noetic-pcl-ros 2) PCL library 활용하기 데이터를 받아서 활용할 방안은 무궁무진하지만, 단순한 예시를 보여주고.. ROS 강의 - (7) Pointcloud, Pointcloud2에 대해 알아보기 (1) Pointcloud란? ROS 에서 다루는 다양한 메시지 타입 중 점들의 집합에 대한 정보를 담고 있는 메시지 1) Pointcloud / Pointcloud2 의 차이 Pointcloud 는 직관적이다. 아래 3가지 정보가 들어 있는데 그 중 points 라는 배열에 각 점들의 x, y, z 정보가 들어간다. std_msgs/Header header geometry_msgs/Point32[] points sensor_msgs/ChannelFloat32[] channels Pointcloud2 는 다양한 형태의 정보를 함축적으로 표현하기 위해 만들어낸 메시지이다. (내 추측) 그래서 직관적으로 이해하기가 쉽지 않다. std_msgs/Header header uint32 height uint32 width.. ROS 강의 - (6) TF 에 대해 알아보기 TF는 ROS 에서 제공하는 패키지 중에 하나로, 다양한 좌표계를 다룰 수 있게 해준다. 우리가 로봇의 손가락 끝 위치를 항상 절대 좌표계 상에서 계산해야 한다면, 시간이 오래 걸릴 것이다. 그런 작업을 없애기 위해 손가락 끝은 로봇 손 좌표계 에서 어떤 위치에 있는지만 알면, 절대 좌표계와 로봇 손 좌표계 간의 관계를 이용해 금방 변환할 수 있다. 위 설명에 대한 참조 링크 : http://wiki.ros.org/tf#What_does_tf_do.3F_Why_should_I_use_tf.3F 본 포스트에서는 아래 2가지를 리뷰할 예정이다.1) 고정된 좌표계 변환에 대한 TF publish 방법2) IMU 에 따라 변화하는 TF publish 방법 1) 고정된 좌표계 변환에 대한 TF publish 실행.. ROS 강의 - (5) RotorS 사용해보기 RotorS는 MAV(무인 항공기)의 시뮬레이션을 위한 ROS 패키지다. 이 패키지를 사용하여, 드론을 비롯한 다양한 형태의 MAV를 시뮬레이션할 수 있다. 또한, 이 패키지는 Gazebo와 연동하여 드론의 제어 시스템을 테스트하거나, SLAM 알고리즘 등을 개발할 때 사용될 수 있다. 참조 링크 : https://github.com/ethz-asl/rotors_simulator 다음은 RotorS 패키지를 설치하기 위한 명령어이다. (앞에서 배운대로 하면 안된다..) mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace # catkin 작업 공간 초기화 wstool init wget https://raw.githubusercontent.c.. ROS 강의 - (4) Publisher, Subscriber 만들어보기 더 알아야 하는 기능은 사실 많지만, 일단 하면서 배우는 게 더 빨리 익혀진다고 생각한다. 참조 링크 : http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber(c%2B%2B) ROS 에서는 모든 기본 단위가 Node 이다. 다른 기능을 가진 Node들끼리 정보를 주고 받기 위해서는 메시지를 주고 받아야 한다. 메시지를 정확하게 받기 위해서 메시지에는 제목을 붙이는데 이걸 “토픽”이라고 한다. Publisher : 메시지를 송신하는 함수 Subscriber : 메시지를 수신하는 함수 C++을 이용하여 이 함수를 만들어보자, 슬프게도, ROS 는 C++를 아예 모르면, 작업하기가 힘들다. 따라서, 이런 쉬운 함수라도 해보면서, 연습을 해보는 게 좋다. .. ROS 강의 - (3) Package 만들기 Package 만들기 Workspace 는 여러 패키지 혹은 단일 패키지로 구성된다. Package 는 그 하위 개념으로 하나의 작업(물론 코드가 여러 개면 여러 작업을 할 수도 있지만)을 수행하는 단위라고 보면 된다. 나도 정확한 개념은 잘 모른다. 그냥 Workspace를 만들고, 뭔가 일을 하려면 Package도 만들어야 한다고 생각하면 된다. 참조 링크 : http://wiki.ros.org/ROS/Tutorials/CreatingPackage 아까 만들어진 폴더로 들어간다. cd ~/catkin_ws/src 아래 명령어만 치면 된다. catkin_create_pkg : 패키지를 만들라는 명령어 beginner_tutorials : 패키지 이름 std_msgs, rospy, roscpp : C언어.. ROS 강의 - (2) Workspace 만들기 Workspace 만들기 ROS 를 설치하고서, 처음에 뭘해야 할지 막막하다. 일단, 아래와 같이 Workspace를 만들고, 그 안에 코드를 넣어야 뭔가 실행가능하다. 일단 Workspace 만드는 법을 알아보자 참조 링크 : http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment 일단, 폴더를 하나 만들어준다. 나중에는 이런 폴더를 여러 개 만들기도 한다. 아래가 폴더 만드는 명령어. 터미널에서 실행하면 된다 mkdir -p ~/catkin_ws/src 만든 폴더로 들어간다. cd ~/catkin_ws/ 아래 명령어를 실행한다. catkin_init_workspace 이때, 오류가 생긴다면 아래와 같이 catkin 을 우선 설.. 이전 1 2 다음