Banyak revisi !!!

release
a2nr 2019-11-19 10:21:38 +07:00
parent 11f8c21247
commit 9132195dae
15 changed files with 214 additions and 5389 deletions

View File

@ -80,7 +80,21 @@ Dengan harapan penerapan real model tersebut dapat bermanfaat terhadap masyaraka
\section{Identifikasi dan Perumusan Masalah}
%-----------------------------------------------------------------------------%
Tiga kategori metode formasi yaitu berdasarkan posisi, perpindahan, dan jarak hampir diperlukan analisa terhadap model yang nyata.
Pada penelitian oleh \kutip{Rozenheck2015}, yang memaparkan permasalahan kendali formasi berdasarkan jarak menggunakan kendali \textit{Proportional-Integral}.
Pada penelitian oleh \kutip{Rozenheck2015}, yang memaparkan permasalahan kendali formasi berdasarkan jarak menggunakan kendali \textit{Proportional-Integral}(PI).
Peneliti memberikan kecepatan refrensi secara konstan terhadap salah satu dari agent.
Lalu agent lainya memberikan respon untuk tetap menjaga formasi yang diinginkan.
Tidak dejalaskan alasan oleh peneliti kenapa salah satu agent diberi kecepatan refrensi,
akan tetapi metode tersebut hampir sama dengan strategi \textit{leader-follower}.
\textit{Leader-follower} mengharuskan agent tetangga untuk beradaptasi terhadap perubahan tetangga lainnya secara spesifik.
Akan tetapi ada perbedaan antara \textit{leader-follower} dengan metode berdasarkan jarak,
yaitu terhadap metode pertukaran informasinya.
Pada \textit{Leader-follower}, agent yang berperan sebagai \textit{leader} tidak memberikan informasi terhadap \textit{follower}-nya. Tugas \textit{follower} adalah untuk beradaptasi terhadap pergerakan \textit{leader}, sedangkan \textit{leader} bertugas untuk bermanuver sesuai jalur yang diinginkan.
Sedangkan pada metode berdasarkan jarak, terdapat dua jenis, \textit{direct} dan \textit{undirect}. Strategi \textit{leader-follower} lebih sama dengan jenis \textit{direct}.
Kedua jenis ini berhubungan dengan configurasi jaringan.
Jenis \textit{direct} adalah jaringan satu arah,
dimana alur informasi diberikan secara satu arah dari agent ke tetangga atau sebaliknya.
Sedangkan jenis \textit{undirect} adalah jaringan dua arah,dimana setiap agent dengan tetangganya
saling bertukar informasi.
Metode tersebut menghasilkan formasi pada multi agent tetap terjaga ketika salah satu agent diberikan kecepatan secara konstan dan memberikan respon yang baik ketika pengaturan konstanta PI dengan tepat.
Tetapi model yang digunakan masih menggunakan model orde satu, dengan kata lain metode tersebut dimungkinkan untuk diterapkan model yang lebih komplek.
Penelitian oleh \kutip{CORREIA20127}, memaparkan formula model orde dua \textit{holonomic mobile robot} secara detail dan komplek.
@ -98,7 +112,7 @@ Dalam penelitian ini akan digunakan batasan-batasan permasalahan sebagai berikut
Berikut adalah beberapa point permasalahan yang ditujukan pada penelitian ini, yaitu:
\begin{enumerate}
\item Bagaimanakan strategi untuk kendali formasi apabila variable yang dikendalikan adalah jarak antar robot?.
\item Bagaimanakah kestabilan kendali formasi berdasarkan jarak apabila model yang digunakan adalah holonomic mobile robot ?.
\item Bagaimanakah pergerakan kendali formasi berdasarkan jarak apabila model yang digunakan adalah holonomic mobile robot ?.
\end{enumerate}
%-----------------------------------------------------------------------------%
@ -108,7 +122,7 @@ Berikut adalah beberapa point permasalahan yang ditujukan pada penelitian ini, y
Tujuan dari penelitian ini adalah
\begin{enumerate}
\item Mengetahui strategi untuk kendali formasi apabila variable yang dikendalikan adalah jarak antar robot.
\item Mengetahui kestabilan kendali formasi berdasarkan jarak apabila model yang digunakan adalah holonomic mobile robot.
\item Mengetahui pergerakan kendali formasi berdasarkan jarak apabila model yang digunakan adalah holonomic mobile robot.
\end{enumerate}
Manfaat dari penelitian ini adalah
@ -116,35 +130,3 @@ Manfaat dari penelitian ini adalah
\item Memberikan refrensi untuk permasalahan kendali multi-robot, kususnya pada permasalhaan kendali formasi, terhadap model yang lebih nyata.
\item Membuka peluang penelitian dibidang kendali mengenai kendali formasi pada kendali multi-robot dilingkungan Fakultas Teknik Elektro, Universitas Brawijaya.
\end{enumerate}
%% %-----------------------------------------------------------------------------%
%% \section{Posisi Penelitian}
%% %-----------------------------------------------------------------------------%
%% \todo{Posisi penelitian Anda jika dilihat secara bersamaan dengan
%% peneliti-peneliti lainnya. Akan lebih baik lagi jika ikut menyertakan
%% diagram yang menjelaskan hubungan dan keterkaitan antar
%% penelitian-penelitian sebelumnya}
%% %-----------------------------------------------------------------------------%
%% \section{Metodologi Penelitian}
%% %-----------------------------------------------------------------------------%
%% \todo{Tuliskan metodologi penelitian yang digunakan.}
%% %-----------------------------------------------------------------------------%
%% \section{Sistematika Penulisan}
%% %-----------------------------------------------------------------------------%
%% Sistematika penulisan laporan adalah sebagai berikut:
%% \begin{itemize}
%% \item Bab 1 \babSatu \\
%% \item Bab 2 \babDua \\
%% \item Bab 3 \babTiga \\
%% \item Bab 4 \babEmpat \\
%% \item Bab 5 \babLima \\
%% \item Bab 6 \babEnam \\
%% \item Bab 7 \kesimpulan \\
%% \end{itemize}
%% \todo{Tambahkan penjelasan singkat mengenai isi masing-masing bab.}

