revisi yudisium

release
a2nr 2021-07-25 07:25:50 +07:00
parent 4aa147e808
commit e6babdc70f
14 changed files with 360 additions and 675 deletions

8
.vscode/tasks.json vendored
View File

@ -8,12 +8,6 @@
"type": "shell",
"command": "latexmk -pdf thesis.tex && latexmk -pdf -silent -c thesis.tex",
"problemMatcher": []
},
{
"label": "Compile Presentasi",
"type": "shell",
"command": "latexmk -pdf presentasi.tex && latexmk -pdf -silent -c presentasi.tex",
"problemMatcher": []
},
}
]
}

View File

@ -11,14 +11,14 @@
Kendali formasi adalah topik penelitian kendali multi-robot untuk memecahkan permasalahan
koordinasi pergerakan. Kendali formasi bertujuan untuk mengendalikan sekelompok robot
dalam mencapai formasi tertentu dan dapat mempertahankan formasi tersebut ketika
bermanuver menuju arah yang diinginkan. Penjabaran oleh Guanghua (Guanghua et al.,
2013), pengembangan kendali formasi dilakukan dari beberapa algoritma strategi. Seperti
yang dikembangkan oleh Wang (\kutip{wang2014}) menggunakan strategi leader-follower,
menggunakan Fuzzy-Logic sebagai tingkah laku robot oleh Ferik (\kutip{ELFERIK2016117}) dan
bermanuver menuju arah yang diinginkan. Penjabaran oleh \kutip{Guanghua2013},
pengembangan kendali formasi dilakukan dari beberapa algoritma strategi. Seperti
yang dikembangkan oleh \kutip{wang2014} menggunakan strategi leader-follower,
menggunakan Fuzzy-Logic sebagai tingkah laku robot oleh \kutip{ELFERIK2016117} dan
menggunakan struktur virtual dimana sekelompok robot memiliki titik referensi sebagai satu
robot oleh Xuen-ren (Li et al., 2015).
robot oleh \kutip{li2015}.
Penjabaran oleh Kwang-Kyo (\kutip{OH2015424}), bahwa dari berbagai pengembangan kendali
Penjabaran oleh \kutip{OH2015424}, bahwa dari berbagai pengembangan kendali
formasi dapat ambil garis besar menjadi tiga bagian, yaitu berdasarkan posisi, perpindahan,
dan jarak. Ketiga bagian tersebut tertuju pada jawaban dari pertanyaan, "variabel apa yang
digunakan sebagai sensor" dan "variabel apa yang aktif dikendalikan oleh sistem multi-robot
@ -36,32 +36,32 @@ koordinat global. Penerapan formasi berdasarkan jarak menggunakan sensor yang le
dibanding dengan posisi dan perpindahan. Namun pembahasan model yang lebih nyata untuk
diterapakan kendali formasi berdasarkan jarak masih sedikit. Pengembangan formasi
berdasarkan jarak telah dikembangkan menggunakan teori graph dengan model single dan
double integrator sederhana oleh Kwang-Kyo (\kutip{Oh2014}), menggunakan informasi
jarak untuk mengendalikan model sederhana double integrator oleh Xiaoyu (\kutip{Cai2014}),
double integrator sederhana oleh \kutip{Oh2014}, menggunakan informasi
jarak untuk mengendalikan model sederhana double integrator oleh \kutip{Cai2014},
menggunakan konsensus antara robot untuk mencapai bentuk formasi
dengan model single integrator sederhana oleh Deghat (\kutip{deghat2016}),
dengan model single integrator sederhana oleh \kutip{deghat2016},
mengendalikan bentuk formasi menggunakan adaptive control untuk mengestimasi kecepatan
tetangga dari model robot yang sederhana oleh Sung-Mo (\kutip{kang2014}),
tetangga dari model robot yang sederhana oleh \kutip{kang2014},
menggabungkan kendali formasi berdasarkan jarak dan perpindahan untuk mengendalikan
model robot yang sederhana oleh Myoung-Chul (\kutip{park2015}), dan menggunakan
model robot yang sederhana oleh \kutip{park2015}, dan menggunakan
kendali Proportional-Integral (PI) untuk mengendalikan jarak setiap model robot yang
sederhana oleh Rozenheck (\kutip{Rozenheck2015}).
sederhana oleh \kutip{Rozenheck2015}.
Kendali PI pada penelitian oleh Rozenheck (\kutip{Rozenheck2015}) tidak dapat langsung
Kendali PI pada penelitian oleh \kutip{Rozenheck2015} tidak dapat langsung
diterapkan menggunakan sensor jarak karena kendali tersebut mengambil informasi jarak
menggunakan selisih dari koordinat kartesian global setiap robot. Sedangkan dalam praktiknya
robot hanya bisa mengukur jarak dan tidak mengetahui koordinat dari robot tetangganya.
Sudah umum penelitian dibidang lokalisasi menggunakan sensor jara seperti yang dibahas
oleh Kexing (\kutip{guo2020}) yang menggantikan sensor berbasis vision untuk
mendapatkan koordinat dari beberapa robot, penelitian oleh Qiang (\kutip{qiang2017})
oleh \kutip{guo2020} yang menggantikan sensor berbasis vision untuk
mendapatkan koordinat dari beberapa robot, penelitian oleh \kutip{qiang2017}
membutuhkan beberapa sensor jarak yang terpasang statis digunakan untuk mengetahui
koordinat sekelompok robot dan mengendalikannya secara terpusat, dan pengembangan oleh
Qiang (\kutip{qiang2018}) dengan memasang dua sensor jarak di salah satu dari
koordinat sekelompok robot dan mengendalikannya secara terpusat, dan pengembangan \kutip{qiang2018} dengan memasang dua sensor jarak di salah satu dari
sekelompok robot, lalu mendistribusikan koordinat ke robot tetangganya. Lokalisasi
menggunakan dua sensor jarak tersebut memanfaatkan rumus segitiga untuk mendapatkan
koordinat robot tetangganya. Penelitian ini akan mengadopsi rumus segitiga dan
menggantikan salah satu dari dua sensor dengan algoritma cosinus sehingga tidak
mengharuskan salah satu robot memiliki dua sensor. Penelitian oleh Rozenheck (\kutip{Rozenheck2015})
koordinat robot tetangganya. Penelitian ini akan mengembangkan algoritma memanfaatkan rumus segitiga
yang dikembangkan oleh \kutip{qiang2018} dan
menggantikan salah satu robot yang memiliki dua sensor dengan algoritma tersebut sehingga tidak
mengharuskan salah satu robot memiliki dua sensor. Penelitian oleh \kutip{Rozenheck2015}
mengembangkan kendali formasi menggunakan model holonomic sederhana
dimana robot bergerak ke suatu arah tidak bergantung dari kondisi awal arah robot dan juga
model sederhana tidak mempertimbangkan parameter fisik pada modelnya. Percobaan akan
@ -73,37 +73,24 @@ nyata.
\section{Identifikasi dan Perumusan Masalah}
%-----------------------------------------------------------------------------%
Berikut adalah potensi permasalahan sebagai identifikasi masalah :
\begin{enumerate}
\item Kendali formasi berdasarkan jarak tidak dapat langsung diterapkan menggunakan sensor jarak
Pembahasan dari latar belakang dapat ditentukan pontensi permasalahan sebagai identifikasi masalah, yaitu
kendali formasi berdasarkan jarak tidak dapat langsung diterapkan menggunakan sensor jarak
karena kendali formasi mengambil informasi jarak menggunakan selisih dari koordinat kartesian global setiap robot.
\item Kendali formasi berdasarkan jarak diperlukan pengembangan penarapan pada model yang lebih nyata.
\end{enumerate}
Dalam penelitian ini akan digunakan batasan-batasan permasalahan sebagai berikut :
\begin{enumerate}
\item Kendali formasi berdsarkan jarak akan menggunakan tiga robot yang dijalankan secara simulasi.
\item Sensor jarak bekerja secara ideal.
\item Strategi yang akan dikembangkan hanya untuk mengetahui koordinat kondisi awal saja.
\end{enumerate}
Berikut adalah beberapa point permasalahan yang ditujukan pada penelitian ini, yaitu:
\begin{enumerate}
\item Bagaimanakan strategi untuk kendali formasi apabila variabel yang dikendalikan adalah jarak antar robot?.
\item Bagaimanakah pergerakan kendali formasi berdasarkan jarak apabila model yang digunakan adalah \textit{holonomic} mobile robot ?.
\end{enumerate}
Dapat ditentukan permasalaah untuk penelitian ini, yaitu "bagaimanakah strategi untuk mendapatkan koordinat
kondisi awal kendali formasi apabila variabel yang dikendalikan adalah jarak antar robot?.
%-----------------------------------------------------------------------------%
\section{Tujuan dan Manfaat}
%-----------------------------------------------------------------------------%
%% \todo{tulis tujuan sebagai jawaban pertanyaan permasalahan}
Tujuan dari penelitian ini adalah
\begin{enumerate}
\item Mengetahui strategi untuk kendali formasi apabila variabel yang dikendalikan adalah jarak antar robot.
\item Mengetahui pergerakan kendali formasi berdasarkan jarak apabila model yang digunakan adalah holonomic mobile robot.
\end{enumerate}
Tujuan dari penelitian ini adalah mengetahui strategi untuk mendapatkan koordinat kondisi awal kendali formasi apabila variabel yang dikendalikan adalah jarak antar robot.
Manfaat dari penelitian ini adalah
\begin{enumerate}
\item Memberikan referensi 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}
memberikan referensi untuk permasalahan kendali multi-robot, kususnya pada permasalhaan kendali formasi, terhadap model yang lebih nyata.
dan membuka peluang penelitian dibidang kendali mengenai kendali formasi pada kendali multi-robot dilingkungan Fakultas Teknik Elektro, Universitas Brawijaya.

