Note : 이 튜토리얼은 이전의 understanding ROS nodes 튜토리얼을 학습했다고 가정한 후 작성된 튜토리얼이다. 이 튜토리얼에 관련된 문제 및 질문은 answers.ros.org에서 확인할 것. 질문 작성시, 이 튜토리얼 페이지에 대한 링크, OS & ROS 버전 및 적절한 태그를 추가할 것. Understanding ROS Topics Description : 이 튜토리얼은 ROS topic에 대해 소개하고 커맨드라인 툴인 rostopic과 rqt_plot의 사용법에 대해 다룰 것이다. Tutorial Level : BEGINNER Next Tutorial : Understanding ROS services and parameters 1. Setup 1.1 roscore 시작하기에 앞..
이전에 적외선 거리 센서를 다뤘습니다. https://conceptbug.tistory.com/entry/아두이노-적외선-거리-센서-GP2Y0A21-IR-C29-with-3m-연장선 [아두이노] 적외선 거리 센서 : GP2Y0A21 IR - C29 (with 3m 연장선) 거리를 측정해야 할 일이 있는데 아두이노와 쉽게 호환되는 센서 종류로는 대~충 3가지가 있는 것 같습니다. 적외선 센서 초음파 센서 LIDAR 센서 해당 제품은 적외선을 통해 거리를 측정하는 센 conceptbug.tistory.com 사실 사용할 환경이 워낙 특이 케이스라서 LIDAR는 너무 비싸고.. 적당한 적외선과 초음파 센서를 둘 다 사서 써보자 하는 마음으로 구매했습니다. 동작 원리는 적외선 센서와 크게 다를것이 없습니다. 사..
거리를 측정해야 할 일이 있는데 아두이노와 쉽게 호환되는 센서 종류로는 대~충 3가지가 있는 것 같습니다. 적외선 센서 초음파 센서 LIDAR 센서 해당 제품은 적외선을 통해 거리를 측정하는 센서로, 측정 방법에 '빛'이 사용된다는 점이 특징입니다. 따라서 측정의 매개체가 되는 빛에 영향을 주는 환경에서는 해당 센서를 사용하는 것을 고려해야 할 것입니다. (예를 들면 직사광선이 쏟아지는 야외, 그늘과 양지를 오가는 상황, 비가 올 수도 있는 환경 등) 센서의 구조 자체는 크게 적외선 발광부와 수광부로 이루어져 있습니다. 적외선을 발광하여 반사물에 반사되는 적외선의 양에 따라 거리를 측정하며, 측정 된 거리만큼 아날로그 전압으로 출력하는 방식입니다. 참고로, 해당 모델은 아날로그형 모델(GP2Y0'A'21..
아두이노 IDE 잘 쓰고 계십니까? 저는 아두이노의 이 IDE 화면을 볼때마다 솔직히 ㅃㅏㄱ이 칩니다... 킹리적 갓심이지만, 저는 아두이노 재단이 이 앞뒤 꽉꽉 틀어막힌 IDE를 일부러 개선하지 않는다고 생각합니다. 즉, 할 수 있으면서도 IDE를 개선해주지 않는다고 생각한다 이 말입니다...! 간단한 Hello World를 출력하는데 필요한 코드만 작성해보아도 마음속으로 '아니, 왜?' 라는 의문을 2~3번 갖게 됩니다. println() 에서 여는 괄호 (를 입력해도 닫는 괄호 )를 자동으로 입력해주지 않습니다. 또한 괄호 안에 큰 따옴표 "를 입력해도 2쌍을 자동으로 띄워주지도 않습니다. 이런 사소한 것들은 참을 수 있는데, Serial.println() 를 입력한다고 생각해볼 때, Serial ..
Note: 이 튜토리얼은 이전의 building a ROS package튜토리얼을 학습했다고 가정한 후 작성된 튜토리얼이다. 이 튜토리얼에 관련된 문제 및 질문은answers.ros.org에서 확인할 것. 질문 작성시, 이 튜토리얼 페이지에 대한 링크, OS & ROS 버전 및 적절한 태그를 추가할 것. Understanding ROS Nodes Description : 이 튜토리얼은 ROS graph에 대해 소개하고 커맨드라인 툴인 roscore, rosnode, rosrun의 사용법에 대해 다룰 것이다. Tutorial Level : BEGINNER Next Tutorial : Understanding ROS topics 1. Prerequisites 이 튜토리얼에서는 가벼운 시뮬레이터를 하나 설치하..
Note : 이 튜토리얼은 이전의 creating a ROS package 튜토리얼을 학습했다고 가정한 후 작성된 튜토리얼이다. 이 튜토리얼에 관련된 문제 및 질문은 answers.ros.org에서 확인할 것. 질문 작성시, 이 튜토리얼 페이지에 대한 링크, OS & ROS 버전 및 적절한 태그를 추가할 것. Building a ROS Package Description : 이 튜토리얼은 패키지 빌드에 필요한 툴체인에 관해 다룬다. Tutorial Level : BEGINNER Next Tutorial : Understanding ROS Nodes 1. Building Packages 패키지의 모든 시스템 의존성이 설치되면 새로운 패키지를 빌드할 수 있다. Note : apt나 다른 패키지 매니저를 통해..
PX4 카테고리의 방향성 해당 카테고리에는 제가 PX4 개발을 위해 검색하고 공부하며 적어놓은 것들을 하나씩 옮겨적을 예정입니다. 첫 입문은 2020년 4월입니다. 먼저 저는 전자・제어공학과를 졸업했고 학교 랩실이나 프로젝트, 공모전같은 교내/교외 활동은 전혀 하지 않았습니다. (기것해야 졸업작품을 만든것이 전부네요) 그냥 친구들과 노는것을 좋아하고, 밤새 게임하고, 시험 공부를 꾸준히 열심히 하는 것 보단 "상대평가니까 다수보다 조금 더 잘 보면 되지"라는 마인드로 4년 내내 벼락치기만 해왔습니다. 따라서 이런 분야의 경험은 해본적이 없는 상태였습니다. 그러다가 드론에 관심이 생겨 입문(+입사)하게 되었고 사수도 없이 혼자서 구글링과 유튜브 검색만으로 공부했습니다. 처음을 "뭐... 리눅스를 설치해야 ..
Creating a ROS Package Description : 이 튜토리얼에서는 roscreate-pkg 혹은 catkin을 사용하여 패키지를 새롭게 생성하고 rospack을 사용하여 패키지의 의존성을 나열하는 방법을 다룬다. Tutorial Level : BEGINNER Next Tutorial : Building a ROS package 1. What makes up a catkin Package? 어떤 패키지가 catkin 패키지로써 인식되려면 몇 가지 조건들을 만족해야 한다. 반드시 catkin과 호환되는 package.xml 파일이 있어야 한다. 이 package.xml 파일은 패키지의 메타 정보를 포함하고 있다. 반드시 catkin을 사용하는 CMakeLists.txt 파일이 있어야 한다...
Navigating the ROS Filesystem Description : 해당 튜토리얼은 ROS 파일시스템의 개념을 설명하고, roscd, rosls, rospack등의 command-line툴을 다룬다. Tutorial Level : BEGINNER Next Tutorial : Creating a ROS package 1. Prerequisites 해당 튜토리얼을 진행하기 위해서 ros-tutorials 패키지를 활용할 것이기 때문에 해당 패키지가 설치 되었는지 확인해야 한다. sudo apt install ros-melodic-ros-tutorials 이미 최신 버전의 패키지가 설치되어 있는 것으로 보인다. 2. Quick Overview of Filesystem Concepts Package ..
Installing and Configuring Your ROS Environment Description : 이튜토리얼은컴퓨터에ROS를설치하고ROS환경을설정하는과정을설명한다. Tutorial Level : BEGINNER Next Tutorial : Navigating the ROS Filesystem 1. Install ROS ROS 설치 과정인데 이미 설치했으므로 패스. 아직 ROS 설치를 하지 않았다면 아래를 참조. ROS installation instructions ROS/Installation - ROS Wiki Available Translations: German | Spanish | French | Italian | Japanese | Korean | Brazilian Portugues..
저는 RC 컨트롤러를 최소 6채널 이상 되는 녀석으로 바꿀 예정입니다. 지금 사용중인 건(gun)형태의 컨트롤러는 딱 테스트용이라서 테스트 이후 놓아줄 예정입니다... 따라서 위 그림과 같은 전형적인 패드(pad)형 RC 컨트롤러를 예로 생각해 봤습니다. 정리를 해보자 조종 신호 수신 머리로는 대~충 이해가 가지만 막상 코드로 표현하려고 하니 순서가 뒤죽박죽 되더라구요. 먼저 제가 가공할 신호부터 정리 해봤습니다. 기본적으로 Rudder와 Throttle, 이렇게 두 가지 조작이 이루어집니다. 각각의 조작 스틱은 1개의 채널에 할당되어 무선으로 리시버에 전달되며 그 전달된 값의 최대, 최소, 중간값은 이전의 포스팅에서 이미 관찰했었죠. 2021/02/13 - [로봇] - [아두이노] Differentia..
이전까지의 포스팅에서 모터의 회전 방향, 그리고 데드존까지 테스트 해봤습니다. 바로 차동 구동 알고리즘으로 들어갈까 하여 구상을 해보니 하나 걸리는게 있어서 작업을 해놓고 넘어가려고 합니다. 굳이? 지금 구상한 것들을 간단하게(귀찮으니까) 그려봤습니다. 평균 함수는 솔직히 마무리 단계에서 사용을 하게 될지 잘 모르겠습니다. 일단 평균 함수를 사용하면 연산이 느려지는데, 모터의 가동 범위가 줄었을 뿐더러 "과연 필터링을 하지 않은 값이 그렇게 영향을 미칠까?" 라는 생각도 들기 때문입니다. 믹서의 알고리즘 양단에 있는 스케일링 함수는 어쩌면 최대한 중복을 피해서 사용하게 될 것 같습니다. 느려지기도 하고 굳이 여러번 할 필요가 없으니까요. 그런데 어찌됐던 반드시 빠지지 않을 부분이 있습니다. 바로 알고리즘..