View File

@ -1,5 +1,8 @@
\chapter{\babDua}
\label{bab:dua}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Pemodelan Robot}
Robot menggunakan 3 aktuator penggerak dengan roda \textit{omniwheel}, sehingga robot dapat bergerak kesegala arah.
Pemasangan roda \textit{omniwheel} memiliki sudut $120^\circ$ terhadap roda lainnya.
@ -122,8 +125,8 @@ Dimana $l = l_{1 \dots 3}, r = r_{1 \dots 3} R_a = R_{a1 \dots 3}$ and $K_t = K_
sistem robot
\begin{align*}
A_r & = \begin{bmatrix}
0 & 0 & 0 & \cos(\theta) & -\sin(\theta) & 0 \\
0 & 0 & 0 & \sin(\theta) & \cos(\theta) & 0 \\
0 & 0 & 0 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & 0 & -\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{x}_r}}{M} & 0 & 0 \\
0 & 0 & 0 & 0 & -\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{y}_r}}{M} & 0 \\
@ -151,6 +154,9 @@ sistem robot
1 & 0 & 0 & 0 & 0 & 0 & \\
0 & 1 & 0 & 0 & 0 & 0 & \\
0 & 0 & 1 & 0 & 0 & 0 & \\
0 & 0 & 0 & 1 & 0 & 0 & \\
0 & 0 & 0 & 0 & 1 & 0 & \\
0 & 0 & 0 & 0 & 0 & 1 & \\
\end{bmatrix}
\end{align*}
@ -162,6 +168,7 @@ Dari subbab ini akan dirangkum dari paper tersebut, yaitu mulai dari pendahuluan
\subsection{Pendahuluan Formasi Multi Robot}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Teori Graf}
Suatu graf $\graf$, dinotasikan sebagai $\graf=(\simpul, \sisi)$, merupakan pasangan $\simpul$ dan $\sisi$,
@ -180,98 +187,102 @@ baris matrik mengindikasikan simpulnya dan kolomnya sebagai sisinya.
Matriks \textit{laplacian} didefinisikan dengan $L(\simpul)=EE^T$
\subsubsection{Teori Kekakuan Graf}
Koordinat multi dimensi adalah konfigurasi matrik vector yang terdisi dari beberapa koordinat node,
Koordinat multi dimensi adalah konfigurasi matrik vector yang terdisi dari beberapa koordinat node,
$x = \begin{bmatrix} x_1^T & \dots & x_n^T \end{bmatrix}^T \mathbb{R}^{2n}$, dimana
$x_i \in \mathbb{R}^2$ dan $x_i \neq x_j$ untuk semua $i \neq j$.
Difinisi sebuah kerangka (\textit{framework}), dinotasikan dengan $\graf(x)$,
adalah graf tak berarah $\graf$ dengan konfigurasi $x$, dimana simpul $i$ pada graf dipetakan
adalah graf tak berarah $\graf$ dengan konfigurasi $x$, dimana simpul $i$ pada graf dipetakan
kedalam koordinat $x_i$. Misalkan $(i,j)\in \sisi$ sama dengan sisi ke $k$ dari graf langsung
dan mendefinisikan vektor sisi dari kerangka, atau dapat disebut sebagai vektor posisi relatif,
dengan $ e_k \triangleq x_j - x_i$. Untuk semua vektor sisi dapat dinotasikan dengan
dengan $ e_k \triangleq x_j - x_i$. Untuk semua vektor sisi dapat dinotasikan dengan
$e=\begin{bmatrix}e_1^t & \dots & e_m^T\end{bmatrix} \in \mathbb{R}^{2m}$.
Apabila kerangka $\simpul(x)$ dengan vektor sisi $\{e_k\}_{k=1}^m$, maka didefinisisi fungsi sisi (\textit{edge function}), $F:\mathbb{R}^{2n} \times \simpul \rightarrow \mathbb{R}^m$
dengan
dengan
\begin{align}
F(x,\sisi) &\triangleq
F(x,\sisi) & \triangleq
\begin{bmatrix}
||e_1||^2 & \dots & ||e_m||^2
\end{bmatrix}^T
\end{align}
Matrik kekakuan $R(x)$ yang berhubungan erat dengan kerangka $\graf(x)$ dapat didefinisikan
Matrik kekakuan $R(x)$ yang berhubungan erat dengan kerangka $\graf(x)$ dapat didefinisikan
dengan \textit{Jacobian} dari fungsi sisi (\kutip{Rozenheck2015}),
\begin{align}
R(x) &\triangleq \frac{\partial F(x,\graf)}{\partial x} \in \mathbb{R}^{m\times 2n} \nonumber\\
&\triangleq diag(e_i^T)(E^T \otimes I_2)
R(x) & \triangleq \frac{\partial F(x,\graf)}{\partial x} \in \mathbb{R}^{m\times 2n} \nonumber \\
& \triangleq diag(e_i^T)(E^T \otimes I_2)
\end{align}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Kendali Formasi Multi-Robot}
\label{subbab:KendaliFormasi}
Pembahasan kendali dari formasi multi robot menggunakan gradient control.
Apabila $n(n\geq 2)$ dimodelkan sebagai titik yang memiliki masa jenis bergerak diatas
dimensi 2(\textit{Euclidean Space}), maka pergerakan dimodelkan dengan
dimensi 2(\textit{Euclidean Space}), maka pergerakan dimodelkan dengan
\begin{align}
\dot{x}_i(t) = u_i(t), \quad i = 1, \dots, n. \label{eq:modelorde1}
\end{align}
dimana $x_i(t) \in \mathbb{R}^2$ adalah posisi dari robot-$i$ dan $u_i(t)\in \mathbb{R}^2$
adalah input dari kendali. Dinotasikan $d \in \mathbb{R}^m$ adalah vector jarak dimana isi
dari matrik tersebut adalah $d_k^2$ yang mempresentasikan jarak yang dinginkan antara
setiap robot $i$ dan $j$ untuk sisi $(i,j)\in \sisi$.
dimana $x_i(t) \in \mathbb{R}^2$ adalah posisi dari robot-$i$ dan $u_i(t)\in \mathbb{R}^2$
adalah input dari kendali. Dinotasikan $d \in \mathbb{R}^m$ adalah vector jarak dimana isi
dari matrik tersebut adalah $d_k^2$ yang mempresentasikan jarak yang dinginkan antara
setiap robot $i$ dan $j$ untuk sisi $(i,j)\in \sisi$.
Lalu didefinisi persamaan potensial yang memiliki hubungan antara jarak robot yang diinginkan
dengan jarak yang sekarang
\begin{align}
\Phi(e) &= \frac{1}{2} \sum_{k=1}^{m} \big( ||e_k||^2 - d_k^2 \big)^2.
\Phi(e) & = \frac{1}{2} \sum_{k=1}^{m} \big( ||e_k||^2 - d_k^2 \big)^2.
\end{align}
Pengamatan dilakukan agar $\Phi(e) =0$ jika dan hanya jika $||e_k||^2 = d_k^2,$ $\forall k = 1, \dots, m$.
Pengamatan dilakukan agar $\Phi(e) =0$ jika dan hanya jika $||e_k||^2 = d_k^2,$ $\forall k = 1, \dots, m$.
Kendali dari setiap robot menggunakan gradien negatif dari fungsi potensial
\begin{align}
u_i(t) &= - \Big( \frac{\partial \Phi(e)}{\partial x_i} \Big)= -\sum_{j \sim i} \Big( ||e_k||^2 - d_k^2 \Big).e_k.
u_i(t) & = - \Big( \frac{\partial \Phi(e)}{\partial x_i} \Big)= -\sum_{j \sim i} \Big( ||e_k||^2 - d_k^2 \Big).e_k.
\end{align}
Dengan itu, dapat disubtitusi kedalam persamaan dinamika pada persamaan~\eqref{eq:modelorde1}
\begin{align}
\dot{x}(t) = -R(x)^TR(x)x(t)+ R(x)^Td \label{eq:dynmState}
\end{align}
Penambahan refresni kecepatan pada salah satu robot dapat menjadikan formasi bermanuver.
Skema kendali secara general dapat didefinisi dengan
Penambahan refresni kecepatan pada salah satu robot dapat menjadikan formasi bermanuver.
Skema kendali secara general dapat didefinisi dengan
\begin{align}
\dot{x}(t) &= u(t) + B.v_{ref} \\
u(t) &= -R(x)^TC\Big(R(x)x(t)- d\Big) \label{eq:kontrolinput}
\dot{x}(t) & = u(t) + B.v_{ref} \\
u(t) & = -R(x)^TC\Big(R(x)x(t)- d\Big) \label{eq:kontrolinput}
\end{align}
dimana $B \in \mathbb{R}^{2n \times 2}$ digunakan untuk indikasi robot ke $i$ sebagai leader atau penerima kecepatan refrensinya
, $v_{ref} \in \mathbb{R}^2$ sebagai kecepatan refrensi,
, $v_{ref} \in \mathbb{R}^2$ sebagai kecepatan refrensi,
dan $C$ adalah konstanta pengendali yang akan digantikan dengan algoritma kendali.
Dengan menerapkan kendali Proportional-Integral, konstanta $C$ pada persamaan~\eqref{eq:kontrolinput}
dapat diubah dengan
dapat diubah dengan
\begin{align}
u(t) &= u_{k_p}(t) + u_{k_i}(t) \\
u_{k_p}(t) &= -R(x)^Tk_p\Big(R(x)x(t)- d\Big)\\
u_{k_i}(t) &= -R(x)^Tk_i\int_0^T\Big(R(x)x(\tau)- d\Big)d\tau.
u(t) & = u_{k_p}(t) + u_{k_i}(t) \\
u_{k_p}(t) & = -R(x)^Tk_p\Big(R(x)x(t)- d\Big) \\
u_{k_i}(t) & = -R(x)^Tk_i\int_0^T\Big(R(x)x(\tau)- d\Big)d\tau.
\end{align}
Lalu pada bagian integrator( $k_i$ ), menghasilkan \textit{state} baru
\begin{align}
\dot{\xi}(t) &= k_i\Big(R(x)x(t)- d\Big).
\dot{\xi}(t) & = k_i\Big(R(x)x(t)- d\Big).
\end{align}
Dengan itu dapat digabungkan menjadi persamaan \textit{state-space} menggunakan persamaan~\eqref{eq:dynmState}
\begin{align}
\begin{bmatrix}
\dot{x}(t) \\ \dot{\xi}(t)
\dot{x}(t) \\ \dot{\xi}(t)
\end{bmatrix} =
\begin{bmatrix}
-k_pR(x)^TR(x) & -R(x)^T \\
k_iR(x) & 0
k_iR(x) & 0
\end{bmatrix}
\begin{bmatrix}
x(t) \\ \xi(t)
\end{bmatrix}+
\begin{bmatrix}
k_pR(x)^T \\ -k_iI
\end{bmatrix} d +
\end{bmatrix} d +
\begin{bmatrix}
B \\ 0
\end{bmatrix} v_{ref}
\label{eq:ss-formasi}
\end{align}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Solusi Persamaan Differensial Secara Numerik}
\label{bab:solusi_ODE}
@ -294,7 +305,7 @@ Didalam metode algoritma yang akan dibahas, $h$ juga dapat disebut sebagai \text
$t[k] = t[k-1] + h$ adalah bentuk diskretnya untuk $k = 0,1,2,3\dots$.
Apabila $y(t[k])$ adalah nilai inisial ketika waktu $t[k]$, maka menggunakan deret \textit{taylor} akan didapat
pendekapan solusi untuk $y(t[k+1])$. Menggunakan orde pertama deret \textit{taylor} saja maka didapat
pendekatan solusi untuk $y(t[k+1])$. Menggunakan orde pertama deret \textit{taylor} saja maka didapat
persamaan diskret solusi pendekatan $y(t[k])~\approx y[k]$
\begin{align}
y[k+1] = y[k]+f(y[k])h. \label{eq:desode1}

