Menerbangkan Ar Drone 2.0 menggunakan Keyboard PC (khusus Linux dengan library ROS)



Terlihat menyenangkan ketika menerbangkan Ar Drone 2.0 menggunakan kontroller via smartphone. Namun, ada cara lain untuk dapat mengontrol Ar Drone yaitu dengan menggunakan keyboard pada laptop atau PC. Namun yang akan saya bahas di sini yaitu dengan penggunaan sistem operasi Linux distro Ubuntu. Tentu saja dengan menggunakan library ROS. Maka PC saudara perlu diinstall ROS terlebih dahulu. Panduannya ada di tulisan saya sebelumnya.

Oke kita mulai saja....
Pertama buka blog acuan kita di catkin dan robohub
Kemudian buka page catkin tadi, sambil jalankan terminal...
Lalu masukkan command seperti gambar di bawah ini satu-persatu...

 Setelah itu, maka kita beralih ke page robohub tadi, alihkan halaman ke gambar di bawah ini pada page robohub.


Kemudian ketikkan command di atas satu persatu...


Selanjutnya kita install daemontools untuk driver Ar Drone 2.0 dengan mengetik perintah pada terminal:

sudo apt-get install daemontools libudev-dev libiw-dev

lalu buka folde src dalam catkin_ws dengan mengetik cd src/ pada terminal. Kemudian kita masukkan library ardrone_autonomy dan ardrone_tutorials pada folder catkin_ws/src/ dengan memasukkan perintah pada terminal satu-persatu.
git clone https://github.com/AutonomyLab/ardrone_autonomy.git 
git clone https://github.com/mikehamer/ardrone_tutorials.git
 Tunggu hingga download selesai satu persatu.....
Selanjutnya pindah ke folder catkin_ws/ dengan mengetik cd ../ pada terminal. Lalu kita compile source tadi dengan mengetik catkin_make. Lalu tunggu hingga proses download selesai.

setelah sudah, mari kita setup dengan mengetik pada terminal

source devel/setup.bash

Lalu kita mulai penerbangan Ar-Drone nya dengan mengetik.

roslaunch ardrone_tutorials keyboard_controller.launch
.
.
.
.
Selamatttt!!!! Ardrone telah terbang

 

Related Posts:

Install ROS pada Ubuntu 14.04 untuk Pemula



Kali ini temanya tentang ROS.
Apa itu ROS? ROS adalah kependekan dari Robot Operating System.
Mungkin kalo saya jelaskan disini akan "makan waktu", maka silahkan membaca tulisan teman saya di:

ROS, Satu Langkah Menuju Pemrograman Robot yang Lebih Mudah

Sekarang kita langsung menuju praktiknya. ROS akan diinstall pada platform Ubuntu 14.04 Trusty Tahr. Jadi siapkan Ubuntu sodara-sodara... Sebenernya bisa juga kok pake Ubuntu versi sebelumnya. Sama saja.. Cuma kebetulan saja saya pake yang 14.04.

Pertama-tama, atur repository ubuntu nya dulu menyesuaikan lokasi anda sekalian. Misal saya, kebetulan saya menggunakan wifi UGM-Hotspot, maka lebih enak pake repository milik ugm biar lebih wussssss downloadnya hehehe.. Untuk yang mau pake repository ugm, silahkan buka link berikut: Repo UGM


Itu kalian pilih dulu versi ubuntunya kemudian klik Buat isi source.list, kemudian 3 baris tersebut  di-copy ke folder etc/apt/source.list.

Itu kalo udah jangan lupa untuk mengupdatenya dengan membuka terminal, kemudian ketik sudo apt-get update. Selesai?? sekarang masuk ke topik utamanya yaitu mengistall ROS. Silahkan buka web berikut sebagai acuan Indigo ROS

Selanjutnya,  silahkan ketik pada terminal:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'

 kemudian update kembali dengan ketik pada terminal:

sudo apt-get update

 Setelah selesai, maka ketik lagi pada terminal

sudo apt-get install ros-indigo-desktop-full