View File

@ -2,6 +2,137 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Kendali Formasi Berdasarkan Jarak}
Pembahasan kendali formasi mutli-robot dikutip dari paper oleh \kutip{Rozenheck2015}.
Dimana peneliti membahas mengenai kendali formasi robot berdasarkan jaraknya lalu dikendalikan dengan kendali PI\@.
Dari subbab ini akan dirangkum dari paper tersebut, yaitu mulai dari pendahuluan sampai kendalinya.
\subsection{Pendahuluan Formasi Multi Robot}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Teori Graf}
Suatu graf $\graf$, dinotasikan sebagai $\graf=(\simpul, \sisi)$, merupakan pasangan $\simpul$ dan $\sisi$,
di mana $\simpul$ merupakan himpunan tak kosong berisikan simpul pada graf tersebut dan $\sisi$
merupakan himpunan sisi pada graf tersebut. Secara formal,
himpunan $\sisi$ dapat dinyatakan sebagai suatu koleksi subhimpunan berkardinalitas dua dari himpunan $\simpul$,
atau dalam notasi matematika $\sisi \subseteq \simpul \times \simpul $.
Sebuah $\graf$ diakatakan tak berarah (\textit{undirected graph}),
dimana himpunan sisi terdiri dari pasangan node $(i,j)$,
maka sisi tersebut tidak memiliki urutan arah antara node $i$ dengan $j$. Dinotasikan
$n \triangleq | \simpul |$ sebagai jumlah dari node dan $m \triangleq | \sisi |$ sebagai jumlah dari sisinya.
Apabila $(i,j) \in \sisi$ maka dapat disebut node $i$ dan $j$ berdekatan(\textit{adjecent}).
Himpunan dari node yang terhubung dari setiap simpul $i$ dinotasikan dengan $\tetangga_i \triangleq \{ j \in \simpul: (i,j) \in \sisi \}$, dan juga $i \sim j$.
Matiks insidensi (\textit{incidence}), $E \in \mathbb{R}^{n\times m}$, adalah matrik $\{0,\pm 1\}$ dimana
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,
$p = \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(p)$,
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
$e=\begin{bmatrix}e_1^t & \dots & e_m^T\end{bmatrix} \in \mathbb{R}^{2m}$.
Apabila kerangka $\simpul(p)$ 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
\begin{align}
F(p,\sisi) & \triangleq
\begin{bmatrix}
||e_1||^2 & \dots & ||e_m||^2
\end{bmatrix}^T
\end{align}
Matrik kekakuan $R(p)$ yang berhubungan erat dengan kerangka $\graf(p)$ dapat didefinisikan
dengan \textit{Jacobian} dari fungsi sisi (\kutip{Rozenheck2015}),
\begin{align}
R(p) & \triangleq \frac{\partial F(p,\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}
Dikarenakan pada penelitian sebelumnya menggunakan model sederhana,
maka akan menggabungkan literatur oleh \kutip{Oh2014} dengan penyesuaian metode sebelumnya.
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
\begin{align}
\begin{cases}
\dot{x}_i(t) = & v_i(t) \quad i = 1, \dots, n. \\
\dot{v}_i(t) = & u_i(t)
\end{cases}
\label{eq:modelorde2}
\end{align}
dimana $v_i(t) \in \mathbb{R}^2$ dan $u_i(t)\in \mathbb{R}^2$adalah kecepatan dan input dari robot-$i$. 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_{i \in \simpul }||v_i||^2 + \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$.
Kendali dari setiap robot menggunakan gradien negatif dari fungsi potensial
\begin{align}
\begin{cases}
\dot{p} & = \frac{\partial \Phi(e)}{\partial v} + Bv_{ref} \\
& = v(t) + Bv_{ref} \\
\dot{v} & = -C \Big( \frac{\partial \Phi(e)}{\partial v} + \frac{\partial \Phi(e)}{\partial p} \Big) \\
& = -C(v(t) + R(p)^T(R(p)x(t) - d )) \\
& = u(t)
\end{cases}
\label{eq:dynmState}
\end{align}
Dimana $v \in \mathbb{R}^{2n}$ adalah vector kecepatan dari seluruh node. Penambahan refrensi kecepatan pada salah satu robot dapat menjadikan formasi bermanuver.
Dimana $B \in \mathbb{R}^{2n \times 2}$ digunakan untuk indikasi robot ke $i$ sebagai leader atau penerima kecepatan referensinya, $v_{ref} \in \mathbb{R}^2$ sebagai kecepatan referensi,
dan $C$ adalah konstanta pengendali yang akan digantikan dengan algoritma kendali.
Dengan menerapkan kendali \textit{Proportional}, konstanta $C$ pada persamaan~\eqref{eq:kontrolinput}
dapat diubah dengan
\begin{align}
\begin{cases}
u_i(t) & = u_{k_{p1}}(t) + u_{k_{p2}}(t) \\
u_{k_{p1}}(t) & = -k_{p1}v_i(t) \\
u_{k_{p2}}(t) & = -R(p(t))^T k_{p2}(R(p(t))x_1(t) - d )) \\
\end{cases}
\label{eq:kontrolinput}
\end{align}
Dengan itu dapat digabungkan menjadi persamaan \textit{state-space} menggunakan persamaan~\eqref{eq:dynmState}
\begin{align}
\begin{bmatrix}
\dot{x} \\ \dot{v}
\end{bmatrix} & =
\begin{bmatrix}
0 & 1 \\
-k_{p2}R(x)^T R(x) & -k_{p1}\\
\end{bmatrix}
\begin{bmatrix}
x \\ v
\end{bmatrix} +
\begin{bmatrix}
0 \\ k_{p2}R(x)^T
\end{bmatrix} d+Bv_{ref} \nonumber \\
\dot{x}_f(t) & = A_f(x)x_f(t)+B_f(x)d+Bv_{ref}
\label{eq:ss-formasi}
\end{align}
\begin{figure}
\centering
\includegraphics[scale=.35]{BAB2/img/plotMotion3Robot.png}
\caption{Plot motion 3 robot dengan nilai kp=80 dan ki=1}
\end{figure}
\section{Pemodelan Robot}
Pembahasan pemodelan robot akan dirangkum dari jurnal oleh \kutip{CORREIA20127}.
@ -159,200 +290,3 @@ sistem robot
0 & 0 & 0 & 0 & 0 & 1 & \\
\end{bmatrix}
\end{align*}
\section{Formasi Multi Robot}
Pembahasan kendali formasi mutli-robot dikutip dari paper oleh \kutip{Rozenheck2015}.
Dimana peneliti membahas mengenai kendali formasi robot berdasarkan jaraknya lalu dikendalikan dengan kendali PI\@.
Dari subbab ini akan dirangkum dari paper tersebut, yaitu mulai dari pendahuluan sampai kendalinya.
\subsection{Pendahuluan Formasi Multi Robot}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Teori Graf}
Suatu graf $\graf$, dinotasikan sebagai $\graf=(\simpul, \sisi)$, merupakan pasangan $\simpul$ dan $\sisi$,
di mana $\simpul$ merupakan himpunan tak kosong berisikan simpul pada graf tersebut dan $\sisi$
merupakan himpunan sisi pada graf tersebut. Secara formal,
himpunan $\sisi$ dapat dinyatakan sebagai suatu koleksi subhimpunan berkardinalitas dua dari himpunan $\simpul$,
atau dalam notasi matematika $\sisi \subseteq \simpul \times \simpul $.
Sebuah $\graf$ diakatakan tak berarah (\textit{undirected graph}),
dimana himpunan sisi terdiri dari pasangan node $(i,j)$,
maka sisi tersebut tidak memiliki urutan arah antara node $i$ dengan $j$. Dinotasikan
$n \triangleq | \simpul |$ sebagai jumlah dari node dan $m \triangleq | \sisi |$ sebagai jumlah dari sisinya.
Apabila $(i,j) \in \sisi$ maka dapat disebut node $i$ dan $j$ berdekatan(\textit{adjecent}).
Himpunan dari node yang terhubung dari setiap simpul $i$ dinotasikan dengan $\tetangga_i \triangleq \{ j \in \simpul: (i,j) \in \sisi \}$, dan juga $i \sim j$.
Matiks insidensi (\textit{incidence}), $E \in \mathbb{R}^{n\times m}$, adalah matrik $\{0,\pm 1\}$ dimana
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,
$p = \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(p)$,
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
$e=\begin{bmatrix}e_1^t & \dots & e_m^T\end{bmatrix} \in \mathbb{R}^{2m}$.
Apabila kerangka $\simpul(p)$ 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
\begin{align}
F(p,\sisi) & \triangleq
\begin{bmatrix}
||e_1||^2 & \dots & ||e_m||^2
\end{bmatrix}^T
\end{align}
Matrik kekakuan $R(p)$ yang berhubungan erat dengan kerangka $\graf(p)$ dapat didefinisikan
dengan \textit{Jacobian} dari fungsi sisi (\kutip{Rozenheck2015}),
\begin{align}
R(p) & \triangleq \frac{\partial F(p,\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}
Dikarenakan pada penelitian sebelumnya menggunakan model sederhana,
maka akan menggabungkan literatur oleh \kutip{Oh2014} dengan penyesuaian metode sebelumnya.
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
\begin{align}
\begin{cases}
\dot{x}_i(t) = & v_i(t) \quad i = 1, \dots, n. \\
\dot{v}_i(t) = & u_i(t)
\end{cases}
\label{eq:modelorde2}
\end{align}
dimana $v_i(t) \in \mathbb{R}^2$ dan $u_i(t)\in \mathbb{R}^2$adalah kecepatan dan input dari robot-$i$. 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_{i \in \simpul }||v_i||^2 + \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$.
Kendali dari setiap robot menggunakan gradien negatif dari fungsi potensial
\begin{align}
\begin{cases}
\dot{p} & = \frac{\partial \Phi(e)}{\partial v} + Bv_{ref} \\
& = v(t) + Bv_{ref} \\
\dot{v} & = -C \Big( \frac{\partial \Phi(e)}{\partial v} + \frac{\partial \Phi(e)}{\partial p} \Big) \\
& = -C(v(t) + R(p)^T(R(p)x(t) - d )) \\
& = u(t)
\end{cases}
\label{eq:dynmState}
\end{align}
Dimana $v \in \mathbb{R}^{2n}$ adalah vector kecepatan dari seluruh node. Penambahan refrensi kecepatan pada salah satu robot dapat menjadikan formasi bermanuver.
Dimana $B \in \mathbb{R}^{2n \times 2}$ digunakan untuk indikasi robot ke $i$ sebagai leader atau penerima kecepatan referensinya, $v_{ref} \in \mathbb{R}^2$ sebagai kecepatan referensi,
dan $C$ adalah konstanta pengendali yang akan digantikan dengan algoritma kendali.
Dengan menerapkan kendali \textit{Proportional}, konstanta $C$ pada persamaan~\eqref{eq:kontrolinput}
dapat diubah dengan
\begin{align}
\begin{cases}
u_i(t) & = u_{k_{p1}}(t) + u_{k_{p2}}(t) \\
u_{k_{p1}}(t) & = -k_{p1}v_i(t) \\
u_{k_{p2}}(t) & = -R(p(t))^T k_{p2}(R(p(t))x_1(t) - d )) \\
\end{cases}
\label{eq:kontrolinput}
\end{align}
Dengan itu dapat digabungkan menjadi persamaan \textit{state-space} menggunakan persamaan~\eqref{eq:dynmState}
\begin{align}
\begin{bmatrix}
\dot{x} \\ \dot{v}
\end{bmatrix} & =
\begin{bmatrix}
0 & 1 \\
-k_{p2}R(x)^T R(x) & -k_{p1}\\
\end{bmatrix}
\begin{bmatrix}
x \\ v
\end{bmatrix} +
\begin{bmatrix}
0 \\ k_{p2}R(x)^T
\end{bmatrix} d+Bv_{ref} \nonumber \\
\dot{x}_f(t) & = A_f(x)x_f(t)+B_f(x)d+Bv_{ref}
\label{eq:ss-formasi}
\end{align}
\begin{figure}
\centering
\includegraphics[scale=.35]{BAB2/img/plotMotion3Robot.png}
\caption{Plot motion 3 robot dengan nilai kp=80 dan ki=1}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Solusi Persamaan Differensial Secara Numerik}
% \label{bab:dua:solusi_ODE}
% Persamaan \eqref{eq:ss1} dan \eqref{eq:ss2} adalah persamaan differensial kontinu orde satu.
% Dalam memecahkan persamaan differensial dapat dilakukan dalam bentuk kontinyu atau numerik.
% Dalam kasus kendali, persamaan differensial dikalkulasi menggunakan komputer, sehingga persamaan tersebut
% dapat dicari solusi pendekatannya menggunakan cara numerik. Persamaan orde satu dapat direpresentasikan
% dengan persamaan
% \begin{align}
% \dot{x}(t) & = f(x,t), t_0 \leq t \leq t_f \label{eq:ode1.a} \\
% y(t_0) & = x(t_0)\label{eq:ode1.b}
% \end{align}
% Dimana $x(t) \in \mathbb{R}^n$, adalah vector yang setiap iterasi waktu berubah, $f(x,t)\in \mathbb{R}^n$
% adalah fungsi sistem, $t_0$ dan $t_f$ adalah waktu inisial dan waktu akhir.
% Pada persamaan~\eqref{eq:ode1.a} dan~\eqref{eq:ode1.b} adalah persamaan dengan permasalahan nilai inisial~\kutip{Fabien2009}.
% Apablia $t(0) = t(t_i)$ maka $t(1) = t(0)+ h$, dimana $h$ adalah perubahan kecil yang memiliki hubungan terhadap waktu.
% Didalam metode algoritma yang akan dibahas, $h$ juga dapat disebut sebagai \textit{step size}, dan juga
% $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
% 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}
% \end{align}
% Pendekatan lain dari persamaan~\eqref{eq:desode1} dengan mendefinisikan turunan $y(t[k])$ sebagai
% \begin{align}
% \dot{y}(t[k]) & = \frac{y[k+1] - y[k]}{h} \label{eq:desdotode1}
% \end{align}
% Persamaan~\eqref{eq:desode1} dan~\eqref{eq:desdotode1} dinamakan dengan persamaan \textit{explicite Euler method} dan \textit{forward Euler formula} (\kutip{Fabien2009}).
% Apabila persamaan~\eqref{eq:desdotode1} disubtitusikan pada~\eqref{eq:ode1.a}
% dan~\eqref{eq:ode1.b} maka didapat persamaan~\eqref{eq:desode1}.
% Untuk diterapkan dalam komputer, dapat mengikuti algoritme~\ref{algo:eEuler}.
% \begin{algorithm}
% \DontPrintSemicolon
% \KwInput{Integer $N > 0$, $h=(t_f-t_i)/N$, $t[0]=t_i$, $y[0]=y[t_i]=y_i$).}
% \KwOutput{$y[k]$, $k=1,2,\dots,N$.}
% \For{$k=0,1,\dots,N-1$}
% {$y[k+1] = y[k]+hf(y[k])$\;
% $t[k+1] = t[k] + h$
% }
% \caption{\textit{Explicite Euler Method}}
% \label{algo:eEuler}
% \end{algorithm}
% \subsection{Stabilitas Metode Euler}
% \begin{figure}
% \centering
% \includegraphics[scale=.5]{BAB2/img/equler_explicit.png}
% \caption[]{Area stabilitas metode explicit euler(\kutipLs{Fabien2009}).}
% \label{fig:explicit_euler}
% \end{figure}
% Properti dari stabilitas metode Euler dapat diperoleh dengan mendefinisikan persamaan differensial secara general $\dot{x}=\alpha x$,dimana $\alpha$ adalah bilangan complex
% dari parameter sistem.
% Dengan menggunakan pendekatan sebelumnya maka persamaan masalah dapat didefinisikan
% \begin{align}
% y[k+1] = (1+h\lambda)y[k] = (1 + z)y[k]= R(z)y[k] \label{eq:disstab}
% \end{align}
% Dari persamaan~\eqref{eq:disstab}, sistem akan stabil apabila $|R(z)|\leq 1$.
% Jika digambarkan dalam grafik complex stabilitas maka dapat dilihat pada gambar~\ref{fig:explicit_euler}

