로봇 8

[OpenCV] 3. 객체 탐지를 위한 이미지 전처리 프로세싱 (Image Processing)

서론상자를 분류하기 위해서는 가장 먼저 해당 상자의 길이를 측정할 수 있어야 한다. 상자의 길이를 측정해야 특정 값을 기준으로 상자를 분류할 수 있기 때문이다. 그래서 이번 글에서는 상자의 길이를 측정하기 전에 이미지 프로세싱을 통해서 이미지를 가공하는 방법에 대해서 알아볼 것이다.객체 길이 측정 방법객체의 길이를 측정하기 위한 알고리즘을 한 번 생각해 보자. 가장 간단한 방법은 이미 알고 있는 물체의 길이를 사용해서 비례적으로 타겟 객체의 길이를 계산하는 방법이다. 하지만 이렇게 간단한 방법을 하기 위해서 우리가 해야 할 작업이 몇 가지가 있다. 객체 탐지 알고리즘이미 우리가 길이를 알고 있는 객체가 있다고 하더라도, 우리는 그 객체를 탐지하고 인식해야 그 길이 정보를 사용할 수 있다. 또한, 우리가 ..

Robotics 2024.12.03

[Ball Balancing] 1. 인벤터로 동작 시뮬레이션 확인하기

서론설계라는 과정은 머릿속에 있는 것을 그리거나 모델링해서 실제로 눈으로 볼 수 있게 하는 과정이다. 아무리 머릿속에서 완벽하게 상상했다고 하더라도 실제로는 공차가 맞지 않다거나 단차가 생기는 등의 변수가 발생할 수 있다. 따라서 직접 그려보고, 더 정확하게는 치수를 입력해서 모델링한 뒤 시뮬레이션을 통해서 동작을 확인하는 것이 가장 좋다. 나는 3D 프린터로 출력을 하기 위해서 모델링을 했다. 하지만 시뮬레이션을 돌리지 않았고, 나의 설계가 완벽할 것이라고 믿었다. 하지만 실제로 3D 프린터로 출력을 한 뒤, 조립을 해서 확인을 해보니 내가 생각했던 움직임이 나오지 않았다. 사실 약간의 공차와 단차는 사포질을 통해서 해결할 수 있다. 하지만 애초에 불가능한 관절의 움직임을 해결하는 것은 쉽지 않다. 따..

Robotics 2024.11.22

[Ball Balancing] 0. 아두이노 프로젝트로 공 균형 잡기 도전

