My current research is in intersection between artificial intelligence (AI), especially machine learning, and robotics. I develop a learning mechanism for a robot to learn how to use a tool to solve a problem. When the suitable tool is not available, based on its experience, the robot has to propose a new tool design which will be printed via a 3D printer.
I learn robot’s action model using Inductive Logic Programming (ILP) mechanism. I also utilise other AI techniques such as symbolic planning and constraint solving. Physics simulator is also another important component in my system, as it will minimise the experiments in the real world.
In practice, I use Baxter robot (in real robot and simulation) for my experiments. In term of programming languages, I use Python – C++ for low level layer, and SWI PROLOG – eCLiPSe (constraint solver) for high level one. I also work with ROS (Robot Operating System) as the middleware and some of its “subsystems” are implemented (or will be implemented) in my system : OpenCV, PCL, MoveIt. Gazebo is chosen as the physics simulator for my project.
As a side project, I also work with a 3D printed mini rescue robot. It is based on RaspberryPi 2 and using Python as its programming language.
I have interest in reinforcement learning application in mobile and legged robots. I have used Webots as simulation software, LEGO NXT robot (programmed using NXC), and our self-customised robot. Together with my colleagues, we have been developed simple prototypes of rescue and telepresence robots.
Another field that I have been working on is industrial automation. Together with my students, we has attempted to build an automation system for home and industrial application. Generally we use Programmable Logic Controller (PLC) and Supervisory Control And Data Acquisition (SCADA) in our system. I also interested in communication between multi vendor hardware and software in industrial automation context.