Nanti tinggal yes yes dan yes sesuai perintah terminal. Nah mengapa pertama-tama saya recommendasikan untuk mengubah repository?? Jawabannya adalah ketika mendownload ROS itu besarnya kalau tidak salah 350MB atau berapa saya lupa, yang jelas besar filenya. Maka kalau ga ganti repository bakalan lama downloadnya. Kecuali anda punya koneksi dewa hehehe

Kalau tidak error, berarti telah berhasil...
Selamat mencoba! Semoga tidak error ya...

Related Posts:

Aktif kembali

Halooo... Apa kabarnya?
Maaf nih baru mulai nge-blog lagi, soalnya kemarin ada urusan KKN + Lomba robot, jadinya baru punya free time sekarang sekarang ini hehe.

Oke, blog ini diaktifkan kembali ya.
Wait for my another articles. I'm sure it'll useful for you ;)

Related Posts:

OpenCV Ubuntu C++ - Menampilkan gambar

Astagaaa, yang dasar-dasar malah belum di post -____- Sori ya kalo ada yang masih bingung cara nampilin gambar di opencv. Soalnya dari kemarin-kemarin kan kita belajar olah video hehehe Langsung aja saya kasih hasilnya:





Berikut codingan nya:


//BISMILLAH - Dzikri Purnama - Free to Copy&Paste

//Displaying Image
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
  Mat img = imread("/home/alfarobi/OpenCv/play/exe/tennis.jpg", CV_LOAD_IMAGE_UNCHANGED);

if (img.empty()){
cout << "Error : Image cannot be loaded..!!" << endl;
        return -1;
}

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);"
imshow("MyWindow", img);

waitKey(0);

     destroyWindow("MyWindow");

return 0;
}
Kalo udah langsung di compile and execute aja. Khusus untuk baris:
  Mat img = imread("/home/alfarobi/OpenCv/play/exe/tennis.jpg", CV_LOAD_IMAGE_UNCHANGED);
 Bagian yang saya bold merupakan letak direktori file gambar berada. Sudah dulu, saya harap mungkin agan-agan sekalian sudah mengerti :D kalo belum ngeh, tanya lewat comment saja.

Related Posts:

OpenCV Ubuntu C++ - Operasi morphology: erode dan dilate

Erode dan Dilate merupakan dua jenis fungsi yang sangat berguna dalam computer vision. Erode dan Dilate merupakan bagian dari operasi morphology. Salah satu kegunaan dari erode dan dilate adalah menghilangkan noise (titik-titik tidak perlu) di sebuah frame gambar / video ketika sedang melakukan proses penyeleksian warna. Biar lebih menarik, saya akan tampilkan perbedaan hasilnya terlebih dahulu:
Tanpa operasi morphology:

Dengan operasi Erode: 

Dengan operasi Dilate:

Sudah kelihatan kan bedanya? Dengan menggunakan operasi erode, maka titik-titik noise akan dihilangkan sesuai besarnya matrix yang digunakan pada operasi erode. Sedangkan jika menggunakan operasi dilate, maka titik-titik noise pada frame akan dibuat lebih besar sesuai besarnya matrix yang digunakan. Sekarang kita ke bagian programmingnya.

Related Posts:

Ganti repository ubuntu ke server lokal

Ngapain ganti-ganti repository? Logika nya gini, kalo misal anda update ubuntu anda (sudo apt-get update), maka sistem akan mengambil data lewat server ubuntu di Luar Negri. Kan kita tau sama tau, proses catch data yg servernya jauh kalo pake koneksi indonesia yang lambat kan prosesnya bakal lama. Nah fungsi nya ganti repository lokal adalah biar nanti catch datanya ke server Indonesia. Alhasil nanti kalo update ubuntu lagi ga lama-lama banget lah.

Disini, saya menyarankan make repository lokal dari UI aja ya. Kenapa? karena yaa saya makenya itu hahaha Oke saya jelasin caranya:
1. Buka File Manager. Buka folder /etc/apt/.
2. Bikin Backup-an source.list seperti contoh: (file backup bernama source.list.save)

3. Kalo udah, buka file source.list
4. Tambahkan beberapa baris repository di bagian paling bawah file tadi.

Repository lokal:
deb http://kambing.ui.ac.id/ubuntu/ precise-proposed main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ precise-security main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ precise-updates main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ precise main restricted universe multiverse
contoh:

