프로그램 자동 재실행 설정 라즈베리파이가 부팅 할 때 특별한 프로그램을 실행시키고 싶다면 rc.local 프로그램을 수정하는 것이 가장 빠르다. 1. sudo nano /etc/rc.local 로 편집기로 들어간다. 시작할때 바로 넣으니 실행이 되지 않는 경우도 있어서 sleep 10을 넣어서 구현하였다. fi sleep 10 /usr/local/bin/mjpg-streamer -i "input_uvc.so -r 1280x720 -d /dev/video0 -f 20 -q 5" -o "output_http.so -p 5000 -w /usr/local/share/mjpg-streamer/www" /home/pi/mjpg-streamer/mjpgstreamer-experimental& sudo python2 ..
핸드폰앱을 활용하여 AHD 카메라의 영상을 실시간으로 받는 과정이 필요하여 라즈베리파이와 스트리밍 서비스를 활용하여 구현하였다. 여기서 중요한 것이 영상화소는 HD급 이상에, 지연시간이 최소화 된 서비스의 구현 이였다. 카메라 영상지연 에는 크게 2가지 경우가 있다. Time Delay : 처음에 생각해 볼 수 있는 경우로 실제 움직이는 동작과 화면에 나오는 동작과의 시간 차이가 발생하는 경우이다. Time Lag : 영상 끊김 현상으로 실시간으로 영상이 나오고 있는 경우라도 오래 동작하거나 영상 데이터가 많이 들어오는 경우가 발생하면 끊김 현상이 발생하는 경우가 종종 있었다. 실제 스트리밍 서버를 구현 한 것과 구글링을 통해 얻은 방법들을 비교하여 더 나은 방법으로 택하고자 한다. 1. Motion 활..
sudo apt-get update sudo apt-get upgrade 를 진행 한 후에 VLC 패키지를 설치해 준다. pi@raspberrypi:~ $ sudo apt-get install vlc ls /dev/video* 명령어를 입력해 video0이 인식되는지 확인한다. 그 후 다음 명령어를 입력해 준다. pi@raspberrypi:~ $ cvlc v4l2:///dev/video0:width=640:height=480:fps=30:chroma=mjpg --noaudio --no-sout-audio --sout '#standard{access=http, mux=mpjpeg,dst=:8081/}' -> 소리없이 영상만 재생되고, 라즈베리파이IP:8081 로 영상 스트리밍이 이루어 집니다. 같은 네트워..
예측값과 측정값을 바탕으로하여 추정값을 계산하는 필터 외부입력 : (측정값) 칼만필터를 통해 나오는 출력값 : (추정값) 시스템 모델 변수 : A,H,Q,R 칼만 필터 내부에 사용되는 변수: 상태정보 모델 : 시스템의 운동방정식을 상태변수에 대해 1차 미분방정식으로 표현한 모델 먼저 칼만필터를 이해하기 위해 조금 거슬러 올라가면 칼만필터는 저주파 통과 모델과 유사(재귀필터) 그리고 저주파 통과 필터는 기본적으로 이동평균 필터를 개선하여 구현됩니다. 먼저 k-n+1번째 데이터에서 k번째 데이터까지 총 n개 데이터의 이동평균을 재귀식으로 나타내면 이러한 식을 얻어낼 수 있습니다. 이 식의 단점은 평균을 얻고자 하는 데이터에 모든 동일한 가중치를 부여하여 계산했다는 점 입니다. 이것을 개선한 식이 저주파 통과..
장비를 자체 제작하고 픽스호크만 활용하여 Waypoint navigation을 진행할 시 여러가지 원인으로 원하는 지점으로 가지 않을 수 있습니다. 그럴경우에는 먼저 1. 가속도계 교정과 컴퍼스 교정을 해주고 난 후, 2. ARMING_CHECK를 활성화 하여 에러가 나오면 해결해 줍니다. 3. 그 다음 Mission Planner 에서 Parameter 수정을 통해 튜닝작업을 해주면 대부분 해결 됩니다. 이때, 대표적으로 수정할 Parameter에 대해 알아보면 모터에 속도가 나오지 않거나, 윙 소리가 나는 경우 변경을 고려해 볼 Parameter 입니다. MOT_PWM_TYPE : 장비에 사용된 모터에 따라 변경해 줍니다. 브러쉬리스 모터의 경우 Default값인 0으로 설정해 줍니다. 브러쉬 모터의..
RTK-GPS의 측정방법은 1) Base는 정확한 위치를 가지고 있는다고 가정합니다. 2) Rover와 Base는 GPS데이터를 받고 Base는 자신의 위치와 GPS데이터간의 오차를 계산해 냅니다. 3) 계산해 낸 오차를 Base는 Rover에게 전송하여 GPS데이터를 수정하도록 합니다. 4) 이러한 과정의 반복으로 Rover는 정확한 위치를 찾을수 있게 됩니다. GNSS : Global Navigation Staellite System 위성항법시스템 미국의 GNSS 시스템이 GPS// -> 보정없는 GNSS 신호면 평균 5~10m의 오차가 발생합니다. 정확도는 BASE설치하여 GPS를 보정하는 시간과 로버와의 거리에 따라 달라지며 수일동안 보정하면 보통 1~2cm내외 입니다. 일반적으로 GPS의 정확도..
아두이노와 라즈베리파이를 활용하여 여러가지를 제작해 보면서 여러 보드들도 알게 되었고 그 중 하나가 픽스호크 입니다. 저는 이 픽스호크와 이것을 사용하기 위한 GCS프로그램인 미션플래너를 활용하여 지정 포인트 이동을 하는 로버를 제작해 보기로 하였습니다. 미션플래너를 활용하기 위하여 픽스호크를 산 것이나 같습니다. 픽스호크 드론의 정석 책을 보며 픽스호크와 미션플래너에 대해 학습하였습니다. 교제에 나와있는 드론이 아니라 직접 로버를 제작해 보는 것이여서 WayPoint 설정 방법과 제작시 미처 생각하지 못했던 점을 정리해 보려 합니다. [조종기 없이 미션플래너만 가지고 WayPoint 수행하기] 1. USB를 통해 Pixhawk와 미션플래너를 연결하고 펌웨어를 다운 받습니다. 2. 로버가 있으면 로버에 ..