發表文章

目前顯示的是 7月 15, 2018的文章

Visual odometry for drone's navigation

[Concept] Considering a drone is currently at a position P(i), at time step i. A waypoint to be achieved at the next time step is W(i+1) 1. Calculating position error between W(i+1) and P(i). 2. Position error fed into a PID controller that generates a velocity command V(i). 3. Calculating velocity error between V(i) and current velocity from visual odometry algorithm. 4. Velocity error fed into another PID controller to get an appropriate roll, pitch, yaw and throttle outputs. Reference: [1] Strydom, Reuben, Saul Thurrowgood, and Mandyam V. Srinivasan. "Visual odometry: autonomous uav navigation using optic flow and stereo." Proceedings of Australasian Conference on Robotics and Automation. 2014. [Intel AERO] Connecting Lidar Lite Range Finder: https://github.com/intel-aero/aero-optical-flow https://docs.px4.io/en/flight_controller/intel_aero.html ROS: 05-Autonomous-drone-programming-with-ROS http://wiki.ros.org/rtabmap_ros  ( Section: Stereo Outd

Intel AERO manual / automatic flying

前置作業: Flashing intel AERO board and calibration (參:  Initial setup , Flight mode setting ) *先flash Aero-xx-xx.iso,再安裝Ubuntu 16.04。(跟雙系統的安裝方法一樣,安裝完後需從Kernel 4.4.76 登入) Video display test (參: Video streaming ) *Press shift & ESC for entrying the GRUB screen ( https://askubuntu.com/questions/16042/how-to-get-to-the-grub-menu-at-boot-time ) * Flash the latest BIOS:  Download bios.rpm file  bios download link rpm2cpio aero-bios-01.00.16-r1.corei7_64.rpm | cpio -idmv   sudo mv BIOSUPDATE.fv /boot sudo aero-bios-update sudo reboot 手動 (參:  First flight ): 連接好所有配件 開啟Intel AERO電源,開啟遙控器 等待開機完畢,開車 (左邊搖桿往右下) 加油門,起飛 (Position Hold Mode) 關車 (左邊搖桿往左下),關掉Intel AERO電源,最後關掉遙控器 *  The transmitter should always be powered on before the receiver (which is normally powered together with the vehicle). If powered on after the vehicle it won’t connect. To overcome this you can simply disconnect the cable from the receiver, or go through the binding process , which involves pow

CMake & make

Keys: CMakeList.txt檔負責分配source code彼此間的關係。 Include directory Files path (source, output ) Set library and executable (connection) Install setting (在 linux 底下預設的 CMAKE_INSTALL_PREFIX = /usr/local) 執行指令cmake後會產生Makefile檔(組態檔),再輸入make指令compile後,若compile無誤,make install指令將自動安裝CMakeList.txt設定好的東西(install rules)。 Makefile example: # General parameters CC  := g++ EXE := main # Advanced parameters INC_DIR := -I../include -I/usr/include -I/usr/include/m3api -I/usr/include/eigen3/Eigen -I/usr/include/opencv -I/usr/include/opencv2 -I/usr/local/cuda-10.0/include `pkg-config --cflags opencv` CPPSOURCES += $(wildcard *.cpp)  #Get all .c files OBJECTS := $(CPPSOURCES:.cpp=.o) #Replace all .cpp files as .o files  CFLAGS = -c -Wall -g $(INC_DIR) LIBS = -L/usr/lib -lm3api -lvisionworks -lvisionworks_sfm -lvisionworks_tracking `pkg-config --libs opencv` DEBUG_DIR := ../Debug EXE_DIR := ../Debug/ all: $(EXE) mkdir -p $(DEBUG_DIR) cp $(EXE) $(

RANSAC

圖片
Concept: 隨機選擇一組資料的子集,計算這個子集的轉換式,找出符合此轉換式的所有資料,稱之為inliers,反覆隨機選取子集直到inliers數量多到足以代表整組資料時。 RANSAC Line fitting example: RANSAC computer vision applications: RANSAC for feature matching RANSAC for homography Reference: 交大開放式課程: 機器人視覺 (單元9 Sensor Data, RANSAC, FORVIS )