Jekyll2024-02-09T17:55:01+09:00https://jh-byun.github.io/feed.xmlJeonghyun ByunDeveloping the control and planning algorithm for aerial manipulationJeonghyun Byunquswjdgus97@snu.ac.kr[PERSONAL RESEARCH] 3D Animation of the aerial plug-pulling task2023-07-05T00:00:00+09:002023-07-05T00:00:00+09:00https://jh-byun.github.io/study/matlab-aerial-plug-pulling-video<p>Aerial manipulation is one of the rising topics which can simultaneously leverage versatility of the robotic manipulator and maneuverability of the unmanned aerial vehicle (UAV).</p>
<p>Currently, I am conducting the research on the aerial plug-pulling task which entails two different dynamical models, a free-flight model and a plug-pulling model. Since my goal is to design an optimal controller which satisfactorily controls the given plug-pulling scenario, to validate my proposed assumptions and theorems, there needs an elaborate simulator. As a result I made a MATLAB simulation which visualizes the aerial manipulator holding onto the plug which is attached to the socket. The attached video is a 3D animation which shows the performance of my control law which is designed based on the plug-pulling situation.</p>
<figure class="video_container">
<center><video width="700" height="500" controls="true" allowfullscreen="true" poster="">
<source src="/videos/main_proposed.mp4" type="video/mp4" />
</video></center>
</figure>
<p>Source code of a MATLAB simulation based on <a href="https://jh-byun.github.io/pub/ICCAS/">[2021, ICCAS, Byun]</a> is uploaded on my private <a href="https://github.com/JH-Byun/aerial_manipulator_with_a_fixed_end-effector_position-matlab">Github repository</a>.</p>Jeonghyun Byunquswjdgus97@snu.ac.krAerial manipulation is one of the rising topics which can simultaneously leverage versatility of the robotic manipulator and maneuverability of the unmanned aerial vehicle (UAV).A hybrid controller enhancing transient performance for an aerial manipulator extracting a wedged object2023-05-12T00:00:00+09:002023-05-12T00:00:00+09:00https://jh-byun.github.io/pub/T-ASE<p><strong>Abstract</strong>: Autonomous aerial manipulation requires the capability to handle inevitable dynamic changes during physical interaction. Previously, very few studies have addressed the stability and transient performance of the scenarios involving abrupt changes in dynamics. This paper proposes a hybrid controller enhancing transient performance for an aerial manipulator extracting an object wedged in a static structure. This task incurs a significant jump in the interaction force on the end-effector so that the analysis using the concept of hybrid dynamical systems is required. To demonstrate the dynamic characteristics of the object-extracting aerial manipulator, we derive the dynamic equations for two flight modes, i.e., free-flight and object-extracting, and the rule of state jumps. Also, we design control strategies which enhance the transient performance during flight mode transition. Then, the stability of the proposed control law is proven, and the overshoot reduction after the object extraction is analyzed. To show the improved performance, we conduct plug-pulling experiments with a quadrotor-based aerial manipulator using the proposed controller and two different existing controllers. The comparative results confirm that our controller enables the aerial manipulator to maintain its stability after the flight mode transition and shows the best transient performance in overshoot minimization among three controllers.</p>
<center><img src="/images/tumbnails/plug-pulling-aerial-manipulator-v2.png" width="412" height="369" /></center>
<h2 id="bibtex-">Bibtex <a id="bibtex"></a></h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@article{byun2023hybrid,
title={A Hybrid Controller Enhancing Transient Performance for an Aerial Manipulator Extracting a Wedged Object},
author={Byun, Jeonghyun and Jang, Inkyu and Lee, Dongjae and Kim, H Jin},
journal={IEEE Transactions on Automation Science and Engineering},
year={2023},
publisher={IEEE}
}
</code></pre></div></div>Jeonghyun Byunquswjdgus97@snu.ac.krAbstract: Autonomous aerial manipulation requires the capability to handle inevitable dynamic changes during physical interaction. Previously, very few studies have addressed the stability and transient performance of the scenarios involving abrupt changes in dynamics. This paper proposes a hybrid controller enhancing transient performance for an aerial manipulator extracting an object wedged in a static structure. This task incurs a significant jump in the interaction force on the end-effector so that the analysis using the concept of hybrid dynamical systems is required. To demonstrate the dynamic characteristics of the object-extracting aerial manipulator, we derive the dynamic equations for two flight modes, i.e., free-flight and object-extracting, and the rule of state jumps. Also, we design control strategies which enhance the transient performance during flight mode transition. Then, the stability of the proposed control law is proven, and the overshoot reduction after the object extraction is analyzed. To show the improved performance, we conduct plug-pulling experiments with a quadrotor-based aerial manipulator using the proposed controller and two different existing controllers. The comparative results confirm that our controller enables the aerial manipulator to maintain its stability after the flight mode transition and shows the best transient performance in overshoot minimization among three controllers.Stable contact guaranteeing motion/force control for an aerial manipulator on an arbitrarily tilted surface2023-01-20T00:00:00+09:002023-01-20T00:00:00+09:00https://jh-byun.github.io/pub/ICRA<p><strong>Abstract</strong>: This study aims to design a motion/force controller for an aerial manipulator which guarantees the tracking of time-varying motion/force trajectories as well as the stability during the transition between free and contact motions. To this end, we model the force exerted on the end-effector as the Kelvin-Voigt linear model and estimate its parameters by recursive least-squares estimator. Then, the gains of the disturbance-observer (DOB)-based motion/force controller are calculated based on the stability conditions considering both the model uncertainties in the dynamic equation and switching between the free and contact motions. To validate the proposed controller, we conducted the time-varying motion/force tracking experiments with different approach speeds and orientations of the surface. The results show that our controller enables the aerial manipulator to track the time-varying motion/force trajectories.</p>
<center><img src="/images/header/publication_header.PNG" width="649" height="369" /></center>
<h2 id="bibtex-">Bibtex <a id="bibtex"></a></h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@inproceedings{byun2023stable,
title={Stable contact guaranteeing motion/force control for an aerial manipulator on an arbitrarily tilted surface},
author={Byun, Jeonghyun and Jang, Inkyu, Lee, Dongjae and Kim, H Jin},
booktitle={2023 IEEE International Conference on Robotics and Automation (ICRA)},
pages={--},
year={2023},
organization={IEEE}
}
</code></pre></div></div>Jeonghyun Byunquswjdgus97@snu.ac.krAbstract: This study aims to design a motion/force controller for an aerial manipulator which guarantees the tracking of time-varying motion/force trajectories as well as the stability during the transition between free and contact motions. To this end, we model the force exerted on the end-effector as the Kelvin-Voigt linear model and estimate its parameters by recursive least-squares estimator. Then, the gains of the disturbance-observer (DOB)-based motion/force controller are calculated based on the stability conditions considering both the model uncertainties in the dynamic equation and switching between the free and contact motions. To validate the proposed controller, we conducted the time-varying motion/force tracking experiments with different approach speeds and orientations of the surface. The results show that our controller enables the aerial manipulator to track the time-varying motion/force trajectories.[ROS] How to subscribe serial messages published from Arduino board as a ROS topic?2022-09-16T00:00:00+09:002022-09-16T00:00:00+09:00https://jh-byun.github.io/study/ROS-arduino-serial-communication<p><a href="https://www.arduino.cc/">Arduino</a> board is a type of MCU (MicroController Unit) which can transmit analog/digital sensor outputs via serial communication.</p>
<p><a href="https://www.arduino.cc/en/hardware">
<center><img src="/images/tumbnails/arduino_nano_image.jpg" width="324" height="184" /></center>
</a></p>
<p>If a sensor you use does not have its own ROS node or package to communicate via ROS messages, using Arduino board might be a solution. Therefore, there needs a way to convert the <strong>Serial messages</strong> generated from Arduino board to their corresponding <strong>ROS messages</strong>.</p>
<ul>
<li>Operating System: Ubuntu 18.04, 64 bits</li>
<li>ROS version: melodic</li>
</ul>
<h2 id="procedure">Procedure</h2>
<h3 id="installing-arduino-ide-on-ubuntu">Installing Arduino IDE on Ubuntu</h3>
<p>At first, download the appropriate version of .tar.gz file on your desired folder from <a href="https://www.arduino.cc/en/software">Arduino IDE</a> (usually on <em>Download</em> folder).</p>
<p>Then, unzip the downloaded .tar.gz file as follows:</p>
<pre>
<code>
tar -xf arduino-1.x.xx-linux64.tar.gz
</code>
</pre>
<p>On the upzipped folder, proceed to install Arduino IDE as follows:</p>
<pre>
<code>
cd arduino-1.x.xx
sudo ./install.sh
sudo chown $USER_NAME arduino
</code>
</pre>
<p>where $USER_NAME represents the name of your computer.</p>
<h3 id="environment-setting">Environment setting</h3>
<p>You can install the package which is utilized for converting serial messages generated from Arduino board to ROS message type as follows:</p>
<pre>
<code>
sudo apt-get install ros-indigo-rosserial-arduino
sudo apt-get install ros-indigo-rosserial
</code>
</pre>
<p>where indigo means your ROS version. In my case,</p>
<pre>
<code>
sudo apt-get install ros-melodic-rosserial-arduino
sudo apt-get install ros-melodic-rosserial
</code>
</pre>
<p>Then, download <em>ros_lib</em> library to ubuntu folder as follows:</p>
<pre>
<code>
cd /path/to/arduino/libraries
rm -rf ros_lib
rosrun rosserial_arduino make_libraries.py
</code>
</pre>
<h3 id="executing-some-example-sketches">Executing some example sketches</h3>
<p>With your arduino board connected, open your arduino IDE by typing <em>arduino</em> on your terminal. The following window will be opened:</p>
<p>
<center><img src="/images/tumbnails/arduino_IDE_image.PNG" width="420" height="500" /></center>
</a></p>
<p>Then, check the settings of “Board” and “Port” in “tools” located at the toolbar. <br /></p>
<p>Let’s assume that you are receiving an analog signal through A0 from a sensor (e.g., voltage sensor) and send it as a ROS topic message std_msgs/UInt16, you first write the following code on the arduino IDE.</p>
<pre>
<code>
#include <ros.h>
#include <std_msgs/UInt16.h>
ros::NodeHandle nh;
int sensorPin = A0;
int sensorValue = 0; // variable to store the value coming from the sensor
std_msgs::UInt16 signal;
ros::Publihser signal_pub("/signal", &signal)
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
// set baud rate as 57600
Serial.begin(57600)
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// publish the ROS topic
nh.initNode();
signal_pub.data = sensorValue;
nh.advertise(signal_pub);
// stop the program for 10 milliseconds:
delay(10);
}
</code>
</pre>
Click on the "check" symbol to check whether there is a grammar issue or not, then click on "upward" symbol to upload the code to your board.
Then, turn on your at least two terminal windows, then type the following commands:
<pre>
<code>
roscore
</code>
</pre>
<pre>
<code>
rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0 _baud:=57600
</code>
</pre>
Finally, check whether your topic is published via rostopic pub.
## Reference
https://www.arduino.cc/en/hardware <br />
http://wiki.ros.org/rosserial_arduino/Tutorials/Arduino%20IDE%20Setup
</ros.h></code></pre>Jeonghyun Byunquswjdgus97@snu.ac.krArduino board is a type of MCU (MicroController Unit) which can transmit analog/digital sensor outputs via serial communication.[ROS] How to fix .bag.active file?2022-08-04T00:00:00+09:002022-08-04T00:00:00+09:00https://jh-byun.github.io/study/ROS-bag-active-fix<p>While conducting a robot experiment with ROS (Robot Operating System), you usually use the <a href="http://wiki.ros.org/rosbag">rosbag</a> package to collect the data from the ROS topics.
However, if the <a href="http://wiki.ros.org/Maste">ROS master</a> computer is suddenly turned off due to the undesirable situations such as strong collision or static, rosbag node does not create .bag file.
Instead, .bag.active file is automatically created, which means that the <em>rosbag</em> process is unexpectedly terminated.
Since the .bag.active file cannot be read by the data analysis programs such as MATLAB, it is necessary to recover .bag file.</p>
<h2 id="procedure">Procedure</h2>
<p>Recovery process is actually simple.
If the created .bag.active file’s name is &&&& and the name of .bag file that you want to create it ####, the entire process is shown as below.</p>
<pre>
<code>
rosbag reindex &&&&.bag.active
rosbag fix &&&&.bag.active ####.bag
</code>
</pre>
<p>Then, .bag file named #### is created in the same folder.</p>
<h2 id="reference">Reference</h2>
<p>https://answers.ros.org/question/378372/bagactive-file-creating/</p>Jeonghyun Byunquswjdgus97@snu.ac.krWhile conducting a robot experiment with ROS (Robot Operating System), you usually use the rosbag package to collect the data from the ROS topics. However, if the ROS master computer is suddenly turned off due to the undesirable situations such as strong collision or static, rosbag node does not create .bag file. Instead, .bag.active file is automatically created, which means that the rosbag process is unexpectedly terminated. Since the .bag.active file cannot be read by the data analysis programs such as MATLAB, it is necessary to recover .bag file.[Ubuntu 18.04] Bind a USB device under a static name2022-07-22T00:00:00+09:002022-07-22T00:00:00+09:00https://jh-byun.github.io/study/ubuntu-USB-static-name<p>When you use multiple USB devices with your Ubuntu 18.04, their kernel information (e.g. /dev/ttyUSB0) might vary every time you connect and disconnect them to your PC.
Therefore, if you have something to do with the kernel information of a USB device, you need to set the kernel name of the USB device.
In this post, I will show you how to bind a USB device under a static name.</p>
<h2 id="procedure">Procedure</h2>
<h3 id="1-find-the-kernel-name-of-the-usb-device-you-want-to-bind">1. Find the kernel name of the USB device you want to bind</h3>
<p>At first, connect your USB device to your PC and type the following command on the terminal.</p>
<pre>
<code>
ls /dev/
</code>
</pre>
<p>Then, disconnect the USB device and type the above command again. If your USB device works properly, one kernel will be missing.
Memorize or note the name of missing kernel.
For the explanation, I will use “/dev/ttyUSB0” as an example of a kernel’s name.</p>
<h3 id="2-find-information-on-the-connected-usb">2. Find information on the connected USB</h3>
<p>Connect the USB device again, and type the following command.</p>
<pre>
<code>
udevadm info --name=/dev/ttyUSB0 --attribute-walk
</code>
</pre>
<p>On your terminal, the <em>Udevadm</em> information is shown.
Among a number of results, find the lines shown as follows:
<br /> ——————————————————-
<br /> …
<br /> ATTRS{devnum}==”x”
<br /> ATTRS{devpath}==”y”
<br /> <strong>ATTRS{idProduct}==”zzzz”</strong>
<br /> <strong>ATTRS{idVendor}==”wwww”</strong>
<br /> ATTRS{ltm_capable}==”no”
<br /> …
<br /> ——————————————————-</p>
<h3 id="3-edit-or-create-a-file-related-to-the-kernel-information">3. Edit or create a file related to the kernel information</h3>
<p>Move to the directory <em>/etc/udev/rules.d/</em>,</p>
<pre>
<code>
cd /etc/udev/rules.d
</code>
</pre>
<p>then create a file 99-usb-serial.rules.</p>
<pre>
<code>
sudo gedit 99-usb-serial.rules
</code>
</pre>
<p>In this file, type the following statements with your device name:
<br /> ——————————————————-
<br /> SUBSYSTEM==”tty”, ATTRS{idVendor}==”wwww”, ATTRS{idProduct}==”zzzz”, SYMLINK+=”device_name”
<br /> ——————————————————-</p>
<h3 id="4-load-a-new-rule-and-verify-the-change">4. Load a new rule and verify the change</h3>
<p>Load the new rule,</p>
<pre>
<code>
sudo udevadm trigger
</code>
</pre>
<p>then check if the static name setting is done properly</p>
<pre>
<code>
ls -l /dev/device_name
</code>
</pre>
<h2 id="reference">Reference</h2>
<p>https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name</p>Jeonghyun Byunquswjdgus97@snu.ac.krWhen you use multiple USB devices with your Ubuntu 18.04, their kernel information (e.g. /dev/ttyUSB0) might vary every time you connect and disconnect them to your PC. Therefore, if you have something to do with the kernel information of a USB device, you need to set the kernel name of the USB device. In this post, I will show you how to bind a USB device under a static name.Robust Control of the Aerial Manipulator with a Fixed End-effector Position2021-12-28T00:00:00+09:002021-12-28T00:00:00+09:00https://jh-byun.github.io/pub/ICCAS<p><strong>Abstract</strong>: The necessity for aerial manipulation while grasping a fixed point is on the rise to broaden the range of tasks that can be performed with flying robots such as plug-pulling or drawer knob grasping. In this paper, a robust controller for the aerial manipulator with a fixed end-effector position is designed, and stability analysis is performed with the proposed control law. Using the constrained Euler-Lagrange equation, a dynamic equation for the aerial manipulator which is freely rotating around the fixed point is derived and a disturbance-observer-based (DOB) control law is constructed. A singular perturbation form of the closed-loop system is derived and utilized to conduct the stability analysis. To verify the proposed
controller, a numerical simulation was conducted. The simulation results show that the Euler angles satisfactorily follow their desired trajectory. Accordingly, the proposed controller could be applied to actual experiments for future works.</p>
<center><img src="/images/tumbnails/aerial_plug_pulling.PNG" width="550" height="550" /></center>
<h2 id="oral-presentation-video">Oral Presentation Video</h2>
<figure class="video_container">
<center><video width="700" height="500" controls="true" allowfullscreen="true" poster="">
<source src="/videos/JHByun_ICCAS_2021_presentation_video_v2.mp4" type="video/mp4" />
</video></center>
</figure>
<h2 id="bibtex-">Bibtex <a id="bibtex"></a></h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@inproceedings{byun2021robust,
title={Robust Control of the Aerial Manipulator with a Fixed End-effector Position},
author={Byun, Jeonghyun and Kim, H Jin},
booktitle={2021 21st International Conference on Control, Automation and Systems (ICCAS)},
pages={424--429},
year={2021},
organization={IEEE}
}
</code></pre></div></div>Jeonghyun Byunquswjdgus97@snu.ac.krAbstract: The necessity for aerial manipulation while grasping a fixed point is on the rise to broaden the range of tasks that can be performed with flying robots such as plug-pulling or drawer knob grasping. In this paper, a robust controller for the aerial manipulator with a fixed end-effector position is designed, and stability analysis is performed with the proposed control law. Using the constrained Euler-Lagrange equation, a dynamic equation for the aerial manipulator which is freely rotating around the fixed point is derived and a disturbance-observer-based (DOB) control law is constructed. A singular perturbation form of the closed-loop system is derived and utilized to conduct the stability analysis. To verify the proposed controller, a numerical simulation was conducted. The simulation results show that the Euler angles satisfactorily follow their desired trajectory. Accordingly, the proposed controller could be applied to actual experiments for future works.Stability and robustness analysis of plug-pulling using an aerial manipulator2021-07-02T00:00:00+09:002021-07-02T00:00:00+09:00https://jh-byun.github.io/pub/IROS<p><strong>Abstract</strong>: In this paper, an autonomous aerial manipulation task of pulling a plug out of an electric socket is conducted, where maintaining the stability and robustness is challenging due to sudden disappearance of a large interaction force. The abrupt change in the dynamical model before and after the separation of the plug can cause destabilization or mission failure. To accomplish aerial plug-pulling, we employ the concept of hybrid automata to divide the task into three operative modes, i.e, wire-pulling, stabilizing, and free-flight. Also, a strategy for trajectory generation and a design of disturbance-observer-based controllers for each operative mode are presented. Furthermore, the theory of hybrid automata is used to prove the stability and robustness during the mode transition. We validate the proposed trajectory generation and control method by an actual wire-pulling experiment with a multirotor-based aerial manipulator.</p>
<center><img src="/images/tumbnails/wire_pulling_aerial_manipiulator.png" width="649" height="369" /></center>
<h2 id="bibtex-">Bibtex <a id="bibtex"></a></h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@inproceedings{byun2021stability,
title={Stability and Robustness Analysis of Plug-Pulling using an Aerial Manipulator},
author={Byun, Jeonghyun and Lee, Dongjae and Seo, Hoseong and Jang, Inkyu and Choi, Jeongjun and Kim, H Jin},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
pages={4199--4206},
year={2021},
organization={IEEE}
}
</code></pre></div></div>Jeonghyun Byunquswjdgus97@snu.ac.krAbstract: In this paper, an autonomous aerial manipulation task of pulling a plug out of an electric socket is conducted, where maintaining the stability and robustness is challenging due to sudden disappearance of a large interaction force. The abrupt change in the dynamical model before and after the separation of the plug can cause destabilization or mission failure. To accomplish aerial plug-pulling, we employ the concept of hybrid automata to divide the task into three operative modes, i.e, wire-pulling, stabilizing, and free-flight. Also, a strategy for trajectory generation and a design of disturbance-observer-based controllers for each operative mode are presented. Furthermore, the theory of hybrid automata is used to prove the stability and robustness during the mode transition. We validate the proposed trajectory generation and control method by an actual wire-pulling experiment with a multirotor-based aerial manipulator.[STUDY] Terminologies and Concepts used in Control and Estimation Theory - 12021-06-13T00:00:00+09:002021-06-13T00:00:00+09:00https://jh-byun.github.io/study/concepts-and-terminonogies-used-in-control-theory<ol>
<li><strong>Control methods</strong>
<ul>
<li>Impedance control: A dynamic control method which relates force and position.
<ul>
<li>Mechanical impedance: The ratio of force output to motion input</li>
<li>Purpose of this method is to regulate the relationship between force and position. Thus, it requires a position, velocity or acceleration input to control the force output value.</li>
<li>It is a conventional control method we use, which makes an actuator input using desired position, velocity or acceleration.</li>
</ul>
</li>
<li>Admittance control: A dynamic control method which relates force and position, but in the inverse way of impedance control.
<ul>
<li>Mechanical admittance: The ratio of motion output to force input</li>
<li>It requires a force input to control the position, velocity or acceleration.</li>
</ul>
</li>
<li>Bang-singular control: It is a control method which consists of both bang-bang portion and singular portion.
<ul>
<li>Bang-bang control: A kind of feedback controller which abruptly switches its control law between two discrete phases.</li>
<li>Singular control: An optimal control problem which cannot be solved by Pontryagin’s minimum principle.
<ul>
<li>Pontyagin’s maximum principle is a sort of optimal control theory.</li>
<li>This principle is a way to design the control law which enables a dynamical system to switch from one phase to another phase under some constraints on both state and input.</li>
</ul>
</li>
<li>According to the optimal control theory, it is proven that <strong>the time-optimal trajectory of the input-affined system is bang singular.</strong></li>
</ul>
</li>
<li>Event-triggered control: A control system which do not send any actuator signal unless the “event-triggering condition” is invoked.</li>
</ul>
</li>
<li><strong>Control Systems</strong>
<ul>
<li>Networked control system (NCS): The closed-loop system which is controlled by communication networks.
<ul>
<li>There are four crucial elements: sensor + controller + actuator + <strong>communication network</strong></li>
<li>It facilitates the system to conduct some specific tasks which require the comminication between two places wihch are far from each other.</li>
<li>It can reduce its communication load while using event-triggered control.</li>
</ul>
</li>
<li>Fuzzy control system: A control system based on fuzzy logic, which is a mathematical system that analyzes analog input values in terms of logical variables that take on discrete values, 0 or 1.</li>
</ul>
</li>
<li><strong>Sets</strong>
<ul>
<li>Convex hull: The smallest convex set which contains a dot or a region which are given in the form of set.
<ul>
<li>Convex set: For a set $A$ in Euclidean space, $A$ is called a <strong>convex set</strong> if we pick two arbitrary points inside $A$, then a segment which connects the two points is always the element of $A$. <br /></li>
</ul>
</li>
<li>Compact set
<ul>
<li>$S$ is covered by <em>a collection of open sets</em>, $O$ ($S \subset $ (at least one member of) $O$), and said to compact if $S$ is covered by some finite set of members of $O$ for every covering $O$ of $S$ by open sets.</li>
<li>In Euclidean space ($\mathbb{R}^{n}$), it is defined as a <strong>closed</strong> and <strong>bounded</strong> subset of Euclidean space, e.g. closed interval, rectagnle, finite set of points. This property is proved in detail in [4].</li>
</ul>
</li>
</ul>
</li>
<li><strong>Functions</strong>
<ul>
<li>Class $K$ function
<ul>
<li>a continuous function $\alpha$: [0,a) $\rightarrow$ [0,$\infty$)</li>
<li>a strictly increasing function</li>
<li>$\alpha(0)$ =$0$</li>
<li>cf) class $K_{\infty}$ function: a class $K$ function which is radially unbounded <br /></li>
</ul>
</li>
<li>Class $KL$ function
<ul>
<li>a continuous function $\beta$: [0,a) x $[0,\infty]$ $\rightarrow$ [0,$\infty$)</li>
<li>for each fixed $s$, the function $\beta(r,s)$ belongs to class $K$</li>
<li>for each fixed $r$, the function $\beta(r,s)$ is decreasing with respect to $s$ and is s.t. $\beta(r,s)$ $\rightarrow$ 0 for $s$ $\rightarrow$ $\infty$</li>
</ul>
</li>
</ul>
</li>
<li><strong>S-procedure</strong>: The S-procedure, also called as “S-lemma” is defined as follows.
<ul>
<li><strong>Definition</strong>: A mathematical process to find the equivalent <em>linear matrix inequality (LMI)</em> that makes a <em>particular quadratic inequality</em>.</li>
<li><strong>Procedure (w/o proof)</strong>
<ul>
<li><em>IF</em> $0 \leq z^TF_{0}z \, \rightarrow \, 0 \leq z^TF_{1}z$ and there exists $z_0 \, s.t. \, 0 \leq z_{0}^{T}F_{0}z_{0}$</li>
<li><em>THEN</em> there exists a nonnegative $\tau \, s.t. \, \tau F_{1} \leq F_{0}$</li>
</ul>
</li>
</ul>
</li>
</ol>
<h2 id="reference">Reference</h2>
<p>[1] <a href="https://en.wikipedia.org/wiki/Convex_set">https://en.wikipedia.org/wiki/Convex_set</a> <br />
[2] <a href="https://en.wikipedia.org/wiki/Impedance_control">https://en.wikipedia.org/wiki/Impedance_control</a> <br />
[3] <a href="https://en.wikipedia.org/wiki/Bang%E2%80%93bang_control">https://en.wikipedia.org/wiki/Bang%E2%80%93bang_control</a> <br />
[4] <a href="https://en.wikipedia.org/wiki/Singular_control">https://en.wikipedia.org/wiki/Singular_control</a> <br />
[5] <a href="https://en.wikipedia.org/wiki/Pontryagin%27s_maximum_principle">https://en.wikipedia.org/wiki/Pontryagin%27s_maximum_principle</a> <br />
[6] <a href="https://en.wikipedia.org/wiki/Networked_control_system">https://en.wikipedia.org/wiki/Networked_control_system</a> <br />
[7] <a href="https://en.wikipedia.org/wiki/Fuzzy_control_system#Fuzzy_control_in_detail">https://en.wikipedia.org/wiki/Fuzzy_control_system#Fuzzy_control_in_detail</a> <br />
[8] <a href="https://www.diva-portal.org/smash/get/diva2:586391/FULLTEXT02">Heemels, W. P. M. H., Karl Henrik Johansson, and Paulo Tabuada. “An introduction to event-triggered and self-triggered control.” 2012 ieee 51st ieee conference on decision and control (cdc). IEEE, 2012.</a> <br />
[9] <a href="https://en.wikipedia.org/wiki/Class_kappa_function">https://en.wikipedia.org/wiki/Class_kappa_function</a> <br />
[10] <a href="https://en.wikipedia.org/wiki/Class_kappa-ell_function">https://en.wikipedia.org/wiki/Class_kappa-ell_function</a> <br />
[11] <a href="https://en.wikipedia.org/wiki/Compact_space">https://en.wikipedia.org/wiki/Compact_space</a> <br />
[12] <a href="http://www-math.mit.edu/~djk/calculus_beginners/chapter16/section02.html">http://www-math.mit.edu/~djk/calculus_beginners/chapter16/section02.html</a> <br /></p>Jeonghyun Byunquswjdgus97@snu.ac.krControl methods Impedance control: A dynamic control method which relates force and position. Mechanical impedance: The ratio of force output to motion input Purpose of this method is to regulate the relationship between force and position. Thus, it requires a position, velocity or acceleration input to control the force output value. It is a conventional control method we use, which makes an actuator input using desired position, velocity or acceleration. Admittance control: A dynamic control method which relates force and position, but in the inverse way of impedance control. Mechanical admittance: The ratio of motion output to force input It requires a force input to control the position, velocity or acceleration. Bang-singular control: It is a control method which consists of both bang-bang portion and singular portion. Bang-bang control: A kind of feedback controller which abruptly switches its control law between two discrete phases. Singular control: An optimal control problem which cannot be solved by Pontryagin’s minimum principle. Pontyagin’s maximum principle is a sort of optimal control theory. This principle is a way to design the control law which enables a dynamical system to switch from one phase to another phase under some constraints on both state and input. According to the optimal control theory, it is proven that the time-optimal trajectory of the input-affined system is bang singular. Event-triggered control: A control system which do not send any actuator signal unless the “event-triggering condition” is invoked.[Ubuntu 20.04] Enable the Ctrl+Shift+E Key setting for splitting the terminator window vertically.2021-03-30T00:00:00+09:002021-03-30T00:00:00+09:00https://jh-byun.github.io/study/terminator-split-vertically<h2 id="motivation">Motivation</h2>
<p>If we upgrade our ubuntu version to 20.04 and install TERMINATOR, there exists a problem that the key setting Ctrl+Shit+E doesn’t work for splitting its window vertically.
To resolve this problem, I search on google and found the appropriate solution.</p>
<h2 id="solution">Solution</h2>
<ol>
<li>Download Terminator on your Ubuntu 20.04.</li>
<li>Open the terminal (Ctrl + Alt + t) and try Ctrl + Shift + E.</li>
<li>If the underlined letter ‘<u>e</u>’ appears and the terminal stops operating, it means that there exist a problem in vertically splitting.</li>
<li>In the terminal window, type ‘ibus-setup’.
<div class="language-terminal highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="go">ibus-setup
</span></code></pre></div> </div>
</li>
<li>A window will appear, then click on the tab ‘Emoji’ and delete the keybindings for “Emoji annotation”.</li>
</ol>
<h2 id="reference">Reference</h2>
<p>[1] <a href="https://snowdeer.github.io/mac-os/2020/09/22/ctrl-shift-e-key-on-ubuntu-20p04/">https://snowdeer.github.io/mac-os/2020/09/22/ctrl-shift-e-key-on-ubuntu-20p04/</a> (Written in Korean)</p>Jeonghyun Byunquswjdgus97@snu.ac.krMotivation If we upgrade our ubuntu version to 20.04 and install TERMINATOR, there exists a problem that the key setting Ctrl+Shit+E doesn’t work for splitting its window vertically. To resolve this problem, I search on google and found the appropriate solution.