5. Kalo udah, di save.
6. Kemudian update ulang ubuntu nya dengan ketik di terminal:
sudo apt-get update
7. Bergembiralah, karena repository anda sudah pindah menjadi repository lokal :)

Related Posts:

OpenCV Ubuntu C++ - Membuat filter pada frame

Halo selamat siang fellas. hahaha Sesuai janji saya pada post sebelumnya, saya mau share program mengenai filter pada frame. Gunanya apa ya? Salah satunya bisa untuk mengurangi noise. Kok bisa?? ya coba aja :D Ini saya buatin program filter blur, tepatnya make jenis gaussian blur. Berikut hasilnya:

Sebelum adanya filter:
 
Setelah adanya filter:

Mulai ngerti kan maksudnya?? hehehe sebenernya ada banyak jenis filter, ada median blur, billateral filter, dan semacamnya. Itu terserah anda mau pakai yang mana (sesuai kebutuhan saja). Berikut codenya:

//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//Filter Gaussian blur

//#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    int h_min = 4, h_max = 78, s_min = 50, s_max = 255, v_min = 20, v_max = 255; //oranye
    //int h_min = 95, h_max = 100, s_min = 130, s_max = 255, v_min = 150, v_max = 255; //biru
    //int h_min = 4, h_max = 24, s_min = 38, s_max = 255, v_min = 150, v_max = 255; //kuning

    VideoCapture cap(0);
    if(!cap.isOpened())
        return -1;

    cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);

    Mat frame, hsv;
    namedWindow("camera");
    namedWindow("hsv");



    while (true)
    {
        cap>>frame;

        GaussianBlur(frame, frame, Size(11,11),2,2);
        imshow("camera",frame);
        cvtColor(frame,hsv,CV_BGR2HSV);
        inRange(hsv,Scalar(h_min,s_min,v_min),Scalar(h_max,s_max,v_max),hsv);

        createTrackbar("H_MIN: ","hsv",&h_min,255);
        createTrackbar("H_MAX: ","hsv",&h_max,255);
        createTrackbar("S_MIN: ","hsv",&s_min,255);
        createTrackbar("S_MAX: ","hsv",&s_max,255);
        createTrackbar("V_MIN: ","hsv",&v_min,255);
        createTrackbar("V_MAX: ","hsv",&v_max,255);

        imshow("hsv",hsv);


        if(waitKey(20) != -1)
            break;
    }

    return 0;
}
Langsung compile dan execute saja. Btw, untuk filter lumayan mudah.

Related Posts:

OpenCV Ubuntu C++ - Membuat trackbar pada frame HSV

Akhirnyaa..... Daritadi bikin program ini error terus, 2 jam baru nemu salahnya dimana. Oke nanti saya kasih tau salah saya dimana hehehe Kesempatan ini saya mau bahas pembuatan trackbar. Fungsinya? ya untuk menseleksi warna yang mau dipilih di frame HSV. Jika belum tau HSV itu apa, silahkan buka post sebelumnya. Penyeleksian warna cocok buat tracking warna nantinya. Nih nanti hasilnya seperti ini:


Itu saya tes untuk seleksi warna oranye. Tapi hasilnya masih tidak terlalu bagus, oleh karena itu nanti kita belajar filter, oke? Sekarang saya kasih code untuk trackbarnya dulu:
//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//Trackbar HSV

//#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    int h_min = 4, h_max = 78, s_min = 50, s_max = 255, v_min = 20, v_max = 255; //oranye
    //int h_min = 95, h_max = 100, s_min = 130, s_max = 255, v_min = 150, v_max = 255; //biru
    //int h_min = 4, h_max = 24, s_min = 38, s_max = 255, v_min = 150, v_max = 255; //kuning

    VideoCapture cap(0);
    if(!cap.isOpened())
        return -1;

    cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);

    Mat frame, hsv;
    namedWindow("camera");
    namedWindow("hsv");

    while (true)
    {
        cap>>frame;

       
        imshow("camera",frame);
        cvtColor(frame,hsv,CV_BGR2HSV);
        inRange(hsv,Scalar(h_min,s_min,v_min),Scalar(h_max,s_max,v_max),hsv);

        createTrackbar("H_MIN: ","hsv",&h_min,255);
        createTrackbar("H_MAX: ","hsv",&h_max,255);
        createTrackbar("S_MIN: ","hsv",&s_min,255);
        createTrackbar("S_MAX: ","hsv",&s_max,255);
        createTrackbar("V_MIN: ","hsv",&v_min,255);
        createTrackbar("V_MAX: ","hsv",&v_max,255);

        imshow("hsv",hsv);
       

        if(waitKey(20) != -1)
            break;
    }

    return 0;
}
Setelah copas, langsung di compile dan execute aja :D Nah, sekarang kita bahas programnya.

