본문 바로가기

전체 글78

[ROS2] 아이폰 LiDAR Scanner를 활용해 gazebo Map 만들기 Gazebo에서 기본 제공 월드나 이미 만들어진 맵을 활용해 로봇 시뮬레이션을 진행할 수 있지만, 이번에는 로봇을 배치하게 된다면, 사전에 해당 공간을 최대한 현실적으로 재현한 환경에서 테스트해보고 싶었음. 그러다 아이폰에 내장된 LiDAR 스캐너로 실제 공간을 스캔해서 맵을 만들 수 있다는 걸 알게 되었음.참고로, LiDAR 스캐너는 아이폰 12 Pro 이상 모델부터 탑재되어 있어 해당 기능을 사용할 수 있는 걸로 알고 있음. AppStore에서 RTAB-Map 3D LiDAR Scanner 어플을 사용하여 Mapping을 진행. 1차적으로 한 층 전체를 직접 돌아다니며 스캔을 진행함.걸어 다니며 스캔을 진행하다 보니 일부 구간에서는 손떨림 등으로 인해 안정적인 스캔이 어려웠고, 사람이 없는 공간이.. 2025. 6. 29.
[Computer Vision] 이미지의 기본 요소 픽셀(Pixel) 모든 디지털 이미지는 픽셀로 구성픽셀은 그림을 구성하는 가장 작은 정보 단위각 픽셀은 여러 값을 가질 수 있음픽셀의 위치는 2D 좌표로 표현각 픽셀은 칼라인 경우 3개의 byte로 구성됨(적, 녹, 흑) 픽셀 해상도(Pixel Resolution) 이미지 안의 개수 해상도란, 한 이미지를 구성하는 픽셀(pixel)의 총 개수를 의미함. 즉, 해상도가 높다는 것은 이미지를 구성하는 픽셀의 수가 많다는 것을 의미하며, 그만큼 더 세밀하고 선명한 이미지 표현이 가능함. 반대로, 해상도가 낮다는 것은 픽셀 수가 적다는 뜻으로, 이미지가 흐릿하고 디테일이 떨어질 수 있음. 디지털 이미지의 크기 M : 세로 픽셀 개수N : 가로 픽셀 개수K : 픽셀 당 비트의 개수B = M * N * K해상도.. 2025. 6. 26.
[Robotics] 로봇 좌표계의 개념 좌표계란? 좌표계는 어떤 위치를 표현하는 방법임. 왼쪽 2차원 좌표계는 X,Y 2개의 인자로 어떠한 하나의 위치를 표현함.로봇 좌표계는 3차원 좌표계로 표현함. X,Y,Z 3가지 방향으로 위치를 표현 할 수 있으며, P점이 우리가 표현하고자 하는 위치가 되며, 이 지점이 X,Y,Z로 표현될 수 있음. 로봇 좌표계의 정의 로봇 좌표계란?로봇이 작업 공간에서 자신의 위치와 자세를 표현하기 위해 사용하는 참조 시스템3D공간에서 로봇의 움직임을 수치적으로 나타내는데 필수적인 기초 개념좌표계의 구성 요소X, Y, Z(3차원 공간의 축)과 회전(Roll, Pitch, Yaw)를 포함한 6개 자유도(6 Degrees of Freedom, DOF)위치 성분 : X, Y, Z회전 성분 : rx, ry, rz 로.. 2025. 6. 24.
[Robotics] 두산로보틱스 협동로봇 MoveJ, MoveL 알아보기 두산로보틱스 협동로봇을 운영해 보면서 가장 많이 사용해 본 모션에 대해서 간단하게 알아보려고 함!! 가장 많이 사용된 모션은 MoveJ와 MoveL를 가장 많이 활용했음!! MoveJ  MoveJ에서 J는 관절(Joint)의 약자임. 이 모션은 각 관절이 목표 각도로 동시에 이동 후 동시에 정지함!  이동방식 로봇의 모든 관절이 현재 각도에서 목표 각도를 동시에 이동 후 동시에 멈춤.장점 이동 속도가 빠름.로봇 특이점(Singularity)의 영향을 받지 않음.다관절 로봇에서 특이점(Singularity)이란 로봇이 이동 중 다음 자세를 계산하기 어려운 자세(또는 점).단점 모든 축이 동시에 목표 각도로 회전하기 때문에 이동 경로를 예측할 수 없음.목표 각도를 각 축의 각도로 표기하므로 로봇 끝단의 위치.. 2025. 3. 19.
[OpenCV] 실시간 카메라 영상 처리 시 프레임 끊어짐 문제 해결 방법 Vision AI 기반의 컨베이어 벨트 개체 인식 시스템을 구축하고 딥러닝 모델 최적화를 진행하는 과정에서, 빠르게 움직이는 컨베이어 벨트에서 실시간으로 이미지를 캡처하고 추론하는 문제가 발생함.  시스템이 실시간으로 동작해야 하며, 물체가 컨베이어 벨트를 지나갈 때마다 바로바로 인식하여 추론 결과를 제공해야 했음. 그러나 프레임이 지속적으로 끊어지는 현상이 발생하면서, 실시간 추론을 구현하는 데 어려움을 겪었음!    🤔 문제의 원인 OpenCV의 cv2.VideoCapture로 카메라를 인터페이스할 때, 카메라는 초당 30프레임(fps)으로 이미지를 지속적으로 캡처함(카메라의 설정에 따라 달라질 수 있음). 이 이미지는 운영체제의 이미지 저장 버퍼로 전송되며(동기적), 애플리케이션은 이를 받아서 처.. 2025. 3. 6.
[Project] Vision Al 기반 컨베이어 벨트 객체 인식 시스템 구축 및 딥러닝 모델 최적화 프로젝트(2) 학습 테이터 이미지의 밝기, PCB 위에 생긴 그림자, 그리고 이미지의 선명도가 낮아 각 부분의 특징을 잘 인식하지 못하는 문제를 개선해 보자!  우선 선명도부터 올리자! 선명도 개선  주어진 환경에서는 카메라 각도나 카메라 높낮이를 조절할 수 없었기 때문에    컨베이어 벨트와 카메라의 물리적 위치를 가깝게 하여 PCB를 더 가까이 볼 수 있도록 개선(아래 박스를 두어 높이를 올림).  PCB 구성이 육안으로 인식될 만큼 훨씬 선명해짐. (오른쪽: 개선 후)  PCB 빛 반사 개선   PCB에서 불균형한 형광등 빛의 반사로 인해 PCB의 뚜렷한 형태를 확인할 수 없다고 생각함. 컨베이어 벨트 위의 칩셋을 촬영했을 때, 강한 반사광과 그림자 때문에 이미지 품질이 저하되는 문제가 발생. 칩셋 표면의 반사광.. 2025. 3. 5.