introductionCAN통신을 졸업연구 목적으로 경험하게 되어 이를 공유하고자 합니다. CAN통신은 h/w 셋업이 조금 번거로울 뿐 일단 한 번 준비가 되면 이더넷만큼이나 가벼우면서도 다른 문제와 씨름할 여지가 덜하다는게 큰 장점인듯합니다. 이 글에서는 차량의 CAN bus를 통해 전달되는 데이터를 수신 후 이를 의미있는 결과로 가공해내기 위해 ros에 연동하는것까지 진행해보도록 하겠습니다.C-CAN, B-CAN, M-CAN다른 곳에서도 잘 설명되어있겠지만, 차량 전장에서 통신할 정보가 많아지면서 can bus를 사용 목적에 따라 분리하기 시작했습니다. 차량 구동에 필요한 핵심 데이터(냉각수 온도, 흡기 유량, 구동토크, 등등...) 은 C-CAN(Chassis-CAN), 차량 구동에 큰 영향을 미치..
전체 글
세상을 바꿀 가치있는 일을 그리고 있습니다.Prerequisite24. 04.30. 라즈베리파이4B+, MCP2515(with VD1050), 테스트 장비 : PEAK Systems IPEH-004022(F/W Ver. 3.2.0 Driver Ver.4.4.2), PCAN-View 사용Linux st 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux*SPI 통신을 지원하는 환경이라면 모두 비슷한 방식으로 동작할 것으로 예상되나, 커널 버전과 보드에 따라 다를 수 있습니다.Introduction차량 CAN 데이터를 얻어오기 위해서는 CAN transceiver가 필요합니다. 요즘은 차량에 flexRay CAN-FD 등등을 사용하여, 전용 tra..
인두를 사용하다보면 이동환경에서 인두를 사용했을 때 전원을 어떻게 공급할 것이가에 대한 문제에 직면하게 됩니다. 그렇다면 우리는 대략 3가지 옵션을 사용할 수 있습니다. 1. 220V 파워뱅크 구입 --> 너무나 무겁고 파워뱅크를 구입할 만큼 제가 파워뱅크를 사용할 일이 없습니다. 2. 가스 형식의 인두 사용 --> 온도가 충분해서 바람이 부는 야외에서도 온도 손실 없이 사용할 수 있다는 장점이 있으나, 인두를 야외에서 사용하기 위해 인두를 또 구입해야 하고, 온도도 흄이 나올정도로 높이 가열되는데다, 무엇보다 가스를 주기적으로 재충전해줘야합니다. 3. 알리익스프레스에서 판매하는 PD 인두기 구입 --> 가장 깔끔하고 저렴한 솔루션 중 하나지만.... 제가 서브로 사용하는 더 투박한 아래의 T12 인두가..
증상 git clone 혹은 git push 하는동안 별의 별 이유로 업/다운로드에 실패하는데, 이 때 패킷 디코딩 혹은 EOF(End Of File) 발생. 이 에러가 발생하기 전에 속도가 급속도로 떨어짐 해결방법 1. 통신 속도가 원활한지 먼저 체크해야합니다. wifi 환경 / (저의 경우 raspberry 환경에서)에서 이러한 문제가 발생할 가능성이 높으며, 위와 같은 에러가 발생하기 전에 업/다운로드 속도가 현저하게 떨어지다 에러가 발생합니다. 속도가 갑자기 떨어지다가 에러가 발생하는 경우 네트워크 연결이 보다 안정적으로 보장되어야 합니다. 2. 업로드하는 개별 파일의 크기가 큰 경우 등등 이 있는데, 이에 대한 내용은 다음을 참조하시기 바랍니다: [git] RPC failed; curl 92 에..
CSI 카메라는 그냥 웹캠과는 조금 다르게 접근해야 합니다. opencv를 처음 접하실 때 CSI카메라를 사용하는 경우는 대개 MIPI-CSI 커넥터가 있는 Jetson 시리즈 혹은 라즈베리파이와 같은 SBC(Single Board Computer)를 통해 접근하는 경우가 대부분일 것입니다. 그리고 이렇게 접근하시는 분들 중에 CSI가 왜 안돼지? 라고 의문을 품는 경우가 많을텐데요. import cv2 #OpenCV를 사용하기위해 import해줍니다. def main(): camera = cv2.VideoCapture(-1) #카메라를 비디오 입력으로 사용. -1은 기본설정이라는 뜻 camera.set(3,640) #띄울 동영상의 가로사이즈 640픽셀 camera.set(4,480) #세로사이즈 480..
Introduction 이미지 처리 파이프라인을 구축하다보면 성능에 대한 문제에 아주 많이 부딪힙니다. 영상처리라는 작업 자체가 리소스를 많이 활용하다보니, 이를 어떻게 해야 준수한 성능을 내게 만들 수 있을지에 대해 고민을 하게 됩니다. 이 고민에 대한 해결책의 방향은 크게 두 가지가 있습니다. 주어진 자원을 최대한으로 활용하거나, 주어진 자원 자체를 최적화 시키는 것입니다. 여기에서 주어진 자원자체를 최적화 시킨다는 것은 하드웨어 자체에 내장 가속 칩이 존재해서 그 작업을 해당 칩에 위임하는 것을 말합니다. 가장 쉽게 접할수 있는 예가 GPU 혹은 CPU/GPU 내부에 통합된 비디오 가속 칩이 있겠습니다. 난 죽어도 파이썬을 써야겠다. 가장 접근하기 쉬운 것은 자원 자체를 최적화 하는 것입니다. 병렬..
Introduction 젯슨 나노가 출시된지 너무나 오랜 시간이 지났고, 이제는 단종에 이르러 Jetson Orin Nano를 사용해야 하는 상황이지만, 너무나 매력적인 가격에 이를 계속 사용하고자 하는 사람이 많습니다. 저도 그 중 하나로서, Jetson Nano를 23년 현재에도 유효하게 사용할 수 있도록 하기 위한 몇 가지 작업 내용을 공유하고자 합니다. Deprecated Bionic Beaver. Jetson Nano의 하드웨어를 활용하기 위한 드라이버 키트인 JetPack은 우분투 18.04를 기반으로 한 4.6.1 을 마지막으로 더이상 릴리즈되고 있지 않습니다. 따라서 우리는 yolov8 등의 딥러닝 패키지를 사용하기 위한 사전 작업을 몇 가지 해야 합니다. 조금 더 원활한 사용을 위해 젯슨..
사과농장에 스며들다. 요즘은 펩시 제로 라임 음료에 빠져 있습니다. 하루에 500ml~ 1L정도를 먹으니, 상당히 많이 먹는 편입니다. 사실 355ml 뚱캔 2-3개면 우습게 1L는 마실 수 있을 것만 같습니다. 아무리 아스파탐이 위험물질이니 뭐니 해도, 당장 말초신경 끝을 건드리는 그 청량함을 감히 거부하기란 어렵습니다. 사실 제가 이 음료에 이렇게 중독적이게 된 것은, 운명처럼 한눈에 반해서 이루어진 것이 아닙니다. 한 두 번 맛을 보고, 이후 그 양이 늘어나며 일상에 스며든 것이죠. 그리고, 애플 제품이 제 라이프스타일에 들어온 것도 비슷한 맥락입니다. 천천히 스며들어 어느새 제 삶의 일부를 잠식하게 되었습니다. 물론 저를 비롯한 대부분의 20대 친구들은 트렌드에 따라 아이폰을 구입하고, 아이패드를..
Introduction 업무에 있어 AI 가속이 필요한 작업을 해야 하는 상황이 생겨, 젯슨 나노를 구입했습니다. 현재 시점에서 젯슨 나노 제품은 단종이 되었으며, 대체재로 Jetson Orin Nano가 판매되고 있으나, 가격이 일반 PC에 버금가게 비싸다 보니 선뜻 접근이 어렵습니다. 그렇다보니 출시된지 한참 되었음에도 가격이 오히려 올라가는 이 이상한 보드를 울며 겨자먹기로 사용할 수 밖에 없습니다. 여전히 쓸만한가? 결론부터 말씀드리자면, 그렇습니다. 개인적으로 구입 후 추론작업 진행해본 결과, yolov8, yolov8n weight,640*480 입력 기준 0.06s~0.05s(15fps~20fps)의 성능을 보입니다. 가격이 너무 치사하긴 하지만, 이정도 성능이 나오는 제품은 이 가격대에 없..
What is USB? PC의 구조를 조금 이해해 보겠습니다. 조금 극단적으로 말해서 ,아두이노의 Atmega328P가 더 커지고, 기능에 따라 분화되면 우리는 이걸 PC라고 부를 수 있다. SoC 내부의 요소들이 특정 기능에 따라 분화되면 그걸 PC라고도 부를 수 있는 것입니다. 아두이노를 사용해봤다면, 여기에서 주변 기기(peripheral)과 통신할 수 있는 다양한 방법들(TTL, I2C, RS2323/422,485, SPI, PWM) 등이 있다는 것을 알 수 있을 것입니다. MCU 레벨에서는 GPIO를 통해 이런 방식으로 통신한다 하면, PC에서는 이런 역할을 PCI-E 레인을 통해서 수행한다고도 볼 수 있습니다. PCI-E 레인을 통해서 PC는 주변 기기와 통신할 수 있습니다. USB, 그래픽카..
Preface 230322 작성 일단 글을 시작하기 전, 나에 대해 먼저 돌아보는 시간을 가져 봐야겠다. 나는 코딩으로 먹고 사는 기계공학부 학생이다. 나에 대해 돌아보기 내가 공부중인 학과가 내게 주는 능력, 그리고 내가 먹고 살기 위해 하는 능력은 비슷한 듯 하면서도 다르다. 어느쪽이 더 나은가를 방금 생각해봤지만, 난 결국 판단할 수 없다는 결론에 이르게 된다. 이런 저런 사정으로 학교를 또래보다 늦게 다니고 있다. 내 또래 친구들은 다양한 삶의 방식을 영위중이다. 졸업후 대기업을 가거나, 아르바이트를 하거나, 그냥 쉬기도 한다. 내가 마주한 세상들 2023년 세상은 기존의 통념을 깨는 성능의 AI 모델, chat gpt의 등장으로 시끄럽다. 아마 항간에 떠돌았던 “ai가 튜링 테스트를 통과했다더라..
preface 산업용 장비를 다루다가 엔코더를 다룰 일이 있어 활용법을 알아보다 생각보다 정보가 너무 없어 이렇게 간단히 내용을 남겨둡니다. 엔코더는 산업 현장에서 중요하게 쓰이는 요소 중 하나이지만, 관련 사전 지식이 없다면 사용 자체가 막막한 경우가 많습니다. 이 포스팅에서는 엔코더의 종류와 확인해야 할 요소, 활용 사례, 간단히 연결해서 사용하는 방법까지 다뤄보겠습니다. 엔코더 종류 absolute: 장비의 절대 각도를 측정합니다. incremental: 장비의 회전 수에 상대적인 위치를 측정합니다. 말 그대로 움직인 양에 따라 그 값이 늘어나거나 줄어듭니다. 엔코더 활용 사례 로봇 팔이나 CNC 기계와 같은 자동화 장비에서 위치와 속도 측정 엘리베이터, 에스컬레이터 등의 운송 장비에서 위치 측정 ..