Related Posts:

OpenCV Ubuntu C++ - Seleksi warna RGB ke HSV

Baru bangun tidur nih hehehe mending nulis aja ah... Jadi begini, kemarin kan udah bisa convert RGB ke GREY (abu2) sekarang kita coba convert RGB ke HSV (Hue Saturation Value). Emang biar apa??? Nanti tujuan nya adalah untuk menyeleksi warna. Jadi warna yang ditampilkan di frame ya sesuai yang diinginkan. Kaya ini hasilnya:

Langsung aja ya :) Copas aja code nya:
//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//BGR to HSV

//#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;
int h_min = 4, h_max = 78, s_min = 50, s_max = 255, v_min = 20, v_max = 255; //oranye
//int h_min = 95, h_max = 100, s_min = 130, s_max = 255, v_min = 150, v_max = 255; //biru
//int h_min = 4, h_max = 24, s_min = 38, s_max = 255, v_min = 150, v_max = 255; //kuning

int main()
{
    VideoCapture cap(0);
    if(!cap.isOpened())
        return -1;

    cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);

    Mat frame, hsv, grey;
    namedWindow("camera");
    namedWindow("hsv");


    while (true)
    {
        cap>>frame;
        imshow("camera",frame);
        cvtColor(frame,hsv,CV_BGR2HSV);           inRange(hsv,Scalar(h_min,s_min,v_min),Scalar(h_max,s_max,v_max),hsv);
        imshow("hsv",hsv);

        if(waitKey(20) != -1)
            break;
    }

    return 0;
}
Kalo udah bisa di compile dan execute buat liat hasilnya :D
Sekarang mari kita bahas isi programnya:

Related Posts:

OpenCV Ubuntu C++ - Mengubah Video RGB ke dalam bentuk GREY

Tengah malem susah tidur nih,, gara2 ketiduran abis maghrib. Daripada ga ada kerjaan, ini mau post codingan baru. Simple aja, mengubah hasil video yang masih dalam bentuk RGB ke bentuk GREY (abu-abu). Fungsinya? cuma untuk mengubah beribu2 jenis warna menjadi antara putih dan hitam. Jadi ada abu-abu, abu-abu rada gelap, abu-abu rada putih, dsb. Langsung aja yaa.. Coba copas code ini ke Qt atau apa aja (sebagai IDE) lalu save dengan ekstensi .cpp . Nanti abis itu di compile langsung aja lwt terminal, make command "sudo make clean all", jangan lupa Makefile nya harus disesuaikan dengan file .cpp nya. Nanti hasilnya jadi seperti ini:


Ini code nya:

//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//BGR to GREY

//#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap(0);
    if(!cap.isOpened())
        return -1;

    cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);       

    Mat frame, grey;

    namedWindow("camera");
    namedWindow("grey");

    while (true)
    {
        cap>>frame;

        cvtColor(frame,grey,CV_BGR2GRAY);
        
        imshow("camera",frame);
        imshow("grey",grey);
       
        if(waitKey(20) != -1)
            break;
    }

    return 0;
}

Codenya lumayan gampang kan? Mari kita bahas isi kodenya:

Related Posts:

OpenCv Ubuntu C++ - Menampilkan video melalui webcam

Selamat siang, post ini akan membahas tentang menampilkan jendela webcam menggunakan library opencv. Sebelumnya, anda harus menginstall OpenCV, caranya di sini. Seperti ini hasilnya:


Langsung saja ke kode nya ya :)

//BISMILLAH - Dzikri Purnama - Free to Copy&Paste
//Open Camera

