Tooluse algorithm

NEAT tooluse learning - genetic algorithm

  Jan 2023 - May 2023


"Brain Networks Laboratory - Texas A&M University"

Implemented a tool use algorithm for moving target based on the previous work from Qinbo Li et al.'s work (Emergence of tool use in an articulated limb controlled by evolved neural circuits, 10.1109/IJCNN.2015.7280564) NEAT (Neuroevolution of augmenting topologies) is genetic algorithm for the generation of evolving artificial neural networks.

NEAT tool use learning demo video


RL for mobile robot navigation

Comparison between DWA and RL-based Navigation for Mobile Robot

  Nov 2021 - Dec 2021


"Intelligent Robotics course project - Texas A&M University"

This project aims to compare two robot navigation strategies: Reinforcement Learning (RL) based navigation and Dynamic Window Approach (DWA) based navigation. For RL-based navigation approach, Q-learning algorithm is employed as an off-policy RL method. This approach does not need to construct, store, or maintain an accurate global map to perform autonomous exploration, which is the benefit of using RL for robot navigation. DWA method is collision avoidance path planning technique used a lot in ROS Navigation package and effective especially in dynamical environment. A differential drive mobile robot with 2-dimensional LiDAR sensor and IMU sensor is tested in the Gazebo simulator environment using two algorithms. This project discusses the simulation results and compare two approaches.
Github

Q-learning mobile navigation demo video


Web application

Event Guest List Automation

  Nov 2021 - Dec 2021


"Software Engineering course project - Texas A&M University"

Our team developed a SaaS web application which is called ‘Event Guest List Automation’ using Ruby on rails and deployed it on Heroku using Agile methodologies. We implemented features to manage box office sales and guest lists from the databases and to edit/send RSVP/Referral emails to customers. I implemented Cucumber and RSpec test cases with Capybara to increase the test coverage and accomplished more than 70% of code coverage. BDD, TDD, Cucumber, RSpec, Agile.
Github

Event guest list automation demo video


Nuclear Safety Robot

Patrol mobile robot & Dual-arm manipulator

  Oct 2020 - Jun 2021


"Korea Atomic Energy Research Institute (KAERI) - Nuclear Robot Division"

1) Outdoor/Indoor mobile robot for monitoring radiation level



In this project, I am responsible for all the software parts of the mobile robot. We implemented mapping, localization, optimal path planning, and control using Robot Operating System (ROS). While doing research to use the topological map for global path planner, we are trying to reduce the computational burden and required storage for long-term autonomy and high precision.





Autonomous mobile robot indoor navigation via waypoints based on ROS. The playback speed is 4 times faster.





2) Reinforcement learning of KUKA iiwa dual-arm manipulator







Shared autonomy preliminary framework for remote operation in hot cell testbed. The playback speed is 4 times faster.







3D map of Cave from recorded data using Velodyne LiDAR



Servebot

Self-driving restaurant server robot

  2019


"We created a self-driving restaurant server robot."



When a customer enters and sits at a table, the mobile robot moves to the table to receive the customer's order. After a customer selects a menu through the UI of the mobile phone, the robot returns to the start point, the place to receive food. When the ordered food is ready, the manager loads the food onto the robot. The robot then delivers the food to the table where the customer is sitting. It detects dynamic objects and plans new local path while receiving lidar and camera sensor data. During the robot is moving to the table, if a dynamic object that interferes with the globally planned path within 2 meters, the robot avoids it, and safely get to the destination. After the customer took food from the robot, the robot returned to the start point.

[Interface Diagram]




Motor control while detecting lanes using OpenCV


Satellite Trajectory & Attitude Control

Collision avoidance around ISS, Multiple Satellites Formation Flying

  2016~2018


"Collision-Free Control for Formation Flying of Multiple Satellites Using Artificial Potential Field (APF)"

This study presents satellite formation flying trajectory design and control based on virtual structure while avoiding obstacles using the artificial potential field (APF). To derive virtual structure formation control laws based on the APF, a formation potential function is defined, which enables multiple satellites to maintain a polygonal or tetrahedral formation. As an efficient method to circumvent the local minimum which often occurs in APF-based approach, a rotational potential function is newly derived in a local coordinate frame in the APF framework. In order to design and control the formation flying trajectory considering collision avoidance, gradient-based control laws are derived from a total potential function which is defined by combining the formation and the rotational potential function. The proposed control law goes through stability analysis by Lyapunov stability theorem and Barbalat's lemma. By integrating the newly defined potential functions for collision avoidance and formation control, the control laws can be designed based on the APF that guarantees the stability of the control system. Also, by defining the potential functions as above, the SMC is applicable to further improve the performance of the control laws.


Earth-Centered Inertia Coordinate


"4 CubeSats - Collision Avoidance around International Space Station"

The 4 cube satellites are controlled to move toward their goal points and get their goal attitudes while avoiding collision. Their minimum Euclidian distance is 1.99meters.





"Formation Flying of Multiple Satellites in Space"

This is an example in which 6 cubesats are flying in a regular hexagonal formation. The playback speed was hundreds of times faster.





This is an example in which 5 satellites are flying in a regular pentagonal formation. One satellite fails in the process of avoiding an obstacle, and the remaining 4 satellites are controlled to maintain the square formation. The playback speed was hundreds of times faster.



CANYVAL-X

Cube Satellite Competition

  2015~2016


"CANYVAL-X: CubeSat Astronomy by NASA and Yonsei using Virtual Telescope Alignment eXperiment"

The CANYVAL-X mission consists of two CubeSats: one serves as the lens satellite and the other as a detector for satellite movement in a virtual telescope. The primary mission objective of CANYVAL-X is to build an inertial alignment system for the virtual telescope with respect to the target object (the Sun) during a few minutes by using two CubeSats, Tom (2U) and Jerry (1U). The secondary mission objective is to provide an opportunity for CubeSat development and flight operation by students. The objective of this mission is not to observe the Sun directly but to test the required technology for the virtual telescope system in space.




I worked as a researcher in development of an attitude determination and a control system for the CANYVAL-X mission with the Astrodynamics and Control Laboratory (ACL) team (ACL homepage).

We worked hard to verify separate space telescope technology using two CubeSats, Tom(2U) and Jerry(1U). After passing all the space environment tests to get into space in Korea Aerospace Research Institute, the CubeSats were launched by India's Polar Satellite Launch Vehicle in 2018. They orbited around the earth and Tom sent signals to our ground station that it was alive. However, due to a flaw in the communication system, we failed to carry out our mission. However, it was an exceptional experience for me to learn a lot about satellites and control systems.

Publication: CANYVAL-X Mission Development Using CubeSats (PDF / LINK)

Saljjakkoong

Can Satellite Competition

  2015


"Saljjakkoong: Gently Landing Can Satallite"

Satellite club "SatY" members and I participated in Can Satellite Competition. Our satellite name is "Saljjakkoong" and our mission goal was generating power using wind energy generator and controlling the satellite with reaction wheel so that the rotation axis could be vertical to the ground surface with under 10% error. If the altitude reaches under 40m from ground surface, then airbag was deployed so that the satellite can land saljjakkoong which means gently landing.






I was responsible for implementing communication system of the satellite using Zigbee and Arduino. We launched the satellite using small rocket and I received real time GPS, Attitude, Altitude data. The competition day was very windy so our satellite couldn’t control itself properly so it fell into a field.