본문 바로가기

반응형

Robotics

66일차 - Zumi 회전 코드, 지도 제작 레퍼런스 러프 주미 회전 코드 from zumi.zumi import Zumi import time zumi = Zumi() for i in range(6): zumi.turn_right(30) for i in range(6): zumi.turn_left(30) 회전 후 딜레이가 있는 걸 보니 저런 곡선형 도로를 주행하지 못할 것 같습니다. 지도를 좀더 직선형으로 만들어봅시다. 스켈레톤 커다란 지도를 만들기 위해 위 이미지를 16장으로 분할하여 사용합니다. 이렇게 보니 번호를 집어넣어야 할 것 같네요. 시야 측정 주미의 카메라가 전방을 향하고 있기 때문에, 대략 14cm보다 가까이 있는 도로는 보이지 않았습니다. 회전 시 프레임 잔상 주행 모드에서 카메라를 열고 한 바퀴 회전했을 때, FPS가 너무 낮아.. 더보기
65일차 - 차선 정보 검출하기 심화.. from google.colab import drive drive.mount('/content/drive', force_remount=True) import cv2 import numpy as np from google.colab.patches import cv2_imshow def hough(img): lines = cv2.HoughLinesP( cannyed, rho=6, theta=np.pi / 60, threshold=160, lines=np.array([]), minLineLength=40, maxLineGap=25 ) return lines def paint(img, lines): painted = np.zeros(img.shape, dtype=np.uint8) for line in lines.. 더보기
64일차 - 도로 이미지에서 차선 정보 검출하기 from google.colab import drive drive.mount('/content/drive', force_remount=True) 도로 이미지 불러오기 추후 작업을 용이하게 하기 위해 흑백 이미지로 불러왔습니다. import cv2 import numpy as np from google.colab.patches import cv2_imshow path = '/content/drive/My Drive/돈과 유명세를 잡자/Zumi/lane_extract/{num}.png' src = cv2.imread(path.format(num=3)) gray= cv2.cvtColor(src, cv2.COLOR_RGB2GRAY) cv2_imshow(src) cv2_imshow(gray) 관심 영역 추출 전체.. 더보기
63일차 - ROS 2 액션 알아보기 [오로카 ROS 유저모임] 서론 위 강의는 네이버 카페 오로카에 게시된 표윤석님의 ROS 2 강의를 이해하면서, 제 식대로 재구성한 게시글입니다. 서비스: https://cafe.naver.com/openrt/24128 액션: https://cafe.naver.com/openrt/24142 추후 강의로는 SI 단위 작성 좌표계 맞추기 코딩 스타일 가이드 ament_lint와 같은 lint 계열 토픽, 서비스, 액션 파라미터에 대한 기본적인 프로그램 rqt gui 작성 같은 강의가 이루어질 예정입니다. 오픈채팅 방에 참가하시고, 매주 화요일 7시 반에 ROS 2 강의에 참석하세요!! 오로카: https://cafe.naver.com/openrt 오로카 ROS 유저모임 오픈채팅 방: https://open.kakao.com/o/gAe.. 더보기
63일차 - ROS 2 서비스 알아보기 [오로카 ROS 유저모임] 서론 위 강의는 네이버 카페 오로카에 게시된 표윤석님의 ROS 2 강의를 이해하면서, 제 식대로 재구성한 게시글입니다. 서비스: https://cafe.naver.com/openrt/24128 액션: https://cafe.naver.com/openrt/24142 추후 강의로는 SI 단위 작성 좌표계 맞추기 코딩 스타일 가이드 ament_lint와 같은 lint 계열 토픽, 서비스, 액션 파라미터에 대한 기본적인 프로그램 rqt gui 작성 같은 강의가 이루어질 예정입니다. 오픈채팅 방에 참가하시고, 매주 화요일 7시 반에 ROS 2 강의에 참석하세요!! 오로카: https://cafe.naver.com/openrt 오로카 ROS 유저모임 오픈채팅 방: https://open.kakao.com/o/gAe.. 더보기
62일차 - 차원과 단위 예제 풀이 [쉽게 배우는 기계공학 개론] # 예제 1.4.1 [차원] 넓이 A의 면에 F의 힘이 수직으로 가해질 때 면이 받는 압력 P = F/A로 정의된다. 압력의 차원을 FLT계와 MLT계로 나타내어라. ## MLT - A = L^2 - P = F/L^2 = FL^-2 ## FLT - F = ML/T^2 = MLT^-2 - P = ML^-1T^-2 # 예제 1.4.2 [일] 0.5kN의 힘을 받고 힘의 방향으로 30cm 이동한 물체가 한 일은 몇 J인가? - J = N * m - 0.5kN = 500N - 30cm = 0.3m - 500 * 0.3 = 150J # 예제 1.4.3 [동력] 400kgf의 힘을 받고 시속 72km의 속도로 직선 운동하는 물체가 가진 동력은 몇 kW인가? - H = Fv - F = 400kgf = 400 * 9... 더보기
61일차 - 차원과 단위, SI 단위계, 위치 에너지, 운동 에너지, 역학적 에너지 [쉽게 배우는 기계공학 개론] 차원과 단위 물리량의 성질을 표현하기 위해 사용되는 변수를 차원(dimension)이라 합니다. 거리를 L, 시간을 T로 나타내면 속도(= 단위 시간에 이동한 거리)는 L/T 차원이 됩니다. 이에 반해 단위(unit)는 인위적으로 정한 크기를 기준으로 차원을 표현하기 위해 사용되며, m/s, cm/s, km/min, km/hr 등 여러 가지 형태로 표현될 수 있습니다. 따라서 단위는 기준에 따라 다를 수 있으므로 국제적으로 공인된 SI 단위계(Standard International unit)를 표준으로 사용합니다. SI 단위 SI 단위에는 7개의 기본 단위와 2개의 보조 단위가 있으며, 이는 다음과 같습니다. SI 기본 단위 기본량(차원) 기호 명칭 질량 kg 킬로그램 길이 m 미터 시간 s 초 온도 .. 더보기
60일차 - C++ openCV 4 실시간 영상에서 ORB 특징점 추출 및 FLANN 매칭하기 특징점 디스크립터 이미지로 저장하기 C++에서 npy를 사용하기에는 너무 추상적이어서 형식을 맞추는 데 많은 시간을 소모하였습니다. 오늘은 특징점 디스크립터를 이미지로 저장하고, 이를 불러와 사용하도록 하겠습니다. 디스크립터를 이미지로 저장하는 이유는, C++에서 특징점을 추출할 때 디스크립터가 저장되는 자료형이 cv::Mat이기 때문입니다. XCode에서 템플릿 이미지를 불러오기 위해서는 Hero 1.png ~ Hero 104.png 파일을 PROJECT > TARGETS의 Copy Files에 추가해주어야 합니다. #include #include #define NUM_OF_TEMPLATE 104 using namespace std; // 템플릿 및 카메라 프레임 특징점 추출 void extract(c.. 더보기

반응형