The post has been translated automatically. Original language: Russian Kazakh
In recent years, robotics has ceased to be something out of the realm of science fiction and has become an actively developing field where innovations occur every day. At the center of many modern robots is ROS, an operating system for robots. But what is it and why is it so important?
ROS (Robot Operating System) is not really an operating system in the traditional sense, like Windows or Linux. It is a set of tools, libraries and frameworks that help developers create and program robots. ROS was developed to simplify the creation of complex robotic systems by using a modular architecture where each component (node) It can work independently, exchanging data with other components.
ROS was introduced in 2007 and quickly gained popularity among developers due to its flexibility and openness. However, over time, it became apparent that the system needed to be updated for larger-scale and mission-critical applications such as autonomous cars or robots that operate in difficult industrial environments.
This is how ROS 2 was born, which began development in 2014. The main difference between ROS 2 and the original version is the support for multithreading, better real—time operation, as well as the ability to effectively interact between different devices in distributed systems.
One of the main advantages of ROS is its openness and modularity. This means that everyone can make changes to the code, create new libraries and share their solutions with the community. Thanks to this, developers from all over the world have created thousands of packages that cover almost all aspects of robotics: from motor control to complex navigation.
Another reason for the popularity of ROS is its active community. This means that if you have a problem, you will almost always find a solution or help in forums, repositories, or documentation. Moreover, ROS is actively used in academic circles, which makes it not only a powerful development tool, but also an excellent educational platform.

An example of a robot called turtlebot controlled by ROS
Communication architecture:
- In ROS 1, nodes communicate through a central element, the ROS Master, which monitors all connected nodes. This creates a dependency of the system on one component, and if the wizard fails, the entire system is disrupted.
- In ROS 2, the system is decentralized through the use of DDS (Data Distribution Service). This makes the system more flexible and resilient to failures, as nodes can communicate directly without the need for a central master.
Multithreading implementation and real-time support:
- In ROS 1, multithreading is implemented at a basic level, which limits work with real-time tasks.
- ROS 2 has added support for real-time tasks and improved multithreading, making the system more productive and suitable for complex applications such as autonomous cars or industrial robots.
Cross-platform:
- ROS 1 was originally developed only for Linux, although there are partial implementations for Windows and macOS.
- ROS 2 was designed to support multiple operating systems at once, including Linux, Windows and macOS, which expands the possibilities of its use in different environments.
Safety:
- ROS 1 did not initially take into account security requirements. For systems operating in environments where data security is important, additional solutions had to be implemented.
- ROS 2 was originally designed with security support, including data encryption, authentication, and access control, making it more suitable for modern mission-critical systems.
These improvements make ROS 2 more suitable for working with robots in large-scale projects and with high reliability and safety requirements.
The long—term supported (LTS) versions of ROS 2 are the most stable and proven versions that have been receiving security updates and bug fixes for several years. Today, the latest version is Jazzy Jalisco, but most packages work stably for earlier versions of Foxy Fitzroy and Humble Hawksbill, I recommend them for my projects
Соңғы жылдары робототехника ғылыми фантастика саласындағы бір нәрсе болуды тоқтатты және инновация күн сайын болатын белсенді дамып келе жатқан салаға айналды. Көптеген заманауи роботтардың ортасында ROS — роботтардың операциялық жүйесі орналасқан. Бірақ бұл не және ол неге соншалықты маңызды?
ROS (Robot Operating System) — бұл Windows немесе Linux сияқты дәстүрлі мағынада Операциялық жүйе емес. Бұл әзірлеушілерге роботтарды құруға және бағдарламалауға көмектесетін құралдар, кітапханалар мен құрылымдар жиынтығы. ROS модульдік архитектураны қолдану арқылы күрделі роботтық жүйелерді құруды жеңілдету үшін жасалған, мұнда әрбір компонент (түйін) басқа компоненттермен байланысу арқылы дербес жұмыс істей алады.
ROS 2007 жылы енгізілді және икемділігі мен ашықтығы арқасында әзірлеушілер арасында тез танымал болды. Алайда, уақыт өте келе, күрделі өндірістік жағдайларда жұмыс істейтін автономды автомобильдер немесе роботтар сияқты үлкен және маңызды қосымшалар үшін жүйені жаңарту қажет екендігі белгілі болды.
Осылайша ROS 2 дүниеге келді, ол 2014 жылы дами бастады. ROS 2-дің түпнұсқа нұсқасынан басты айырмашылығы-бұл көп ағынды қолдау, Нақты уақыттағы ең жақсы жұмыс, сонымен қатар таратылған жүйелердегі әртүрлі құрылғылар арасындағы тиімді өзара әрекеттесу мүмкіндігі.
ROS-тың басты артықшылықтарының бірі-оның ашықтығы мен модульділігі. Бұл дегеніміз, әркім кодқа өзгертулер енгізе алады, жаңа кітапханалар құра алады және өз шешімдерін қоғамдастықпен бөлісе алады. Осының арқасында әлемнің түкпір-түкпірінен әзірлеушілер робототехниканың барлық дерлік аспектілерін қамтитын мыңдаған пакеттерді жасады: моторды басқарудан бастап күрделі навигацияға дейін.
ROS — тың танымал болуының тағы бір себебі-оның белсенді қауымдастығы. Бұл дегеніміз, егер сізде проблема туындаса, сіз әрқашан форумдарда, репозиторийлерде немесе құжаттамада шешім немесе көмек таба аласыз. Сонымен қатар, ROS академияда белсенді қолданылады, бұл оны дамытудың қуатты құралы ғана емес, сонымен қатар керемет білім беру платформасы етеді.

ROS көмегімен басқарылатын turtlebot деп аталатын роботтың мысалы
Байланыс архитектурасы:
- ROS 1-де түйіндер барлық қосылған түйіндерді бақылайтын орталық-ROS Master арқылы өзара әрекеттеседі. Бұл жүйенің бір компонентке тәуелділігін тудырады және шебер істен шыққан кезде бүкіл жүйенің жұмысы бұзылады.
- The ROS 2 жүйе DDS (Data Distribution Service) қолдану арқылы орталықтандырылмаған. Бұл жүйені икемді және сәтсіздікке төзімді етеді, өйткені түйіндер орталық шеберді қажет етпестен тікелей байланыса алады.
Көп ағынды енгізу және нақты уақытты қолдау:
- ROS 1-де көп ағынды негізгі деңгейде жүзеге асырылады, бұл нақты уақыттағы тапсырмалармен жұмыс істеуді шектейді.
- ROS 2 Нақты уақыттағы тапсырмаларды қолдауды қосты және көп ағынды жақсартты, бұл жүйені өнімдірек етеді және автономды автомобильдер немесе өнеркәсіптік роботтар сияқты күрделі қосымшаларға қолайлы етеді.
Кросс-платформа:
- ROS 1 бастапқыда тек Linux үшін жасалған, дегенмен Windows және macOS үшін ішінара іске асырулар бар.
- ROS 2 бірден бірнеше операциялық жүйелерді, соның ішінде Linux, Windows және macOS-ты қолдауды ескере отырып жасалған, бұл оны әр түрлі ортада қолдану мүмкіндіктерін кеңейтеді.
Қауіпсіздік:
- ROS 1 бастапқыда қауіпсіздік талаптарын ескермеді. Деректерді қорғау маңызды жағдайларда жұмыс істейтін жүйелер үшін қосымша шешімдерді енгізу қажет болды.
- ROS 2 бастапқыда деректерді шифрлауды, аутентификацияны және кіруді басқаруды қоса алғанда, қауіпсіздікті қолдайтын етіп жасалған, бұл оны қазіргі заманғы маңызды жүйелерге қолайлы етеді.
Бұл жақсартулар ROS 2-ді ауқымды жобаларда және сенімділік пен қауіпсіздіктің жоғары талаптарында роботтармен жұмыс істеуге ыңғайлы етеді.
Ұзақ мерзімді Қолдау ROS 2 (LTS) нұсқалары бірнеше жыл ішінде қауіпсіздік жаңартулары мен қателерді түзететін ең тұрақты және дәлелденген нұсқалар болып табылады. Бүгінгі таңда ең соңғы нұсқасы-Jazzy Jalisco, бірақ пакеттердің көпшілігі Foxy Fitzroy және Humble hawksbill-дің бұрынғы нұсқаларында тұрақты жұмыс істейді, мен оларды өз жобаларыма ұсынамын