서론나는 기계공학과 학생이다. 이번 기계공학실험 수업을 들으며 미니 프로젝트가 주어졌다. 주제는 아두이노를 사용하여, 두 개의 서보모터를 사용하여, plate 위에 있는 공의 균형을 잡는 것이다. 흔히, Ball Balancing 혹은 Balancing Ball 등으로 불리며, PID 제어를 공부할 때 많이 하는 주제이다. 난이도는 조금 높지만 그래도 흔한 아두이노 프로젝트로 알려져 있다. (참고 영상: https://www.youtube.com/shorts/PfjV1vAq0rU) 보통은 이미 주어진 모델이 있고, 학생들이 PID 제어만을 연습하기 위해서 코딩을 한다. 하지만 이번 실험 수업에서는 그저 아두이노 우노(Arduino UNO)와 서보 모터 두 개, 가속도 센서 한 개만을 제공해주었다. 즉, ..

Robotics 2024.11.15

[OpenCV] 2. 아루코마커 인식하기 (ArUco marker)

서론오늘은 OpenCV로 아루코마커 (ArUco marker)를 인식하는 것을 해보려고 한다. 아루코마커란 로봇 비전 혹은 컴퓨터 비전에서 많이 사용하는 마커이다. 마치 QR 코드처럼 우리가 카메라로 아루코마커를 인식하면 그 아루코마커가 가지고 있는 ID를 반환받아서 읽을 수 있다. 우리가 아루코마커를 사용하는 이유는 간편하기 때문이다. 간단히 아루코마커를 출력해서 붙여두면, 특정 위치에서 아루코마커를 인식할 수 있다. 물론, 우리가 객체인식 모델을 가지고 있다면, 굳이 아루코마커를 사용하지 않더라도 원하는 것을 인식하고 활용할 수 있다. 하지만 그렇게 딥러닝 모델을 만드는 것보다는 간단히 아루코마커를 출력해서 사용하는 편이 좋다.아루코마커 (ArUco marker)아루코마커를 간단히 만들 수 있는 사이..

Robotics 2024.11.14

[OpenCV] 0. 로봇 비전을 활용한 상자 분류 프로젝트

서론로봇과 기계의 차이는 무엇일까? 로봇과 기계의 가장 큰 차이는 로봇이 스스로 센서로 무언가를 인지하고, 그것에 대한 피드백의 유무이다. 즉, 로봇에게는 센서가 있어야 한다. 그리고 그 센서의 종류에는 촉각 센서, 초음파 센서, 온도 센서 등 다양한 센서들이 있지만, 나는 그중에서 카메라를 센서로 사용하려고 한다. 카메라를 센서로 사용하는 이유에는 여러가지가 있다. 카메라는 로봇, 감시, 우주 탐사, 자동화 등 여러 산업과 여러 영역에서 이미 많이 사용하고 있다. 또한, 인간이 가장 중요시하는 감각 기관인 시각을 사용함으로써 직관적이고 확실하다. 이러한 이유로 로봇 비전 혹은 컴퓨터 비전과 관련한 개발이 많이 진행되었다. 가장 대표적으로는 이미지와 동영상을 가공하고 분석하는 OpenCV가 있다. 이것 ..

Robotics 2024.11.12

[로봇공학] 3. Inverse Kinematics로 2DOF 로봇팔 계산하기

서론이전 글에서 DH Parameter를 가지고 로봇팔을 표현하는 방법을 알아보았다. 우리는 DH 파라미터 표를 가지고 우리의 로봇팔이 어떻게 생겼는지도 알 수 있다. 그렇다면 로봇팔의 각도로 끝점의 위치를 계산하는 방법과 로봇팔을 표현하는 방법을 알았으니, 우리가 원하는 위치로 로봇이 움직일 수 있도록 해보자. 이를 위해서 우리는 Inverse Kinematics(역기구학)를 사용할 것이다.Inverse Kinematics역기구학은 쉽게 말해서 끝 점의 좌표와 각 관절의 길이를 가지고 각 관절의 각도를 계산하는 방법이다. 우리는 이미 Forward Kinematics를 다루었다. 이것은 Joint space를 Task space로 바꾸는 방법이었다. 그리고 오늘 알아볼 방법은 Task space를 Jo..

Robotics 2024.10.30

[로봇공학] 1. Forward Kinematics로 로봇팔 위치 찾기

서론이전 글에 이어서 Planar 2 DOF Robot Arm 제어 시뮬레이션 만들기 프로젝트를 하기 위한 첫 단계를 나아가려고 한다. 오늘은 로봇공학의 아주 기본인 Forward Kinematics를 MATLAB을 통해 어떻게 시뮬레이션할 수 있는지 확인할 것이다. 따라서 오늘 확인해 볼 것은 Translation, Rotation and Transformation matrix에 대해서 알아보고, DH Parameter를 가지고 Forward Kinematics를 계산할 것이다. 그리고 마지막으로는 MATLAB에 이것들을 어떻게 Plot 해서 시뮬레이션하는지에 대해 알아볼 것이다.Translation matrix로봇공학을 공부하면서 가장 처음에 배우는 것이 Translation matrix일 것이다. ..

Robotics 2024.09.25

로봇 제작을 좋아하는 대학생의 개발일지

개요안녕하세요.현재 대학에서 기계공학과를 주전공, 전기전자공학과를 부전공으로 공부하고 있는 4학년 로보고니입니다. 어려서부터 과학상자 6호나 아두이노, 레고 EV3 등을 조립하고 만들면서 로봇공학자가 되고 싶었습니다.그리고 그때의 꿈을 지금까지 가져오면서, 로봇과 관련된 여러 활동들을 하며 성장해 왔습니다. 초등학생 때 과학상자로 전국대회도 나가고, 중학생과 고등학생 때는 로봇동아리 회장을 했습니다.대학생이 되어서도 로봇동아리나 대회, 랩인턴 등 로봇과 관련된 활동을 멈추지 않았습니다. 이제 졸업을 앞두고 있는 지금, 그동안 해온 로봇과 관련된 활동, 공부들에 대해서 정리를 해보려고 합니다.활동 계획이 블로그에서 다룰 내용은 아래와 같습니다.로봇 제작 A to Z - 로봇 대회, 동아리, 랩인턴로보틱스 ..

Robotics 2024.09.20