View File

@ -1,198 +1,44 @@
\chapter{\babTiga}
\section{Strategi Kendali Multi Robot}
Analisa akan dilakukan dalam beberapa bagian agar mudah dipahami dan diterapkan.
Analisa tersebut adalah mengenai kendali dari model dinamika robot dan kendali formasi,
dan mengenai metode percobaan akan dibahas secara matematis, simulasi, dan HIL.\
\subsection{Kendali Robot}
\todo{akan dijelaskan tentang metode yang digunakan untuk mengendalikan robot pada bagian robot saja}
\subsection{Kendali Formasi Multi Robot}
Pada sub bab~\ref{subbab:KendaliFormasi} dijabarkan bagaimana kendali formasi menggunakan
kendali-PI dan menghasilkan persamaan~\eqref{eq:ss-formasi}.
Persamaan tersebut adalah persamaan \textit{state-space} kendali formasi.
Apabila diperhatikan \textit{state} yang digunakan adalah koordinat relatif dari robot.
Akan tetapi dalam batasanya, robot hanya bisa mengetahui nilai jarak dari robot lain.
Dengan kata lain, yang dibutuhkan dalam metode kendali formasi adalah jarak dalam bentuk koordinat,
$x \in \mathbb{R}^2$. Sedangkan dalam kenyataanya yang diketahui adalah jarak, $r \in \mathbb{R}$.
Apabila hanya variable jarak tersebut sebagai acuan kendali, maka robot tidak mengerti kearah mana
harusnya robot itu bergerak untuk meminimalisasi error jaraknya.
\subsubsection{Strategi Penentuan Koordinat Tetangga}
Penentuan koordinat tentangga dapat ditemukan dengang mengubah koordinat polar menjadi koordinat kartesian.
Koordinat polar membutuhkan panjang, $d_a$, dan sudut, $\alpha$.
Variable $d_a$ dapat diperoleh dari sensor, akan tetapi sudu $\alpha$ tidak bisa dideteksi secara langsung oleh sensor.
Dengan menggunakan \textit{cosinus} pada segitiga dimungkinkan untuk mendapatkan sudut tersebut.
Krangka konsep penelitian akan dibahas mengenai potensi permasalahan yang timbul dalam topik
kendali formasi. Krangka penelitian ini berdasarkan literatur oleh \kutip{OH2015424},
dimana didalam literatur tersebut, peneliti menguraikan berbagai metode yang digunakan dalam
bidan kendali multi-robot, khususnya dalam kendali formasi.
\begin{figure}
\centering
\includegraphics[scale=.5]{BAB3/img/estimate_coordinate.png}
\caption{Strategi Penentuan Koordinat}
\label{fig:strategiPenentuanKoordinat}
\includegraphics[scale=.8]{BAB3/img/kerangka_pen.png}
\caption{Kerangka Penelitian}
\label{fig:krangka_pen}
\end{figure}
Dapat diperhatikan pada gambar~\ref{fig:strategiPenentuanKoordinat} untuk gambaran strateginya.
Robot $B \in \tetangga_A$, adalah tetangga dari robot $A$.
Pertama-tama, sebelum robot $A$ bergerak, disimpan terlebih dahulu nilai $d_a$,
atau dinotasikan dengan $d_a[k]$ sebagai jarak sebelum bergerak.
Lalu robot $A$ berjalan secara random kesegala arah dengan jarak $l_a$.
Disimpan kembali nilai jara $d_a$, atau dinotasikan dengan $d_a[k+1]$.
Setalah itu dapat ditentukan sudut $\alpha[k+1]$
\begin{align}
\alpha[k+1] = cos^{-1}\Bigg[ \frac{l_a^2 + d[k+1]^2 -d_a[k]^2}{2d_a[k+1]l_a} \Bigg].
\end{align}
Sebelum $\alpha[k+1]$ digunakan, jarak $d_a[k+1]$ dan $d_a[k]$ berpengaruh dalam penentuan koordinat.
Sehingga diperlukan sedikit algoritma
\begin{align}
\alpha_i=
\begin{cases}
\alpha[k+1] & ,d_a[k+1] > d_a[k] \\
180-\alpha[k+1] & ,d_a[k+1] < d_a[k]
\end{cases}.\label{eq:init_relatif_koordinat}
\end{align}
\section{Definisi Permasalahan Kendali Formasi}
Strategi pada gambar~\ref{fig:strategiPenentuanKoordinat} hanya berlaku apabila target ukur berhenti. Apabila dinotasikan koordinat $x_B^A$ adalah koordinat relatif robot $B$ terhadap $A$,
maka $\dot{x}_B^A$ adalah notasi kecepatan koordinat dari robot B.
Dengan menggunakan persamaan~\eqref{eq:kinematika_robot} untuk menyelesaikan koordinat dalam
keadaan robot $B$ bergerak, yaitu mengirimkan informasi kecepatan koordinatnya
ke robot $A$. Lalu robot $A$ dapat mengkalkulasi koordinat relatif dengan persamaan berikut
\begin{align}
\alpha[k+1] & = \alpha[k]+tan^{-1} \Big[ \frac{\dot{x}_B^A}{\dot{y}_B^A} \Big]
\end{align}
dimana kondisi inisial adalah $\alpha[k] = \alpha_i$ diperoleh dari hasil strategi pada persamaan~\eqref{eq:init_relatif_koordinat}.
Dengan memanfaatkan kedua strategi tersebut dapat digunakan untuk
mengkalkulasi koordinat robot $B$ relatif terhadap robot $A$
\begin{align}
x_B^A = \begin{bmatrix}
x_B = d_a[k].\cos \alpha[k] \\
y_B = d_a[k].\sin \alpha[k]
\end{bmatrix}
\end{align}
Dalam strategi ini akan terjadi ketidak akuratan dalam pengukuran apabila target ukur
berada pada sudut $90^\circ$.
Akan tetapi, \kutip{Cao2007} sudah menjelaskan mengenai kriteria posisi agent ketika dalam kondisi inisial.
Yaitu semua agent tidak berada pada kondisi sejajar secara koordinat global pada kondisi inisial.
Kendali formasi adalah kendali multi-agent untuk mencapai suatu formasi yang diinginkan.
Banyak metode yang telah digunakan berdasarkan berbagai macam kategori.
Dapat diperhatikan dalam gambar~\ref{fig:krangka_pen}, dari berbagai metode teresebut
dapat disimpulkan dalam 3 kategori secara general.
Yaitu berbasis posisi, pergerakan, dan jarak.
Pembagian kategori tersebut berdasarkan kemampuan sensor yang digunakan dan
penggunaan komunikasi dalam metodenya.
Dari ketiga kategori tersebut, kendali formati berbasis jarak sangat dibutuhkan pembahasan
mengenai penerapan metode tersebut pada agent yang nyata.
Pada penelitian oleh \kutip{Rozenheck2015}, kendali formasi berdasarkan jarak menggunakan
kendali PI untuk mengendalikan multi-robot dan menghasilkan pergerakan yang baik.
Maka dari itu sebagai langkah awal, kerangka kendali-PI dapat terapkan menggunakan agent nyata.
\section{Kestabilan Perangkat Percobaan}
Sub bab ini akan dibahas mengenai prangkat penunjang sebagai pembatu dalam menyelesaikan penelitian.
Sebagai langkah awal pengembangan, metode yang digunakan adalah \textit{Hardware-In Loop}.
\begin{figure}
\centering
\begin{subfigure}[t]{.4\textwidth}
\includegraphics[scale=.5]{BAB3/img/hil_graph.png}
\caption{}
\label{fig:hil_graph}
\end{subfigure}
\begin{subfigure}[t]{.4\textwidth}
\includegraphics[scale=.5]{BAB3/img/hil_graph_1.png}
\caption{}
\label{fig:hil_graph_1}
\end{subfigure}
\caption{(a)Grafik Hardware-in-the-loop (\kutip{Jim1999}). (b) HIL Kendali Multi-Robot. }
\end{figure}
\textit{Hardware-in-the-loop} (HIL) adalah metode untuk pengembangan prangkat kendali dengan memanfaatkan model sebagai objek kendalinya. Seperti pada gambar~\ref{fig:hil_graph},
bahwa HIL terdiri dari dua prangkat, yaitu prangkat untuk menjalankan objek kendali atau dapat
disebut sebagai model/plant dan prangkat sistem kontrolnya, dalam kasus ini sistem kontrol menggunakan sistem tertanam (\textit{embedded system}).
Metode HIL, banyak digunakan oleh peneliti dalam proses pengembangan dengan pertimbangan efisiensi terhadap berbagai hal.
Seperti yang digunakan oleh~\kutip{Irwanto2018}, mengembangkan kendali UAV menggunakan HIL;
dan \kutip{QUESADA2019275}, mengembangkan prangkat pankreas buatan yang digunakan untuk mengendalikan kadar gula pada pengidap diabetes.
\section{Permasalah dan Solusi}
Pada penelitian ini akan digunakan \textit{microcontroller}(MCU) STM32F466 sebagai prangkat kendalinya.
MCU tersebut ber-arsitektur ARM Cortex-M4 dengan clock 180MHz, menampung ukuran program sampai 256K didalam memori Flash, serta fitur komunikasi standart MCU dengan lengkap.
\textit{Platform Library} yang digunakan dalam pembuatan aplikasi didalamnya adalah \textit{Mbed},
yang menyediakan berbagai banyak fungsi yang lengkap dan mudah untuk berinteraksi dengan fitur-fitur MCU. \textit{Mbed} juga menyediakan fungsi untuk mengaplikasikan RTOS (Real-time Operating System) dengan mudah dan terdokumentasi secara jelas didalam lamannya.
Pada prangkat PC akan dikembangkan program berbasis \textit{Python} yang akan
menjalankan simulasi model dan berkomunikasi dengan MCU secara \textit{real-time}.
Program \textit{Python} akan menjalankan model pada persamaan~\eqref{eq:ss1}-\eqref{eq:ss2}
dengan metode yang dijabarkan pada sub bab~\ref{bab:solusi_ODE}.
Dapat diperhatikan pada gambar~\ref{fig:hil_graph_1}, pada HIL untuk kendali multi robot akan
menggunakan tiga kendali untuk mempresentasikan tiga robot.
Setiap prangkat pengendali akan saling terhubung satu sama lain dan semua prangkat pengendali terhubung dengan prangkat PC.
Komunikasi antar prangkat pengendali akan digunakan untuk pertukaran informasi.
Sedangkan komunikasi dengan PC akan mempresentasikan aktuator dan sensor untuk setiap prangkat
kendali. PC akan merekam setiap keluaran dari model dan masukan dari setiap prangkat kendali
sebagai tampilan pergerakan robotnya.
Pada krangka kendali-PI pada persamaan~\eqref{eq:ss-formasi}, state yang digunakan membutuhkan
koordinat relatif dari tetangganya. Akan tetapi pada batasan penelitian ini, sensor yang digunakan
hanya memberikan jarak terhadap tetangganya. Secara pendekatan, digunakan koordinat polar dan diubah
ke koordinat kartesian. Akan tetapi koordinat polar membutuhkan sudut antara agent dan tetangganya.
Oleh karena itu dibutuhkan algoritma khusus untuk menutup permasalahan tersebut.
Untuk mengembangkan algoritma tersebut, dapat menggunakan hukum \textit{cosinus} segitiga
untuk menentukan sudutnya.
Algoritma \textit{cosinus} tersebut hanya berlaku apabila tetangga tidak melakukan pergerakan dan
akan dijalankan algoritma tersebut ketika inisialisasi.
Ketika tetangga melakukan pergerakan, tetangga mengirimkan informasi percepatan koordinatnya pada agent.
Kegunaannya adalah sebagai refrensi perubahan koordinat terhadap tetangga.
Sehingga harapanya adalah kerangka kendali-PI dapat digunakan menggunakan sensor yang hanya mendeteksi jarak saja.
\subsection{Kestabilan Model}
Pada persamaan~\eqref{eq:disstab} apabila model dikalkulasi akan bergantung dengan besarnya \textit{step size}, $h$.
Oleh karena itu, setelah persamaan~\eqref{eq:ss1}-\eqref{eq:ss2} dilakukan parameterisasi harus dilakukan penentuan \textit{step size} agar model tersebut stabil dalam mensimulasikan modelnya.
Penentuan \textit{step size} harus berdasarkan kriteria kestabilan pada gamabar~\ref{fig:explicit_euler}.
Apabila didefinisi ulang \textit{state} pada persamaan~\eqref{eq:ss1}-\eqref{eq:ss2} dengan
$x(t) = \begin{bmatrix}\dot{x}_r & \dot{y}_r & \dot{\theta}_r \end{bmatrix}^T$,
maka akan lebih mudah untuk menghitung kestabilan dari matriks $A \in \mathbb{R}^{3 \times 3}$.
Dengan menggunakan parameter dari penelitian oleh \kutip{CORREIA20127}, maka akan diperoleh matriks $A, B, K,$ dan $C$.
\begin{align*}
A & = \begin{bmatrix}
-6.69666 & 0.00000 & 0.00000 \\
0.00000 & -6.71000 & 0.00000 \\
0.00000 & 0.00000 & -4.04200 \\
\end{bmatrix} ; \quad
B = \begin{bmatrix}
0.00000 & 0.57735 & -0.57735 \\
-0.66667 & 0.33333 & 0.33333 \\
4.00000 & 4.00000 & 4.00000 \\
\end{bmatrix} ; \\
K & = \begin{bmatrix}
-1.46667 & 0.00000 & 0.00000 \\
0.00000 & -1.00000 & 0.00000 \\
0.00000 & 0.00000 & -0.06600 \\
\end{bmatrix}; \quad
C = \begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{bmatrix}.
\end{align*}
Dengan menggunakan pendekatan pada persamaan~\eqref{eq:desdotode1} untuk persamaan~\eqref{eq:ss1} maka diperoleh bentuk diskretnya
\begin{align}
x[k+1] & = (I + A.h).x[k] + B.h.u[k] + K.h.sgn(x[k]). \\
\end{align}
Pengali $sgn(.)$ bersifat penambah dari sistem, maka dalam penentuan kestabilan ini akan dianggap penambah dari matriks sistem.
\begin{align}
x[k+1] & = (I + (A+K).h).x[k] + B.h.u[k]. \\
\end{align}
Kriteria kestabilan akan bergantung dari hasil penentuan $h$ pada $I+(A+K)h~=~\Lambda$.
Untuk semua nilai $\lambda$ pada matriks $\Lambda$ harus memenuhi kriteris $\lambda \leq 1$.
Dimungkinkan akan mengalami kebingungan ketika menentukan besar $h$,
akan tetapi nantinya persamaan ini akan diterapkan dan diselesaikan oleh komputer.
Alangkah baiknya apabila diidentifikasi terlebih dahulu konsumsi waktu yang dibutuhkan untuk menyelesaikan
satu iterasi dari persamaan tersebut.
Setelah dilakukan identifikasi, waktu yang dibutuhkan untuk satu kali iterasi berkisar $0.001$ ms (Pembulatan).
Sehingga penentuan \textit{step size} sebesar $0.1$ ms sangat dimungkinkan, dengan pertimbangan
sisa dari waktu yang digunakan kalkulasi dapat digunakan untuk waktu \textit{idle} dan menjalankan program yang lain. Berikut adalah matriks $\Lambda$ setelah dikalkulasi menggunakan $h=0.1$
\begin{align*}
\Lambda = \begin{bmatrix}
0.18367 & 0.00000 & 0.00000 \\
0.00000 & 0.22900 & 0.00000 \\
0.00000 & 0.00000 & 0.58920 \\
\end{bmatrix}.
\end{align*}
Terbukti bahwa semua nilai item didalam matriks kurang dari sama dengan satu.
Sehingga menggunakan algoritma \textit{Expilicit Euler} sudah cukup untuk menjalankan model robot \textit{omni 3-wheel} sebagai model \textit{holonomic} yang akan digunakan untuk percobaan kendali multi robot.
Hasil plot dari simulasi model dapat dilihat pada gambar~\ref{fig:sim_model}.
\begin{figure}
\centering
\begin{subfigure}[t]{.6\textwidth}
\includegraphics[scale=.4]{BAB3/img/speedRobot_-6_3_3.png}
\caption{}
\end{subfigure}
\begin{subfigure}[t]{.6\textwidth}
\includegraphics[scale=.4]{BAB3/img/speedRobot_0_6_-6.png}
\caption{}
\end{subfigure}
\begin{subfigure}[t]{.6\textwidth}
\includegraphics[scale=.4]{BAB3/img/speedRobot_6_6_6.png}
\caption{}
\end{subfigure}
\caption{(a)$w_1=-6; w_2=3; w_3=3$. (b) $w_1=0; w_2=6; w_3=-6$ (c) $w_1=6; w_2=6; w_3=6$}
\label{fig:sim_model}
\end{figure}
\subsection{Rencana Hardware-in-Loop}
\todo{kutip hasil HIL yang sudah ada lalu gabungkan model dan kendali jadi satu secara sederhana}
\subsection{Rencana Uji Lapangan}
\todo{Membahas mengenai cara pengambilan data penerapan pada robot aslinya}

