본문 바로가기

Posts by PinkWink

(1379)
ROS 카메라 캘리브레이션 수행하기 2021. 4. 27. 08:00 오늘은 ROS melodic에서 카메라를 calibration하는 과정을 설명하려고 합니다. 카메라 영상을 어떻게 사용하는지에 따라 캘리브레이션이 필요할 때가 있는데요. 어떻게 하는지 간단히 보여드릴까 합니다. roscore를 실행하고~ 사용하시는 카메라를 기동하면 됩니다. 저는 최근에 개발에 참여한 R1mini의 ROS 패키지에서 카메라를 기동하는 명령을 사용하면 됩니다. 아무튼 카메라를 기동하구요~ 카메라 영상이 잘 들어오는 rqt_image_view로 확인합니다. 그리고 rostopic list로 영상의 토픽이름을 확인합니다. 제 경우는 jetson 카메라를 실행했기 때문에 /main_camera/image_raw가 토픽 이름입니다. 이제 위 링크에서 체크보드를 받습니다. 저 체크 보드 파일은 RO..
Raspberry Pi 4에 Ubuntu 20.04 설치하기 2021. 4. 12. 08:00 오늘은 라즈베리파이4 보드에 Ubuntu 20.04를 설치하는 과정을 이야기하려고 합니다. 저는 라즈베리파이나 젯슨나노와 같은 리눅스 계열을 사용하는 보드는 모두 ssh를 이용한 원격 접속으로 사용하는 것을 좋아합니다. 그래서 꼭 desktop 버전을 설치할 필요는 없습니다. 이번에는 서버버전으로 설치하는 과정을 이야기하겠습니다. 일단 구글에서 ubuntu 20.04 for raspberry pi install page를 찾습니다. 저런 화면이 나오는데요. 저 페이지 하단에 다운로드 링크가 있습니다. 짠~ 여기네요. Download 64-bit를 합니다. 이제 SD 카드가 필요합니다. 그리고 SD카드 이미지를 굽는 프로그램도 필요하죠. 저는 SD카드 이미지를 굽는 프로그램으로 etcher를 좋아합니다. ..
Jupyter Notebook을 원격으로 접속하기 2021. 4. 8. 08:00 저는 어떤 숭고한(^^) 목적으로 RTX3090을 확보했습니다. 음... 지금은 가격이 더 올랐네요^^. 아무튼, 이 아이를 구매하고 PC가 조립되는 과정은 매우 많은 분들이 도와주셨지요. 오모로봇의 대표님과 연구소장님입니다. ㅋㅋ 이 글을 빌어 감사의 마음을 전합니다. ㅋㅋ^^ 아무튼 그렇게 세팅한 저 데스크탑은 리눅스를 세팅하고 원격으로 사용할 건데요. Jupyter notebook을 데스트탑에서 기동하고, 제 노트북에서 원격으로 접속하려고 합니다^^ 저런 구성을 하고 싶은거죠^^ 일단, 데스크탑의 ip를 알아서 ssh로 접근합니다. ip를 알아내는 방법은 한번 모니터, 키보드, 마우스를 연결하고 ifconfig명령을 이용해서 ip를 확인하면 됩니다. 이제 ssh로 원격으로 데스크탑에 접근을 완료합니..
Python scikit learn의 Label Encoder와 MinMax, Standard, Robust Scaler 이해하기 2021. 4. 5. 08:00 얼핏 관계가 없어 보일 수도 있으나, 이번에는 scikit learn의 Label Encoder와 MinMax, Standard, Robust Scaler를 이야기 해보려고 합니다. 이 아이들 모두 데이터를 만지작 거리다 보면 자주 만나게 되는 아이들입니다. Label Encoder 먼저 연습용 데이터를 즉석에서 만들어 보죠. 그냥 A 컬럼은 문자로, B 컬럼은 흔히 보는 숫자로 되어 있습니다. 네 위와 같이 만들어 지죠. 만약 A컬럼의 문자 a, b, c를 각각 번호 0, 1, 2를 매겨서 변환하고 싶다면 LabelEncoder를 사용하면 됩니다. 먼저 LabelEncoder를 불러와서 A컬럼을 기준으로 fit을 시키면, 어떤 아이를 0이라고 할지, 또 어떤아이를 1이라고 할지를 정합니다. 그 내용이 ..
Jetson nano에 ROS2 foxy 설치하기 2021. 4. 2. 16:42 Jetson Nano는 Ubuntu 18.04에 대응하는 Jetpack이라는 것을 설치하게 됩니다. 그리고 우리는 그 위에 ROS1 melodic 버전을 설치하는 것이 일반적인 절차입니다. 그런데, ROS2가 인기를 끌면서, 또 Ubuntu가 20.04까지 나오면서 Foxy 혹은 그 상위버전의 ROS2를 Jetson Nano에 설치하고 싶은 분들이 많이지기 시작했습니다. 공식적으로는 불가능하죠. NVIDIA가 20.04 Ubuntu를 공식 지원하지 않는한... 그런데 만약 이미 가지고 있는 젯슨나노 보드에 단지 ROS2 Foxy를 설치해보는 것이 목적이라면, Jetpack의 기능을 다 사용하지 못하는것도 괜찮다면, 오늘 설명하는 방법도 있습니다.^^. 일단 먼저 이쪽 세계가 요즘 그렇듯 누가 이미 고맙게..
Box Plot의 기초 2021. 3. 24. 08:00 요즘 수업하면서 box plot의 기초에 대해 궁금해 하시는 분들이 많아서 이 부분만 다시 이야기하려고 블로그에 정리합니다. 데이터의 분포를 관찰하는 좋은 도구 중에 하나가 Box Plot입니다. 간단히 예를 보도록 하죠. 임의로 데이터를 만들어 두겠습니다. 그리고 그림을 그리기 위한 y값도 1로만 채워두겠습니다. 그려보면 위 그림처럼 되죠. 100 근처의 값들이 생뚱(^^)맞게 크게 잡혀있네요. 이제 numpy의 median 명령으로 중간값을 찾아보겠습니다. 45라는 값이 딱 중간 값인가 봅니다. numpy의 percentile 명령을 이용하면 4분의1 (25%), 4분의3 (75%) 지점의 값들을 찾아보면 16과 48이라고 합니다. 그 값을 각각 q1, q3라고 하고 가운데 값은 q2라고 하겠습니다...
ROS 토픽을 터미널에서 그래픽하게 보여주는 rosshow 2021. 3. 21. 09:34 오늘은 터미널에서 토픽을 그래픽하게 보여주는 매우 재미있는 패키지를 소개해드릴려고 합니다. 요즘 제가 로봇에 탑재된 젯슨나노 같은 보드에 원격으로 접속할때가 많은데요. 그런 상황에서 정말 간단히 토픽- 특히 라이다나 이미지 토픽을 확인하고 싶을때 ssh로 접근한 경우는 힘든데요. 그때 바로 확인할 수 있습니다. 먼저 rosshow의 공식 github에서 설치 안내를 볼 수 있습니다. 먼저 python-pip를 설치하고 pip 명령으로 pip를 업그레이드 합니다. 이제 git clone 명령으로 소스를 받아오는데, 왠만하면 catkin_ws가 아니라 다운로드같은 다른 폴더에 받습니다. 이유는 빌드가 안되는 다른 폴더를 포함하고 있기 때문입니다. 이제 패키지를 받아보면 rosshow라는 폴더가 또 그 안에 ..
Python class로 만드는 1차 저역통과필터 Low Pass Filter 2021. 3. 19. 08:00 디지털 필터에 대해서는 예전에 많이 다루었는데요. 당시에 다룰때는 간단히 Python의 함수(def)를 사용해서 많이 다루었습니다. 이번에는 class를 이용해서 조금 사용성을 높인 코드를 보여드리는 것이 어떨까하고 글을 작성합니다. 일단 1차 저역통과필터는 예전에 소개한 글에서 수식을 가져오겠습니다. 저 식을 코드로 단순 변환 시켜보면 out = (tau * pre_out + ts * data) / (tau + ts) 입니다. 수식에서 분모가 같으니 tau + ts는 빼서 보면 저렇게 되죠. 문제는 pre_out입니다. 현재 출력값 out, 수식에서는 yn의 이전 값이거든요. 그래서 저 코드가 실행된 직후 현재 출력을 별도로 저장해야 합니다. 만약 class를 사용하지 않는다면, 1차 저역통과필터가 필..

반응형