View File

@ -1,66 +1,5 @@
\chapter{\babEmpat}
% \section{Perangkat Percobaan}
% Percobaan akan dilakukan secara simulasi yang dijalankan menggunakan aplikasi MATLAB / GNU Octave.
% 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
% \includegraphics[scale=.5]{BAB3/img/hil_graph.png}
% \caption{Hardware-in-the-loop (\kutip{Jim1999}). }
% \label{fig:hil_graph}
% \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.
% 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:dua:solusi_ODE}.
% Dalam penerapan multi-robot, digunakan 3 perangkat sistem tertanam untuk mempresentasikan kendali 3 robot (Gambar.~\ref{fig:hil_graph_1}).
% 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.
% \begin{figure}
% \centering
% \input{BAB4/img/Diagram_hil_controller.tex}
% \caption{HIL Kendali Multi-Robot.}
% \label{fig:hil_graph_1}
% \end{figure}
% \todo{
% Tambahkan subsection mengenai
% \begin{itemize}
% %% \item pengembangan data/akuisisi data ?
% % \item skenario pengujian/simulasi? (lebih ke teknis seperti lapangan environtment dll)
% % \item skenario Analisa hasil
% \item jadwal penelitian
% \end{itemize}
% }
% \section{Strategi Kendali Multi Robot}
% Pembahasan metode akan menerangkan mengenai strategi kendali multi robot.
% Strategi akan dibagi menjadi dua bagian, yaitu kendali tingkat bawah dan kendali tingkat atas.
% Kendali tingkat bawah akan membahas mengenai kendali robot secara individu,
% sedangkan kendali tingkat atas akan dibahas mengenai penggabungan antara kendali tingkat bawah dan atas.
% \section{Kendali Robot}
Metode penelitian akan menerangkan tentang bagaimana strategi untuk menemukan koordinat tetangga menggunakan variabel jarak saja.
Dapat diperhatikan pada persamaan~\eqref{eq:ss-formasi} bahwa \textit{state} yang dibutuhkan adalah kecepatan.
Maka kendali robot diharuskan dapat mencapai kecepatan tertentu.
@ -68,6 +7,147 @@ Strategi pencarian koordinat mengharuskan juga robot untuk mencapai koordinat re
Pada bab ini akan menjelaskan bagaimana robot menemukan koordinat, mencapai kecepatan dan koordinat tertentu,
dan membentuk formasi menggunakan model robot \textit{holonomic}.
\section{Strategi Penentuan Koordinat Tetangga}
\label{bab:empat:Strategi_koordinat_tetangga}
Tujuan dari strategi penentuan koordinat tetangga ini adalah menemukan koodinat menggunakan variabel jarak saja.
Mengadopsi dari pengembangan oleh Qiang (\kutip{qiang2018}) meletakkan dua sensor jarak pada salah satu robot,
menggunakan kaidah rumus segitiga untuk mendapatkan sudut diantara robot tetangganya dan mengubahnya menjadi koordinat polar.
Di penelitian ini menggunakan kaidah rumus segitiga tersebut akan tetapi robot hanya terpasang satu sensor jarak saja
dan mengharuskan melakukan langkah tertentu untuk mendapatkan sudut diantara robot tetangganya.
Penentuan koordinat tentangga dapat ditemukan dengang mengubah koordinat polar menjadi koordinat kartesian.
Koordinat polar membutuhkan panjang $d_a$, dan sudut $\alpha$.
Panjang $d_a$ adalah variable yang didapat dari sensor yang memberikan nilai jarak dari robot $A$ ke robot $B$,
akan tetapi untuk mendapatkan koordinat polar, pengukuran sudu $\alpha$ tidak tersedia.
Algoritama yang ditawarkan memanfaatkan hukum \textit{cosinus} pada segitiga untuk mendapatkan sudut tersebut.
\begin{figure}
\centering
\includegraphics[scale=.2]{BAB3/img/estimate_coordinate.png}
\caption{Strategi Penentuan Koordinat Langkah Pertama}
\label{fig:strategiPenentuanKoordinat_satu}
\end{figure}
\textbf{Langkah pertama}. Gambar~\ref{fig:strategiPenentuanKoordinat_satu} adalah Ilustrasi langkah pertama algoritma cosinus dimana
robot $A$ diharuskan berpindah sepanjang la atau ke koordinat $A' = (0, la )$ menggunakan
kendali mode dua di Persamaan~\eqref{eq:kendali_mode_dua} akan tetapi robot harus menyimpan jarak di $[k]$ terlebih
dahulu. Setelah berpindah robot $A$ mendapatkan jarak di $[k + 1]$ digunakan untuk menentukan
sudut $\alpha_i^\circ$ menggunakan rumus segitiga cosinus. Berikut adalah Persamaan $\alpha_i^\circ$.
\begin{align}
\zeta_i^a & = cos^{-1}\Bigg( \frac{l_a^2 + d_a[k+1]^2 -d_a[k]^2}{2d_a[k+1]l_a} \Bigg)
\alpha_i^\circ & = 180^\circ \\pm \zeta_i^a \\
\label{eq:algo_getAngle}
\end{align}
Variabel $\alpha_i^\circ$ dan $d_i[k+1]$ adalah nilai dari koordinat polar dari setiap robot tetangga A. Diubah
menjadi koordinat kartesian untuk dapat dimasukkan dalam state kendali formasi.
\begin{align}
x_{B_i}^A = \begin{bmatrix}
x_{B_i}= d_i[k]\cos \alpha_i^\circ \\
y_{B_i}= d_i[k]\sin \alpha_i^\circ
\end{bmatrix} \label{eq:algo_koordinat}
\end{align}
\begin{figure}
\centering
\includegraphics[scale=.2]{BAB3/img/estimate_coordinate.png}
\caption{Strategi Penentuan Koordinat Langakah Kedua}
\label{fig:strategiPenentuanKoordinat_dua}
\end{figure}
\textbf{Langkah kedua}. Koordinat di Persamaan~\eqref{eq:algo_koordinat} akan menghasilkan bias dikarenakan
Persamaan~\eqref{eq:algo_getAngle} tidak mengetahui letak kuadran sudutnya. Menggunakan ilustrasi di Gambar~\ref{fig:strategiPenentuanKoordinat_satu},
langkah pertama menghasilkan dua kemungkinan koordinat robot $B_1$ dan $B_1'$ .
Apabila di Gambar~\ref{fig:strategiPenentuanKoordinat_satu}, Sudut $\zeta_i^a$ adalah sudut segitiga $\angle AA'B_1$ atau $\angle AA'B_2$ sehingga
dimungkinkan koordinat yang dihasilkan Persamaan~\eqref{eq:algo_getAngle} bisa berada pada kuadran 1 atau kuadran 4.
Oleh karena itu di Persamaan~\ref{fig:algo_getAngle} terdapat operasi $\pm$ dimana operasi tersebut
akan dilakukan berdasarkan letak kuadran $B_i$.
\begin{align}
\alpha_i^\circ & = \begin{cases}
180^\circ - \zeta_i^a & , Robot berada pada kuadran 1 dan 2 \\
180^\circ + \zeta_i^a & , Robot berada pada kuadran 3 dan 4
\end{cases}
\label{eq:kejadian_langkah_dua}
\end{align}
Langkah kedua ini bertujuan untuk menentukan kejadian di Persamaan~\eqref{eq:kejadian_langkah_dua} dimana robot
harus berpindah ke koordinat $A'' = (x*_a , y*_a )$ (Gambar~\ref{fig:strategiPenentuanKoordinat_dua}).
Sebelum robot berpindah, kondisi robot telah mendapatkan koordinat dari langkah pertama. Koordinat tersebut akan diubah
menjadi jarak dan akan dibandingkan jarak tersebut dengan informasi jarak dari sensor setelah
berpindah ke $A''$ . Apabila terdapat perbedaan maka kejadian di Persamaan~\eqref{eq:algo_getAngle} diubah kejadian selanjutnya
dan mengkoreksi koordinat sebelumnya.
\section{Analisa Algoritama Dengan Tetangga Statis}
Telah dijelaskan pada Bab \ref{bab:empat:Strategi_koordinat_tetangga} bahwa robot bergerak kearah yang random dengan jarak tertentu untuk mengetahui koordinat tetangga.
Analisa akan dilakukan dengan membandingkan berbagai jarak dari tinggat rendah, sedang, dan tinggi untuk mengetahui respon algoritma yang sesuai dan optimal untuk mendapatkan koordinat tetangga.
Dari hasil analisa ini akan menghasilkan jarak terbaik untuk algoritma menentukan koordinat tetangga. Pembuktian akan dilakukan secara menampilkan grafik respon.
\section{Kendali Robot \textit{Holonomic}}
Kendali robot \textit{holonomic} akan dibagi menjadi dua mode.
Perbedaan kedua mode tersebut adalah \textit{setpoint} kendalinya,
dimana mode satu akan memiliki setpoint kecepatan robot sedangkan
mode dua memiliki \textit{setpoint} koordinat kerangka robot.
Penjelasan lebih lengkap kegunaan dari kedua mode tersebut akan dijelaskan
di pembahasan metode strategi penentuan koordinat.
\textbf{Mode Satu}. Kendali robot mode satu bertujuan untuk robot mencapai kecepatan yang
diinginkan. Untuk mencapai tujuan tersebut akan menggunakan metode \textit{state-feedback}
seperti yang telah dijabarkan sebelumnya.
Mengadopsi persamaan \textit{state-space} dari robot.
\begin{align}
\dot{x_c}(t) & = A_c x_c(t) + B_c u_c(t) + k_c sgn(x_c(t)), \label{eq:ss_kecepatan} \\
y_c(t) & = C_cx_c(t),
\end{align}
Dimana $A_c,B_c,k_c,C_c \in \mathbb{R}^{3\times 3}$ adalah matriks parameter robot yang telah dijelaskan sebelumnya.
\begin{align*}
A_c & = \begin{bmatrix}
-\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{x}_r}}{M} & 0 & 0 \\
0 & -\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{y}_r}}{M} & 0 \\
0 & 0 & -\frac{3.l^2.K_t^2}{2.I.R_a.r^2}-\frac{B_{\dot{\theta}_r}}{I} \\
\end{bmatrix}, \\
B_c & = \begin{bmatrix}
0 & \frac{l.K_t}{R_a.r}. \frac{\cos(30^\circ)}{M} & -\frac{l.K_t}{R_a.r}.\frac{\cos(30^\circ)}{M} \\
\frac{l.K_t}{R_a.r}.\frac{-1}{M} & \frac{l.K_t}{R_a.r}.\frac{\cos(60^\circ)}{M} & \frac{l.K_t}{R_a.r}.\frac{\cos(60^\circ)}{M} \\
\frac{l.K_t}{R_a.r}.\frac{b}{I} & \frac{l.K_t}{R_a.r}.\frac{b}{I} & \frac{l.K_t}{R_a.r}.\frac{b}{I} \\
\end{bmatrix},
k_c = \begin{bmatrix}
-\frac{C_{\dot{x}_r}}{M} & 0 & 0 \\
0 & -\frac{C_{\dot{x}_r}}{M} & 0 \\
0 & 0 & -\frac{C_{\dot{x}_r}}{M} \\
\end{bmatrix}, \\
C_c & = \begin{bmatrix}
1 & 0 & 0 & \\
0 & 1 & 0 & \\
0 & 0 & 1 & \\
\end{bmatrix}
\end{align*}
Dimana $y_c(t) = x_c(t) = \begin{bmatrix} v & v_n & w \end{bmatrix}^T$ adalah vektor kecepatan.
Lalu ditentukan fungsi kendali $u_c(t)$ menggunakan \textit{state-feedback}.
\begin{align}
u_c(t) & = -K_c x_c(t) + N_c r_c \label{eq:kendali_mode_satu} \\
N_c & = -[C(A_c - B_c K_c)^{-1} B_c ]^{-1}
\end{align}
Dimana vektor $r_c = \begin{bmatrix} v* & v_n* & w* \end{bmatrix}$ adalah \textit{set-point} kendali mode satu dan
matriks $K_c$ diperoleh dari solusi persamaan \textit{Riccati}.
\textbf{Mode dua}. Kendali robot mode bertujuan untuk robot mencapai koordinat relatif yang
diinginkan. Untuk mencapai tujuan tersebut akan menggunakan metode \textit{state-feedback}
seperti yang telah dijabarkan sebelumnya.
Mengadopsi persamaan \textit{state-space} dari robot Persamaan\eqref{eq:ss1}-\eqref{eq:ss2}.
Lalu ditentukan fungsi kendali $u(t)$ menggunakan \textit{state-feedback}.
\begin{align}
u(t) & = -K_r x_c(t) + N_r r_r \label{eq:kendali_mode_dua} \\
N_r & = -[C(A_r - B_r K_r)^{-1} B_r ]^{-1}
\end{align}
Dimana vektor $r_c = \begin{bmatrix} \dot{x*}_r & \dot{y*}_r & \dot{\theta *}_r & v* & v_n* & w* \end{bmatrix}$
adalah \textit{set-point} kendali mode dua dan
matriks $K_r$ diperoleh dari solusi persamaan \textit{Riccati}.
\section{State Feedback}
\begin{figure}
\centering
@ -281,69 +361,6 @@ Apabila diintegrasi terhadap persamaan~\eqref{eq:ss1} terhadap diagram~\ref{fig:
\end{center}
\end{figure}
\section{Kendali Robot \textit{Holonomic}}
Kendali robot \textit{holonomic} akan dibagi menjadi dua mode.
Perbedaan kedua mode tersebut adalah \textit{setpoint} kendalinya,
dimana mode satu akan memiliki setpoint kecepatan robot sedangkan
mode dua memiliki \textit{setpoint} koordinat kerangka robot.
Penjelasan lebih lengkap kegunaan dari kedua mode tersebut akan dijelaskan
di pembahasan metode strategi penentuan koordinat.
\textbf{Mode Satu}. Kendali robot mode satu bertujuan untuk robot mencapai kecepatan yang
diinginkan. Untuk mencapai tujuan tersebut akan menggunakan metode \textit{state-feedback}
seperti yang telah dijabarkan sebelumnya.
Mengadopsi persamaan \textit{state-space} dari robot.
\begin{align}
\dot{x_c}(t) & = A_c x_c(t) + B_c u_c(t) + k_c sgn(x_c(t)), \label{eq:ss_kecepatan} \\
y_c(t) & = C_cx_c(t),
\end{align}
Dimana $A_c,B_c,k_c,C_c \in \mathbb{R}^{3\times 3}$ adalah matriks parameter robot yang telah dijelaskan sebelumnya.
\begin{align*}
A_c & = \begin{bmatrix}
-\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{x}_r}}{M} & 0 & 0 \\
0 & -\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{y}_r}}{M} & 0 \\
0 & 0 & -\frac{3.l^2.K_t^2}{2.I.R_a.r^2}-\frac{B_{\dot{\theta}_r}}{I} \\
\end{bmatrix}, \\
B_c & = \begin{bmatrix}
0 & \frac{l.K_t}{R_a.r}. \frac{\cos(30^\circ)}{M} & -\frac{l.K_t}{R_a.r}.\frac{\cos(30^\circ)}{M} \\
\frac{l.K_t}{R_a.r}.\frac{-1}{M} & \frac{l.K_t}{R_a.r}.\frac{\cos(60^\circ)}{M} & \frac{l.K_t}{R_a.r}.\frac{\cos(60^\circ)}{M} \\
\frac{l.K_t}{R_a.r}.\frac{b}{I} & \frac{l.K_t}{R_a.r}.\frac{b}{I} & \frac{l.K_t}{R_a.r}.\frac{b}{I} \\
\end{bmatrix},
k_c = \begin{bmatrix}
-\frac{C_{\dot{x}_r}}{M} & 0 & 0 \\
0 & -\frac{C_{\dot{x}_r}}{M} & 0 \\
0 & 0 & -\frac{C_{\dot{x}_r}}{M} \\
\end{bmatrix}, \\
C_c & = \begin{bmatrix}
1 & 0 & 0 & \\
0 & 1 & 0 & \\
0 & 0 & 1 & \\
\end{bmatrix}
\end{align*}
Dimana $y_c(t) = x_c(t) = \begin{bmatrix} v & v_n & w \end{bmatrix}^T$ adalah vektor kecepatan.
Lalu ditentukan fungsi kendali $u_c(t)$ menggunakan \textit{state-feedback}.
\begin{align}
u_c(t) & = -K_c x_c(t) + N_c r_c \label{eq:kendali_mode_satu} \\
N_c & = -[C(A_c - B_c K_c)^{-1} B_c ]^{-1}
\end{align}
Dimana vektor $r_c = \begin{bmatrix} v* & v_n* & w* \end{bmatrix}$ adalah \textit{set-point} kendali mode satu dan
matriks $K_c$ diperoleh dari solusi persamaan \textit{Riccati}.
\textbf{Mode dua}. Kendali robot mode bertujuan untuk robot mencapai koordinat relatif yang
diinginkan. Untuk mencapai tujuan tersebut akan menggunakan metode \textit{state-feedback}
seperti yang telah dijabarkan sebelumnya.
Mengadopsi persamaan \textit{state-space} dari robot Persamaan\eqref{eq:ss1}-\eqref{eq:ss2}.
Lalu ditentukan fungsi kendali $u(t)$ menggunakan \textit{state-feedback}.
\begin{align}
u(t) & = -K_r x_c(t) + N_r r_r \label{eq:kendali_mode_dua} \\
N_r & = -[C(A_r - B_r K_r)^{-1} B_r ]^{-1}
\end{align}
Dimana vektor $r_c = \begin{bmatrix} \dot{x*}_r & \dot{y*}_r & \dot{\theta *}_r & v* & v_n* & w* \end{bmatrix}$
adalah \textit{set-point} kendali mode dua dan
matriks $K_r$ diperoleh dari solusi persamaan \textit{Riccati}.
\section{Kendali Formasi Multi Robot}
Pada sub bab~\ref{subbab:KendaliFormasi} dijabarkan bagaimana kendali formasi menggunakan
kendali-P dan menghasilkan persamaan~\eqref{eq:ss-formasi}.
@ -380,280 +397,3 @@ Lalu diterapkan di Persamaan~\eqref{eq:ss-formasi} sebgai berikut.
0 & 0 & k_c \\
\end{bmatrix}
\end{align}
\section{Strategi Penentuan Koordinat Tetangga}
\label{bab:empat:Strategi_koordinat_tetangga}
Tujuan dari strategi penentuan koordinat tetangga ini adalah menemukan koodinat menggunakan variabel jarak saja.
Mengadopsi dari pengembangan oleh Qiang (\kutip{qiang2018}) meletakkan dua sensor jarak pada salah satu robot,
menggunakan kaidah rumus segitiga untuk mendapatkan sudut diantara robot tetangganya dan mengubahnya menjadi koordinat polar.
Di penelitian ini menggunakan kaidah rumus segitiga tersebut akan tetapi robot hanya terpasang satu sensor jarak saja
dan mengharuskan melakukan langkah tertentu untuk mendapatkan sudut diantara robot tetangganya.
Penentuan koordinat tentangga dapat ditemukan dengang mengubah koordinat polar menjadi koordinat kartesian.
Koordinat polar membutuhkan panjang $d_a$, dan sudut $\alpha$.
Panjang $d_a$ adalah variable yang didapat dari sensor yang memberikan nilai jarak dari robot $A$ ke robot $B$,
akan tetapi untuk mendapatkan koordinat polar, pengukuran sudu $\alpha$ tidak tersedia.
Algoritama yang ditawarkan memanfaatkan hukum \textit{cosinus} pada segitiga untuk mendapatkan sudut tersebut.
\begin{figure}
\centering
\includegraphics[scale=.2]{BAB3/img/estimate_coordinate.png}
\caption{Strategi Penentuan Koordinat Langkah Pertama}
\label{fig:strategiPenentuanKoordinat_satu}
\end{figure}
\textbf{Langkah pertama}. Gambar~\ref{fig:strategiPenentuanKoordinat_satu} adalah Ilustrasi langkah pertama algoritma cosinus dimana
robot $A$ diharuskan berpindah sepanjang la atau ke koordinat $A' = (0, la )$ menggunakan
kendali mode dua di Persamaan~\eqref{eq:kendali_mode_dua} akan tetapi robot harus menyimpan jarak di $[k]$ terlebih
dahulu. Setelah berpindah robot $A$ mendapatkan jarak di $[k + 1]$ digunakan untuk menentukan
sudut $\alpha_i^\circ$ menggunakan rumus segitiga cosinus. Berikut adalah Persamaan $\alpha_i^\circ$.
\begin{align}
\zeta_i^a & = cos^{-1}\Bigg( \frac{l_a^2 + d_a[k+1]^2 -d_a[k]^2}{2d_a[k+1]l_a} \Bigg)
\alpha_i^\circ & = 180^\circ \\pm \zeta_i^a \\
\label{eq:algo_getAngle}
\end{align}
Variabel $\alpha_i^\circ$ dan $d_i[k+1]$ adalah nilai dari koordinat polar dari setiap robot tetangga A. Diubah
menjadi koordinat kartesian untuk dapat dimasukkan dalam state kendali formasi.
\begin{align}
x_{B_i}^A = \begin{bmatrix}
x_{B_i}= d_i[k]\cos \alpha_i^\circ \\
y_{B_i}= d_i[k]\sin \alpha_i^\circ
\end{bmatrix} \label{eq:algo_koordinat}
\end{align}
\begin{figure}
\centering
\includegraphics[scale=.2]{BAB3/img/estimate_coordinate.png}
\caption{Strategi Penentuan Koordinat Langakah Kedua}
\label{fig:strategiPenentuanKoordinat_dua}
\end{figure}
\textbf{Langkah kedua}. Koordinat di Persamaan~\eqref{eq:algo_koordinat} akan menghasilkan bias dikarenakan
Persamaan~\eqref{eq:algo_getAngle} tidak mengetahui letak kuadran sudutnya. Menggunakan ilustrasi di Gambar~\ref{fig:strategiPenentuanKoordinat_satu},
langkah pertama menghasilkan dua kemungkinan koordinat robot $B_1$ dan $B_1'$ .
Apabila di Gambar~\ref{fig:strategiPenentuanKoordinat_satu}, Sudut $\zeta_i^a$ adalah sudut segitiga $\angle AA'B_1$ atau $\angle AA'B_2$ sehingga
dimungkinkan koordinat yang dihasilkan Persamaan~\eqref{eq:algo_getAngle} bisa berada pada kuadran 1 atau kuadran 4.
Oleh karena itu di Persamaan~\ref{fig:algo_getAngle} terdapat operasi $\pm$ dimana operasi tersebut
akan dilakukan berdasarkan letak kuadran $B_i$.
\begin{align}
\alpha_i^\circ & = \begin{cases}
180^\circ - \zeta_i^a & , Robot berada pada kuadran 1 dan 2 \\
180^\circ + \zeta_i^a & , Robot berada pada kuadran 3 dan 4
\end{cases}
\label{eq:kejadian_langkah_dua}
\end{align}
Langkah kedua ini bertujuan untuk menentukan kejadian di Persamaan~\eqref{eq:kejadian_langkah_dua} dimana robot
harus berpindah ke koordinat $A'' = (x*_a , y*_a )$ (Gambar~\ref{fig:strategiPenentuanKoordinat_dua}).
Sebelum robot berpindah, kondisi robot telah mendapatkan koordinat dari langkah pertama. Koordinat tersebut akan diubah
menjadi jarak dan akan dibandingkan jarak tersebut dengan informasi jarak dari sensor setelah
berpindah ke $A''$ . Apabila terdapat perbedaan maka kejadian di Persamaan~\eqref{eq:algo_getAngle} diubah kejadian selanjutnya
dan mengkoreksi koordinat sebelumnya.
% 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}
% d_a[k]^2 & = d_a[k+1]^2 + l_a^2 + 2 d_a[k+1] l_a \cos{(\alpha[k+1])} \\
% \alpha[k+1] & = cos^{-1}\Bigg( \frac{l_a^2 + d_a[k+1]^2 -d_a[k]^2}{2d_a[k+1]l_a} \Bigg)
% \label{eq:algo_getAngle}
% \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}
% Strategi pada gambar~\ref{fig:strategiPenentuanKoordinat} hanya berlaku apabila target ukur berhenti. Apabila dinotasikan koordinat $(x_B^A, y_B^A)$ adalah koordinat relatif robot $B$ terhadap $A$,
% maka $(\dot{x}_B^A, \dot{y}_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.
% \begin{algorithm}
% \DontPrintSemicolon
% \KwInput{
% Integer $l_a>0$,
% $\tetangga_i=getConnectionRobot()$, }
% \KwOutput{$x_i^j$}
% \If{isInisilised() == false}{
% \tcc{inisialisasi}
% \tcc{getRandomDirection() akan mengembalikan sudur random antara 0 - 360}
% $dir = getRandomDirection()$\;
% $d_{before} = getDistanceFromSensor(\tetangga_i)$\;
% $r = \begin{bmatrix}
% l_a \cos(dir) \\
% l_a \sin(dir)
% \end{bmatrix}$\;
% \tcc{Menjalankan robot hingga mencapai setpoint}
% \While{isSetpointReached()}{
% $runRobotToSetpoint(r)$\;
% }
% \tcc{Mengambil jarak setelah robot mencapai setpoint}
% $d_{after} = getDistanceFromSensor(\tetangga_i)$\;
% \tcc{Mengkalkulasi sudut}
% $ang = cos^{-1}\Bigg[ \frac{l_a^2 + d_{after}^2 -d_{before}^2}{2d_{before}l_a} \Bigg]$\;
% }
% \Else{
% \tcc{mendapatkan infromasi state dari tetangga}
% $\begin{bmatrix}
% \dot{x}_B^A \\ \dot{y}_B^A
% \end{bmatrix} = getState()$ \;
% $ang = \alpha[k]+tan^{-1} \Big[ \frac{\dot{x}_B^A}{\dot{y}_B^A} \Big]$ \;
% }
% \If{$d_{before}<d_{after}$}
% {
% $ang = 180-ang$\;
% }
% \tcc{Menjadikan koordinat kartesian}
% \Return $x_i^j = \begin{bmatrix}
% d_{after} \cos(ang) \\
% d_{after} \sin(ang)
% \end{bmatrix}$\;
% \caption{\textit{Algoritma Cosinus}}
% \label{algo:algoritma_cosinus}
% \end{algorithm}
% \section{Implementasi Kendali Formasi Dengan Kendali Robot}
% Implementasi kendali formasi pada kendali robot akan menggabungkan persamaan state space pada~\eqref{eq:ss-formasi} dengan persamaan~\eqref{eq:ss-control-robot}.
% Implementasi ini akan menjadikan persamaan~\eqref{eq:ss-formasi} sebagai kendali utama sedangkan pada persamaan~\eqref{eq:ss-control-robot} adalah kendali tingkat bawah.
% Kendali utama akan diberikan input berupa jarak, $d$, sebagai tujuan pengendali. Sedangkan keluaran dari kendali tersebut adalah koordinat yang perlu dicapai oleh kendali tingkat bawah.
% Pembahasan akan diambil dari sudut pandang robot secara individual.
% Dengan menulis ulang persamaan~\eqref{eq:ss-control-robot} dengan notasi baru akan lebih mudah dalam penjelasaan lebih lanjut.
% \begin{align}
% \begin{cases}
% \dot{x_r} & = (A_r-B_rK_s)x_r + B_rN_rr \\
% y_r & = C_rx_r
% \end{cases}
% \label{eq:ss-control-robot-implement}
% \end{align}
% Apabila diasumsikan state pada persamaan~\eqref{eq:ss-formasi} sebagai berikut
% \begin{align*}
% x(t) & = \begin{bmatrix}
% y_r^T & y_{rj1}^T & y_{rj2}^T & \dots & y_{rjn}^T
% \end{bmatrix}^T , \quad (i,jn) \in \sisi
% \end{align*}
% maka $y_{rjn}$ adalah koordinat yang didapat dari algoritma atau hasil pengiriman data dari robot tetangga.
% Sedangkan $r$ pada persamaan~\eqref{eq:ss-control-robot-implement} adalah koordinat refrensi yang dihasilkan dari persamaan~\eqref{eq:ss-formasi}, $r = C_fx(t)$. Untuk lebih mudah dalam memahami dapat diperhatikan diagram pada gambar~\ref{fig:all-control}
% \section{Strategi Uji Coba}
% Strategi ujicoba akan diawali dengan menghitung kesetabilan menggunakan teori Euler pada Bab \ref{bab:dua:solusi_ODE}.
% Langkah selanjutnya adalah percobaan terhadap Algoritma~\ref{algo:algoritma_cosinus} dengan kondisi robot tetangga dalam keadaan statis.
% Percobaan tersebut bermaksut untuk menguji apakah algoritma berjalan dengan benar.
% Langkah terakhir adalah percobaan keseluruhan robot menggunakan Algoritma yang dikembangkan
% dengan skenario percobaan yang sama dengan penelitian sebelumnya oleh \kutip{Rozenheck2015}.
% \begin{figure}
% \centering
% \input{BAB4/img/implement-control.tex}
% \caption{Kendali keseluruhan}
% \label{fig:all-control}
% \end{figure}
% \subsection{Analisa Kesetabilan Model}
% Perhitungan kesetabilan akan menggunakan parameter model dari penelitian sebelumnya, dapat diperhatikan di Tabel \ref{tab:param_model}.
% Parameter tersebut akan diimplementasi di persamaan~\eqref{eq:ss1}-\eqref{eq:ss2}.
% Lalu ditentukan waktu sample dan diubah menjadi persamaan diskrit meggunakan persamaan~\eqref{eq:disstab}.
% Setelah itu akan diuji menggunakan diagram Gambar.\ref{fig:explicit_euler} untuk mengetahui kesetabilan model.
% Dari hasil analisa ini akan menghasilkan parameter waktu sampling ($h$) untuk menjalankan Algoritma~\ref{algo:eEuler}.
% Pembuktian secara grafik sangat dibutuhkan untuk mengetahui respon model.
\section{Analisa Algoritama Dengan Tetangga Statis}
Telah dijelaskan pada Bab \ref{bab:empat:Strategi_koordinat_tetangga} bahwa robot bergerak kearah yang random dengan jarak tertentu untuk mengetahui koordinat tetangga.
Analisa akan dilakukan dengan membandingkan berbagai jarak dari tinggat rendah, sedang, dan tinggi untuk mengetahui respon algoritma yang sesuai dan optimal untuk mendapatkan koordinat tetangga.
Dari hasil analisa ini akan menghasilkan jarak terbaik untuk algoritma menentukan koordinat tetangga. Pembuktian akan dilakukan secara menampilkan grafik respon.
% \subsection{Analisa Percobaan Keseluruhan}
% Percobaan keseluruhan akan menjalankan Algoritma \ref{algo:algoritma_cosinus} yang diterapkan pada seluruh robot. Lalu, seperti skenario penelitian sebelumnya salah satu robot diberikan kecepatan refrensi untuk bergerak ke arah tertentu.
% Dari hasil percobaan ini akan menghasilkan grafik respon dari keseluruhan robot terhadap perubahan error yang terjadi.
% Dengan hipotesis, keseluruhan robot akan menjaga jarak formasi dengan baik.
% \subsection{Jadwal Penelitian}
% \todo{
% buat draftnya dan pakek library ini
% \url{
% http://www.martin-kumm.de/wiki/doku.php?id=05Misc:A_LaTeX_package_for_gantt_plots
% }
% }
% \begin{enumerate}
% \item Analisa kestabilan model
% \begin{enumerate}
% \item Pengembangan dan test Individu Model(1)
% \end{enumerate}
% \item Analisa algoritma dengan tetangga statis
% \begin{enumerate}
% \item Pengembangan dan test Kendali (1)
% \item Pengembangan dan test Koneksi antara Individu Model dan Kendali (2)
% \item Pengembangan dan test Algoritma dengan tetangga yang statis (2)
% \end{enumerate}
% % \item Analisa algoritma keseluruhan
% % \begin{enumerate}
% % \item Pengembangan dan test Algoritma komunikasi antar kendali (3)
% % \item Pengembangan dan test Algoritma keseluruhan (3)
% % \end{enumerate}
% \end{enumerate}
% \begin{center}
% \begin{gantt}{7}{6}
% \begin{ganttitle}
% \numtitle{1}{1}{6}{1}
% \end{ganttitle}
% \ganttbar{1.a}{0}{1}
% \ganttbarcon{2.a}{1}{1}
% \ganttbarcon{2.b}{2}{2}
% \ganttbarcon{2.c}{4}{2}
% % \ganttbarcon{3.a}{6}{3}
% % \ganttbarcon{3.b}{9}{3}
% % \ganttbar{task 1}{0}{2}
% % \ganttbarcon{task 2}{2}{4}
% % \ganttbarcon{task 3}{8}{2}
% % \ganttmilestone[color=cyan]{task 4}{4}
% % \ganttbar{task 5}{2}{2}
% % \ganttbar[color=cyan]{task 6}{4}{4}
% % \ganttbar{task 7}{4}{2}
% % \ganttcon{4}{5}{4}{7}
% % \ganttmilestonecon{task 8}{7}
% % \ganttbarcon{task 9}{8}{2}
% \end{gantt}
% \end{center}
%% \subsection{

View File

@ -2,12 +2,16 @@
\chapter{\babLima}
% %-----------------------------------------------------------------------------%
\begin{figure}
\centering
\includegraphics[scale=.2]{BAB5/img/motion.png}
\caption{Grafik Pergerakan Robot Menggunakan Algoritma Cosinus danKendali Formasi}
\label{fig:hasil_motion_satu}
\end{figure}
Hasil pembahasan akan dilakukan dengan membahas hasil percobaan algoritma \textit{cosinus}.
Pembahasan hasil pertama akan membahas jalannya algoritma terhadap kendali formasi untuk
menentukan koordinat kondisi awal dan mengetahui langkah-langkah nya.
Pembahasa kedua akan membandingkan penerapan algoritma dengan tanpa algoritma sehingga mengetahui
spesifikasi kecepatan algoritma untuk menemukan koordinat kondisi awal.
Pemabahasan terakhir akan dilakukan percobaan dengan kuadran yang berbeda sehingga algoritma dapat
bekerja dengan baik untuk menemukan koordinat.
\section{Pergerakan Robot Terhadap Algoritma \textit{Cosinus}}
Kendali formasi berdasarkan jarak akan dijalankan secara simulasi menggunakan
MATLAB/GNU Octave dan algoritma cosinus akan dijalankan pertama kali untuk mendapatkan
@ -19,14 +23,15 @@ cosinus. dapat diperhatikan robot $R_1$ menjalankan algoritma cosinus langkah pe
robot berpindah sepanjang $l_a = 1$ sehingga setpoint kendali Persamaan (13) adalah
$r_2^c = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}^T$.
Setelah setpoint tercapai, robot $R_1$ mendapatkan jarak yang dibutuh
\begin{figure}
\centering
\includegraphics[scale=.2]{BAB5/img/distance norm.png}
\caption{Grafik Response Jarak Terhadap Waktu Pada Robot Dengan Kendali Formasi.}
\label{fig:hasil_motion_dua}
\includegraphics[scale=.2]{BAB5/img/motion.png}
\caption{Grafik Pergerakan Robot Menggunakan Algoritma Cosinus danKendali Formasi}
\label{fig:hasil_motion_satu}
\end{figure}
\section{Perbandingan Penerapan Algoritma \textit{Cosinus}}
untuk menyelesaikan Persamaan (21) dan (22) lalu dilanjutkan ke langkah dua dengan
berpindah ke koordinat (1,1) sehingga setpoint kendali Persamaan (13) adalah $r_2^c =
[1 1 0 0 0 0]^T$ . Setelah setpoint tercapai maka dilakukan pengecekan kejadian
@ -36,14 +41,15 @@ adalah $\alpha^\circ_i = 180^\circ + \zeta_i^a$ dan robot $R_2$ berada di kuadra
adalah $\alpha^\circ_i = 180^\circ - \zeta_i^a$ . Setelah koordinat ditemukan, maka kendali robot mulai berpindah
menggunakan kendali formasi Persamaan (16) dan (18) dengan kondisi koordinat awal state
berada di $t = 6$ dan akhir dari formasi di $t = 20$ pada Gambar 4.
\begin{figure}
\centering
\includegraphics[scale=.2]{BAB5/img/distance norm.png}
\caption{Grafik Response Jarak Terhadap Waktu Pada Robot Dengan Kendali Formasi.}
\label{fig:hasil_motion_tiga}
\label{fig:hasil_motion_dua}
\end{figure}
\section{Algoritma \textit{Cosinus} Di Seluruh Kuadran}
Seperti yang telah dijelaskan di pembahasan algoritma cosinus (subbab 2.4), bahwa kendali
formasi di Persamaan (16) dan (18) mengharuskan state dalam bentuk koordinat dimana
ketika kondisi awal robot tidak mengetahuinya, maka peran utama dari algoritma cosinus

BIN
COVER CD CASE TESIS.docx Normal file

Binary file not shown.

View File

@ -3,13 +3,27 @@
%---------------------------------------------------------------
\section{Kesimpulan}
Penelitian ini mengusulkan penggunaan algoritma cosinus untuk kendali formasi berdasarkan
jarak menggunakan tiga model robot holonomic. Dari hasil percobaan dicapai rata-rata waktu
sebesar 6.5 detik ketika algoritma cosinus menemukan keadaan awal kendali formasi
berdasarkan jarak menggunakan model robot holonomic.
Kendali formasi berdasarkan jarak telah dikembangkan fokus dibagian metode kendali dan masih perlu dibahas penerapannya.
Telah dikembangkan di penelitian sebelumnya dengan fokus di metode kendali formasi berdasarkan jarak dengan penerapan metode PI
dan analisa menghasilkan respon yang baik,
akan tetapi penerapan metode tersebut dikenyataannya tidak berjalan dengan baik karena
robot tidak mendapatkan kondisi awal yang digunakan untuk kendalinya.
Penelitian ini telah mengusulkan algoritma \textit{cosinus} sebagai solusi kondisi awal kendali.
Dari hasil percobaan, algoritma \textit{cosinus} dapat digunakan untuk
mendapatkan koordinat kondisi awal kendali formasi berdasarkan jarak,
algoritma dapat menemukan koordinat relatif tetangganya di semua kuadran,
dan rata-rata waktu yang dibutuhkan adalah 6.5 detik.
\section{Saran}
Penelitian ini dimulai dengan pengembangan dibagian kendali formasi berdasarkan jarak dan penerapannya pada model yang nyata.
Akan tetapi dalam proses penelitian terdapat permasalahan kondisi awal pada kendalinya sehingga pengembangan
kendali formasi berdasarkan jarak masih jauh dianggap sempurna.
Ditujuan kepada penelitian selanjutnya dibidang kendali formasi berdasarkan jarak terdapat peluang
penelitian di bagian penerapan kendali tanpa menggunakan robot asli yaitu menggunakan metode HIL (Hardware In Loop).
Saran ini disampaikan karena penelitian dibidang kendali formasi mengendalikan banyak robot.
Dengan menggunakan HIL pengembangan penerapan kendali menjadi terjangkau.
Saran ini disampaikan karena penelitian dibidang kendali formasi mengendalikan banyak robot dan juga pemodelan
robot yang nyata telah banyak dikembangkan maka penggunaan metode HIL sangat bermanfaat untuk melakukan analisis
kendali formasi.
Peluang penelitian selanjutnya juga dapat dimulai di bagian analisis kendali menggunakan metode MPC
(\textit{Model Predictive Control}) karena metode MPC banyak digunakan
untuk mengendalikan robot secara optimal dan \textit{state feedback} adalah dasar dari metode MPC.

View File

@ -326,3 +326,13 @@ and Mendil, Boubekeur},
doi = {10.1109/CCDC.2018.8407528}
}
@INPROCEEDINGS{li2015,
author={Li, Xue-ren and Li, Bo and Zhang, Peng and Zhang, Jian-ye and Zhang, Shuai},
booktitle={2015 8th International Symposium on Computational Intelligence and Design (ISCID)},
title={Large-Scale Unmanned Aerial Vehicle Formation Maintenance Algorithm Based on Virtual Structure},
year={2015},
volume={1},
number={},
pages={417-421},
doi={10.1109/ISCID.2015.5}}

BIN
STIKER CD TESIS.docx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -1,7 +1,7 @@
INFO: latexindent version 3.8.1, 2020-05-05, a script to indent .tex files
latexindent lives here: /usr/share/texlive/texmf-dist/scripts/latexindent/
Tue Jul 13 10:34:18 2021
Filename: /home/a2nr/Documents/-p-formation-control/OTHER/__latexindent_temp.tex
Sat Jul 24 21:12:26 2021
Filename: /home/a2nr/Documents/-p-formation-control/BAB1/__latexindent_temp.tex
INFO: Processing switches:
-y|--yaml: YAML settings specified via command line
-c|--cruft: cruft directory

View File

@ -12,10 +12,10 @@
\Var{\Kota} {Malang}
% Tulis kembali judul laporan, kali ini akan diubah menjadi huruf kapital
\Var{\Judul}{Kendali Formasi \textit{Mobile} Robot Berdasarkan Jarak Menggunakan Algoritma \textit{Cosinus} }
\Var{\Judul}{Algoritma \textit{Cosinus} Sebagai Solusi Keadaan Awal Pada Kendali Formasi Berdasarkan Jarak}
%
% Judul laporan.
\var{\judul}{Kendali Formasi \textit{Mobile} Robot Berdasarkan Jarak Menggunakan Algoritma \textit{Cosinus} }
\var{\judul}{Algoritma \textit{Cosinus} Sebagai Solusi Keadaan Awal Pada Kendali Formasi Berdasarkan Jarak}
%
% Tulis kembali judul laporan namun dengan bahasa Ingris
\var{\judulInggris}{Formation Control Distance-Based Using Cosinus Algoritm For Multi Mobile-Robot}

BIN
thesis-converted.docx Normal file

Binary file not shown.