BIN
BAB3/img/kerangka_pen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 KiB

After

Width:  |  Height:  |  Size: 264 KiB

View File

Before

Width:  |  Height:  |  Size: 318 KiB

After

Width:  |  Height:  |  Size: 318 KiB

View File

@ -4,17 +4,18 @@
% @author unknown
% @version 1.01
% @edit by Andreas Febrian
% Anggoro Dwi
%
\begin{titlepage}
\begin{center}\begin{figure}
\begin{center}
\includegraphics[width=2.5cm]{OTHER/img/makara.png}
\includegraphics[width=2.5cm]{OTHER/img/makara_unibraw.png}
\end{center}
\end{figure}
\vspace*{0cm}
\bo{
UNIVERSITAS INDONESIA\\
\NamaUni\\
}
\vspace*{1.0cm}
@ -39,7 +40,7 @@
\bo{
FAKULTAS \Fakultas\\
PROGRAM STUDI \Program \\
DEPOK \\
\Kota \\
\bulanTahun
}
\end{center}

View File

@ -1,12 +0,0 @@
%
% Daftar Pustaka
%
%
% Tambahkan pustaka yang digunakan setelah perintah berikut.
%
\phantomsection %hack to add clickable section for pustaka
\renewcommand{\bibname}{Daftar Referensi}
\addChapter{\bibname}
\printbibliography[title=\bibname]

