revisi yudisium
parent
4aa147e808
commit
e6babdc70f
|
@ -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": []
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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.
|
||||
|
|
328
BAB2/bab2.tex
328
BAB2/bab2.tex
|
@ -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}
|
||||
|
|
542
BAB4/bab4.tex
542
BAB4/bab4.tex
|
@ -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{
|
||||
|
|
|
@ -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
|
||||
|
|
Binary file not shown.
|
@ -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.
|
|
@ -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}}
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue