

Introduction
Here it comes: GuYueJu has analyzed the job requirements of companies in Beijing, Shanghai, Jiangsu, and other places for those interested in or currently learning this career path, providing a clear, comprehensive, and systematic path for becoming a ROS development engineer. We hope that after reading, you will have a clearer understanding of the learning path for this profession and take the easiest way to become a ROS development engineer.


Overview of the Learning Path

Figure 1 Overview of the Learning Path


General Courses
1. Programming Skills
C++ and Python are the commonly used languages for ROS development. GuYueJu has screened universal video course resources for everyone. Beginners can systematically learn from the beginning, while those with a certain foundation can consolidate their weak points. The links are as follows:
C++:
https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=7599566888210019373
Python:
https://www.bilibili.com/video/BV1c4411e77t?from=search&seid=11983732368546479265
2. Software Development
ROS development engineers are responsible for the software system development, integration, and code testing of products based on the ROS system (such as AGV vehicles). This requires familiarity with embedded Linux operating systems, a certain understanding of data structure algorithms, network programming, process communication, and multithreading programming. For the cultivation of software development capabilities, we provide the following learning path and related learning resources:
⑴ Data Structure Algorithms
⑵ Software Engineering
https://www.bilibili.com/video/BV1Vt411V72G?from=search&seid=3752582165111199615
⑶ Network Programming, Process Communication, Multithreading Programming, and QT Frontend Development on Linux
-
The first aspect introduces basic knowledge of Linux, including development history, commonly used commands, file systems, etc.;
-
The second aspect mainly introduces basic knowledge of Qt, including how to write the first Qt program, signals and slots, Qt event mechanism, and MVC pattern;
-
The third part focuses on the core content of Qt interface design, including common controls, layout management, dialog boxes, and main forms;
-
The fourth part introduces typical applications of Qt through complete examples. “Linux and Qt Programming” is suitable for developers with a certain C/C++ programming foundation, and can also serve as a tool reference book during the Qt development process.

Figure 2 “Linux and Qt Programming”
3. General Theories and Technologies of Robotics
Through the first two steps of learning, you have acquired the ability to perform software development in a Linux environment. However, the software system developed is just a framework, and next we need to fill in the application-related content within the framework to gradually improve its functionality. This requires us to master the general theories and technologies of robotics and understand the basic applications of ROS development.
ROS development engineers need to complete the driving of various sensors and actuators under the ROS system, as well as data collection and processing. This requires mastering laser sensors, inertial sensors, as well as odometry, vision, ultrasonic, GPS, and various sensor data fusion processing and tuning methods.
⑵ 21 Lectures on ROS
After mastering the principles of common sensors, you can formally start the most critical content—the study of the Robot Operating System (ROS). Here we recommend “21 Lectures on ROS,” which uses the classic turtle case to explain the principles and cases of ROS in an easy-to-understand manner, making it easier to get started with ROS.

“21 Lectures on ROS”
⑶ Related Applications
The general applications are mainly divided into two major blocks: perception localization and path planning.
The mainstream localization technologies include ultrasonic navigation positioning, visual navigation positioning, GPS positioning, SLAM, etc. Currently, the mainstream robot localization technology is the SLAM technology (Simultaneous Localization and Mapping). For learning SLAM, we suggest: first familiarize yourself with the commonly used SLAM packages in ROS, and then you can theoretically study and practice the most commonly used VSLAM and Lidar SLAM technologies in robot mapping and navigation within ROS.
The performance of the path planning module directly affects the quality of the robot’s path selection and the smoothness of motion. The performance of path planning algorithms largely depends on the quality of the planning algorithms. How to quickly and accurately plan an efficient path in various scenarios while maintaining the ability to adapt to dynamic changes in the scene is the problem that path planning algorithms should address. We provide a guide to robot path planning algorithms based on grid maps to help everyone master the principles of commonly used path planning algorithms.

“Guide to Robot Path Planning Algorithms Based on Grid Maps”