//#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap(0);
    if(!cap.isOpened())
        return -1;

    cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);       

    Mat frame, thresh, hough, gray;

    namedWindow("camera");

    while (true)
    {
        cap>>frame;
        imshow("camera",frame);

        if(waitKey(20) != -1)
            break;
    }

    return 0;
}

Setelah itu save, kemudian di compile menggunakan command pada terminal, yaitu: sudo make clean all kemudian jalankan programnya.

Penjelasannya codingan di atas adalah sebagai berikut:

Related Posts:

Tutorial install OpenCV Ubuntu

Jadi, hal yang harus dilakukan terlebih dahulu untuk belajar OpenCV, yaitu:
- Install library OpenCV
- Install Qt Creator (sebagai IDE)

1. Install library OpenCV bisa dilakukan melalui Ubuntu Software Center.
Silahkan search "libopencv" pada kotak search di Ubuntu Software Center. Kemudian silahkan anda install "Development files for opencv - libopencv-dev"



2. Kemudian install QtCreator, bisa diinstall melalui Ubuntu Software Center juga. Silahkan search "qtcreator" pada kotak search di Ubuntu Software Center. Kemudian install.

Jika keduanya sudah, maka kita dapat memrogram Computer Vision menggunakan library OpenCV dengan memakai IDE Qt Creator. Sebenarnya IDE lain selai Qt boleh digunakan, tp karena saya memakai Qt, maka ya saya merekomendasikannya. Hehehe

Hal selanjutnya adalah menyiapkan file "makefile". File tersebut digunakan untuk mengeksekusi file .cpp nantinya lewat terminal.

Silahkan buat file baru dengan nama "Makefile" (tanpa ekstensi dan kutip).
Kemudian copas code dibawah ini:
 ###############################################################
# Makefile OpenCV ###############################################################

TARGET = play

CXX         = g++
CFLAGS        = -Wall -O2
CLIBS         = -lopencv_core -lopencv_highgui -lopencv_imgproc

all: $(TARGET)

clean:
    rm -f $(TARGET) core *~ *.so *.lo

$(TARGET): play.cpp
    $(CXX) $(CFLAGS) play.cpp $(CLIBS) -o $(TARGET)

Kemudian simpan. Mari kita bahas isi dari kode Makefile tersebut:

TARGET = play --> //nantinya digunakan untuk eksekusi program (menjalankan program), jadi ketika ingin menjalankan program, maka ketik command pada terminal "sudo ./play" (tanpa kutip). Namun sebelumnya perlu di build+compile terlebih dahulu file .cpp nya.

 $(TARGET): play.cpp
 $(CXX) $(CFLAGS) play.cpp $(CLIBS) -o $(TARGET) --> //play.cpp merupakan file yang akan di build+compile, nama file play.cpp dapat diganti sesuai nama file program yang anda buat. Untuk mengcompile program yang anda buat, anda perlu mengketik pada terminal, "sudo make clean all" (tanpa kutip). Jika berhasil, maka program dapat anda jalankan dengan command "sudo ./play" (tanpa kutip & sesuai nama TARGET yang anda inginkan)
Ohya, jangan lupa. File Makefile dengan file program harus dalam 1 folder.
Contoh:


Sudah selesai... Tutorial berikutnya adalah memprogram OpenCV.
Terima kasih telah membaca. Kalo kurang mengerti, bisa tanya lewat comment.

Related Posts:

Peresmian blog baru

Skip by skip..

Kenalkan, saya Dzikri Purnama. Kuliah di UGM, tepatnya sih di Program studi Elektronika dan Instrumentasi atau sebutan kerennya ELINS. Ya, saya angkatan tua. Eh, maksud saya angkatan 2011. Doain ya, moga moga november 2015 udah wisuda hehehe

Niatnya bikin blog ini untuk membuat catatan tutorial program. Jadi, ketika mau bikin program lagi, bisa liat blog ini. Blog ini mungkin sederhana, karena emang niatnya dibuat jadi tutorial. Jadi, silahkan membaca, kalau pusing atau tidak nyangkut sama yang saya bahas, yaa mau gimana lagi hehehe tulis di komentar saja, apa yg tidak dimengertinya, atau bisa di email ke dzikriugm@gmail.com

Selamat membaca!
Terima kasih.

Related Posts: