Developing Industry Autonomous Mobile Robot using ROS

Prepared by: Muhammad Naqib Nazmi bin Zulkifli, Shafishuhaza Sahlan

On 11 August 2021, a webinar on the implementation of robot operating system (ROS) in developing industry-standard autonomous mobile robot was organised by the Centre for Artificial Intelligence and Robotics (CAIRO), Universiti Teknologi Malaysia (UTM) Interns. CAIRO UTM Interns is an industrial training group supervised by CAIRO UTM members, Assoc. Prof. Dr. Yeong Che Fai and Ir. Dr. Shafishuhaza Sahlan.

The webinar was delivered by Mr. Patrick Chin Jun Hua, the R&D Software Department Manager at DF Automation & Robotics Sdn. Bhd. with Mr. Muhammad Naqib Nazmi Zulkifli, a fellow intern undergoing industrial training in CAIRO UTM as moderator.

Mr. Patrick graduated from UTM with a first-class degree in Bachelor of Engineering (B.Eng) in Mechatronics. During his final year project, he collaborated with Mr. Khor Kang Xiang on Compact Rehabilitation Robot (CR2) project. Their final year project has won more than 20 awards both national and international awards from multiple countries including the UK, Korea and Indonesia. He also won the Malakoff Academic Excellence Award in 2013.

During his university years, Mr. Patrick was involved in ROBOCON and had contributed his time vastly into programming especially in the development of firmware of the main controller board for robots which were subsequently used for several years even after he graduated. His passion for programming pushed him to develop a cutting-edge custom software called NavWiz using ROS at DF Automation & Robotics Sdn. Bhd., which currently used to control their Autonomous Mobile Robot.

Mr. Patrick started his talk by introducing the audience to the basics of ROS. ROS or robot operating system was not the same as a real operating system. Even though it is called an operating system, it runs on top of Ubuntu Linux, which is basically an open-source robotic software framework. The meaning of framework here represents the set of commonly used libraries and tools that are useful in building robot applications. It is also considered to be a communication framework that allowed different processes to communicate with each other using nodes and topics.

In his talk, Mr. Patrick highlighted the ecosystem with ROS that could be used to design any robotics applications, as shown in Figure 1.


Figure 1

He also encouraged the audience to start using ROS by following the ROS Wiki, the installation guide and the tutorials provided. According to him, to implement ROS, we might consider the use of hardware such as the integrated TurtleBot, or simply using a simulation method such as Gazebo simulation that will work without any required hardware.

He then continued by explaining in detail on robot user interface utilized to interact with a robot. In DF Automation & Robotics Sdn. Bhd., the interfacing was implemented using a touch panel where the user could access NavWiz to see the status of the robot, as well as create tasks for the robot. A web-based user interface application is also utilized instead of desktop application, since no installation is required. A web-based user interface allows access on any device over the local WIFI network as well as on cross-platform with any operating system.

In the beginning, in order to use the web-based user interface application for ROS, he implemented the robot web tools framework that comes with ROS. However, this framework requires authentication and authorization each time the robot wants to execute a function and expose a certain message that would display at the user interface. Mr. Patrick was then solved it using an open-source framework called SockJS-tornado server and Django REST Framework.

He further explained the architecture of the robot web framework as depicted in Figure 2. He also explained in detail, the difference between Django REST API and SockJS, as shown in Figure 3.


Figure 2


Figure 3

Finally, Mr. Patrick shared some useful and encouraging tips on how to improve ourselves to become better programmers. His first tip was to learn by doing the programming to identify the problem in detail and develop a programme to tackle it. His next tip was to read the source code from a particular library beforehand and try to understand what the code basically means or if possible, compare our codes with others to see the difference in coding pattern.

He also encouraged the audience to practice with algorithms since most software companies will hire through programming interviews where they will test candidates on algorithms. He also stressed out to always updated on the latest development in the software field which is a fast-developing field. Mr. Patrick suggested all to read blogs, news sites and join any online courses, to refresh our knowledge as well as gain new knowledge. His last tip was to balance our technical and domain knowledge. Technical knowledge here refers to programming language and framework knowledge while domain knowledge is considered to be the industry-specific knowledge. He emphasized that the technical knowledge can be obtained from our study years while the domain knowledge can be acquired through experience which makes us more valuable over time.

The webinar concluded by Mr. Patrick emphasized on the versatile robotics software framework that essential in order to implement any robotics application. Currently, there are many open-source tools available online that can be used to accommodate the ROS applications. Mr. Patrick reminded the audiences that there will always be a time to learn and attempt new programming languages especially in the robotics field.

In conclusion, the talk was very comprehensive and inspiring on how Mr. Patrick specifically utilized his passion and skills in programming to build NavWiz from the ground up that helped DF Automation & Robotics Sdn. Bhd. as a successful robotics company.

/ Department of Deputy Vice-Chancellor (Research and Innovation)

About The Author