Specialized Courses
Mobile robots are currently the most widely used application objects in ROS development. After the theoretical study of common robotic technologies in the third section, we provide the following practical course learning path:
⑴ Mastering the Control Algorithm Development Process – MATLAB + ROS Rapid Development of Control Algorithms
Mastering an efficient algorithm development process is an essential quality for becoming an excellent engineer. “MATLAB + ROS Rapid Development of Control Algorithms” demonstrates the process of quickly developing control algorithms through a trajectory tracking control algorithm development example—V-shaped development process. This technical route allows for rapid verification of one’s ideas and the accurate and quick generation of ROS C++ code to complete the control system development.
⑵ Trajectory Tracking Practice – MATLAB + ROS Development of MPC Trajectory Tracking Algorithm
After mastering the general algorithm development process, practical experience is needed to consolidate. Based on the V-shaped development process route, we develop the commonly used MPC (Model Predictive Control) trajectory tracking algorithm for mobile robots and unmanned vehicles. Ultimately, a Raspberry Pi serves as the main controller to control an RC remote-controlled car. This technical route also has the advantage of fully utilizing various interfaces of MATLAB to complete high-performance joint simulation experiments.
⑶ Autonomous Navigation Practice – How to Achieve Autonomous Navigation of ROS Robots – GuYue
Autonomous navigation is a function that mobile robots generally need to possess. Developing autonomous navigation functions requires understanding the ROS Navigation framework and its core function packages, configuring and implementing the autonomous navigation function of mobile robots in a simulation environment, and using SLAM to achieve simultaneous mapping and autonomous navigation, making your robot smarter.
Multi-joint robotic arms are an important component of industry, capable of executing various tasks and operations with precision. Multi-joint robotic arms are widely used in industrial and social life, such as machine loading, pick-and-place operations, welding, painting, inspection, assembly, mechanical manufacturing, and medical applications. Many companies are also recruiting talents for robotic arm development based on ROS, but the development of robotic arms has a relatively high threshold, and the theoretical part is difficult to get started. The recommended learning path is as follows:
⑴ Robotics – Kinematics, Dynamics Modeling, and Simulation Analysis
Robot kinematics is the main kinematic algorithm in controllers. Through robot kinematics, robots can accurately reach target points to perform various tasks and operations. Here we recommend a course that leads everyone to learn robot kinematics, master the derivation methods of forward kinematics, learn simulation of forward kinematics and methods for verifying the results of forward kinematics, as well as the basic concepts of robotics: position, posture, coordinate system description, mapping, and transformation.

⑵ Robotic Arm Control – Introduction to Robotic Arm Control Theory and Examples
The goal of studying robotics is to better control robots to achieve target functions. Given that the theory of robotic arm control is profound and requires a good mathematical foundation, GuYueJu recommends combining practical experience with theory for beginners in robotic arm control. In the course “Combining Software and Hardware to Play with ROS Robotic Arms,” students can learn about various aspects of this design project, how to build this robotic arm, how to use Lichuang EDA to draw schematics and PCBs, and how to develop a functional package under ROS.

Drones are the mainstream R&D products of many robotics companies. To ensure the safe operation of drones, simulation is crucial in the ROS development process of drones. Flight control development involves a wide range of knowledge and has a high threshold. Students interested in related positions need to be familiar with:
⑴ Drone Simulation and Development – Drone Simulation and Development Based on ROS
How to get started with drone path planning/visual algorithms is also a challenge for many beginners. Through the “Drone Simulation and Development Based on ROS” course, you will learn the complete code framework for PX4 drone 3D simulation development without real drone conditions, including building a simulation environment for intelligent drone development, initial autonomous flight of drones, and autonomous flight with laser radar obstacle avoidance, facilitating further intelligent development involving path planning and autonomous decision-making. On this basis, you can implement reinforcement learning, visual tracking guidance, laser/visual SLAM, and other R&D work. This course also provides some demo examples with complete interfaces.
⑵ Flight Control Development – Flight Control Principles and Practical Development
For systematic learning of flight control development, we recommend the classic textbook widely used in universities – “Embedded Flight Control Development Guide for Multirotor UAVs”. This book mainly focuses on the design of flight control systems for multirotor drones, starting from the basics of embedded systems, and introduces basic knowledge of drones and hardware composition in an easy-to-understand manner. It emphasizes the principles, foundations, and development processes of drone flight control systems, introduces several different calculation methods for the state estimation of flight vehicle systems, and provides corresponding practical code examples. This book elaborates on the design of drone systems from various aspects, providing cutting-edge knowledge and information that includes foundational knowledge for beginners and algorithm analysis for industry researchers, as well as principles of indoor positioning SLAM.

Figure 3 “Embedded Flight Control Development Guide for Multirotor UAVs”


Conclusion