View File

@ -106,6 +106,25 @@ doi={10.1109/ECC.2015.7330781},
ISSN={},
month={July},}
@book{Richard2010,
author = {Dorf, Richard and Bishop, Robert},
year = {2010},
month = {07},
pages = {},
title = {Modern Control Systems, 12th Edition},
isbn = {ISBN-10: 0136024580; ISBN-13: 978-0136024583}
}
@book{astrom2008feedback,
title={Feedback Systems: An Introduction for Scientists and Engineers},
author={Astr{\"o}m, K.J. and Murray, R.M.},
isbn={9780691135762},
url={http://www.cds.caltech.edu/~murray/amwiki/index.php?title=Version_2.11b},
year={2008},
publisher={Princeton University Press}
}
@article{Parker2003,
author = {Parker, Lynne},
year = {2003},

View File

@ -4,54 +4,43 @@
%
% @author unknown
% @version 1.01
% @edit by 1. Andreas Febrian
% 2. Anggoro Dwi Nur Rohman
% @edit by Andreas Febrian
%
\begin{titlepage}
\begin{center}
%% \vspace*{1.0cm}
% judul thesis harus dalam 14pt Times New Roman
\bo{ \Judul} \\
\vspace*{14pt}
\vspace*{14pt}
% harus dalam 16pt Times New Roman
\bo{ \fontsize{16}{6}\selectfont \Type}
\vspace*{10pt}
\bo{TEKNIK {\Jurusan} KONSENTRASI TEKNIK \Program}
\vspace*{14pt}
\vspace*{14pt}
\vspace*{14pt}
\bo{\fontsize{12}{2}\selectfont Ditujukan untuk memenuhi persyaratan\\
memperoleh gelar \gelar}
\vspace*{14pt}
\vspace*{14pt}
\begin{figure}
\begin{figure}
\begin{center}
\includegraphics[width=5cm]{OTHER/img/makara.png}
% \includegraphics[width=2.5cm]{pics/makara.png}
\includegraphics[width=2.5cm]{OTHER/img/makara.png}
\end{center}
\end{figure}
\vspace*{0cm}
\bo{
UNIVERSITAS INDONESIA\\
}
\vspace*{1.0cm}
% judul thesis harus dalam 14pt Times New Roman
\bo{\Judul} \\[1.0cm]
\vspace*{2.5 cm}
% harus dalam 14pt Times New Roman
\bo{\Type}
\vspace*{3 cm}
% penulis dan npm
\bo{ \fontsize{12}{2}\selectfont \Penulis \\ \npm} \\
\bo{\Penulis} \\
\bo{\npm} \\
\vspace*{5.0cm}
% informasi mengenai fakultas dan program studi
\bo{
\NamaUni \\
FAKULTAS \Fakultas\\
\Kota \\
PROGRAM STUDI \Program \\
DEPOK \\
\bulanTahun
}
\end{center}
\end{titlepage}

57
OTHER/sampul_unibraw.tex Normal file
View File

@ -0,0 +1,57 @@
%
% Sampul Laporan
%
% @author unknown
% @version 1.01
% @edit by 1. Andreas Febrian
% 2. Anggoro Dwi Nur Rohman
%
\begin{titlepage}
\begin{center}
%% \vspace*{1.0cm}
% judul thesis harus dalam 14pt Times New Roman
\bo{ \Judul} \\
\vspace*{14pt}
\vspace*{14pt}
% harus dalam 16pt Times New Roman
\bo{ \fontsize{16}{6}\selectfont \Type}
\vspace*{10pt}
\bo{TEKNIK {\Jurusan} KONSENTRASI TEKNIK \Program}
\vspace*{14pt}
\vspace*{14pt}
\vspace*{14pt}
\bo{\fontsize{12}{2}\selectfont Ditujukan untuk memenuhi persyaratan\\
memperoleh gelar \gelar}
\vspace*{14pt}
\vspace*{14pt}
\begin{figure}
\begin{center}
\includegraphics[width=5cm]{OTHER/img/makara_unibraw.png}
\end{center}
\end{figure}
% penulis dan npm
\bo{ \fontsize{12}{2}\selectfont \Penulis \\ \npm} \\
\vspace*{5.0cm}
% informasi mengenai fakultas dan program studi
\bo{
\NamaUni \\
FAKULTAS \Fakultas\\
\Kota \\
\bulanTahun
}
\end{center}
\end{titlepage}

View File

@ -82,6 +82,7 @@
\Var{\babLima}{Perintah dalam uithesis.sty}
\Var{\babEnam}{??}
\Var{\kesimpulan}{Kesimpulan dan Saran}
\Var{\mybibname}{Daftar Referensi}
\var{\graf}{\mathcal{G}}
\var{\simpul}{\mathcal{V}}

File diff suppressed because it is too large Load Diff

View File

@ -30,7 +30,7 @@
\begin{document}
%
% Sampul Laporan
\include{OTHER/sampul}
\include{OTHER/sampul_Unibraw}
%
% Gunakan penomeran romawi
@ -104,7 +104,9 @@
%
% Daftar Pustaka
\include{OTHER/pustaka}
\renewcommand{\bibname}{\mybibname}
\addChapter{\bibname}
\printbibliography[title=\bibname]
%
% Lampiran

View File

@ -110,7 +110,6 @@
% Membantu penulisan notasi matematika terutama untuk dokumen dengan banyak
% rumus.
%
%% \usepackage{amsmath}
\usepackage{amsmath, amsfonts, stmaryrd, amssymb}
%
@ -159,11 +158,14 @@
%
% Digunakan untuk menghasilkan tabel pseudocode
%
% \usepackage[chapter]{algorithm}
% \usepackage[noend]{algpseudocode}
\usepackage{xcolor}
\usepackage[linesnumbered,ruled,vlined,algochapter]{algorithm2e}
%
% Digunakan untuk membuat mind map
%
\usepackage{tikz}
\usetikzlibrary{mindmap}
%-----------------------------------------------------------------------------%
% Konfigurasi
@ -223,6 +225,14 @@
% Perintah Baru
%-----------------------------------------------------------------------------%
%
% Mengganti .et.al pada sitasi dengan dkk
\DefineBibliographyStrings{english}{andothers={\addcomma~dkk}}
%
% Mengganti penghubung 'and' dengan 'dan' pada penghubung mlti name sitasi
\DeclareDelimFormat{finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addcomma~\addspace~dan~\space}
%
% Perintah untuk membuat huruf tecetak miring. (alias)
\newcommand{\f}[1]{\textit{#1}}
@ -292,7 +302,7 @@
\newcommand{\daftaIsi}{\phantomsection \tableofcontents}
\newcommand{\daftarGambar}{\phantomsection \listoffigures}
\newcommand{\daftarTabel}{\phantomsection \listoftables}
\newcommand{\kutip}[1]{\citeauthor*{#1}(\citeyear{#1})}
\newcommand{\kutip}[1]{\citeauthor*{#1}\space(\citeyear{#1})}
\newcommand{\kutipLs}[1]{\citeauthor*{#1},\citeyear{#1}}
\newcommand{\kutipLsHal}[2]{\citeauthor*{#1}, \citeyear{#1}, #2}
@ -301,7 +311,6 @@
%-----------------------------------------------------------------------------%
%
% Beberapa istilah yang tepat untuk digunakan dalam laporan.
\renewcommand{\bibname}{Daftar Referensi}
%
%
\renewcommand{\contentsname}{Daftar Isi}