로봇 공학 분야에는 소프트웨어 엔지니어와 소프트웨어 개발자가 많이 필요합니다. 이 기사는 로봇을 위한 프로그래밍을 고려해 본 적이 없는 소프트웨어 개발자를 대상으로 합니다. 이 기사에서는 다음과 같은 내용을 다룹니다:
로봇 공학 개발자가 되어야 하는 이유
당신에게 어떤 것을 요구하는지
어떻게 시작해야 하는지
로봇 공학 개발자란 누구인가?
로봇 공학 개발자는 프로그래밍 기술을 사용하여 로봇을 프로그래밍하는 사람들을 말합니다.
로봇 공학 개발자는 새로운 경로 계획 알고리즘을 개발할 필요가 없습니다. 새로운 제어 패러다임을 개발할 필요가 없습니다. 새로운 물체 인식 시스템을 발명할 필요가 없습니다. 이것은 로봇 공학자와 인공 지능 연구자의 일입니다. 로봇 공학 개발자는 어떤 알고리즘이 존재하는지, 그것을 어떻게 사용해야 하는지, 언제 그리고 어떻게 전체 로봇 애플리케이션에 통합해야 하는지 알아야 합니다. 그래서 글로벌 로봇은 항상 예상대로 작동합니다.
그것이 로봇 공학 개발자의 역할입니다.
그러나 로봇 프로그래밍은 앱이나 웹 페이지를 프로그래밍하는 것과 다릅니다. 프로그램의 하드웨어가 계속 변화하기 때문에 (로봇이 세계에서 움직이기 때문에) 종종 예상치 못한 문제가 발생합니다. 그것은 앱보다 더 복잡한 프로그램을 만듭니다.
로봇 프로그램은 행동을 취하고 그 행동의 결과를 인지하기 위해 하드웨어와 지속적으로 상호 작용합니다. 그것은 사용자 상호 작용 이상으로, 이제 프로그램은 사용자 상호 작용과 로봇의 세계와의 상호 작용을 고려해야 합니다. 이 모든 것이 지속적으로 변화하는 환경에서 이루어집니다.
로봇 공학 개발자가 되는 이유는 무엇인가요?
가장 먼저 고려해야 할 질문은 왜 로봇 공학 개발자가 되어야 하는지입니다. 제가 다음과 같은 답변을 제시합니다:
로봇 프로그래밍은 미래가 매우 밝습니다. 세계에서 사용되는 로봇의 수가 지수적으로 증가하고 있습니다.
세계 로봇 시장의 예측 (출처: Statista)
저는 산업용 로봇과 상업 및 소비자 공간을 대상으로 한 로봇에 대해 이야기하고 있습니다. 사람들과 상호 작용하며 작업을 수행하는 로봇에 대해 이야기하고 있습니다. 서비스 로봇에 대해 이야기하고 있습니다.
출처: Robotics Tomorrow
산업 및 군사 로봇 분야가 성장하고 있지만, 서비스 로봇 분야는 더욱 빠르게 성장하고 있습니다.
더 많은 대기업들이 로봇 분야로 진출하고 있습니다. Dyson과 Tesla와 같은 회사들은 로봇을 개발하고 있습니다. 또한, Google의 파생 회사 Intrinsic는 로봇 운영 시스템 (ROS) 개발팀을 인수하여 로봇 프로그래밍을 위한 자사 소프트웨어 제품인 Flowstate를 출시했습니다. 이것은 한 가지 트렌드입니다.
아직 충분한 엔지니어가 부족합니다. 로봇에 대한 수요가 계속 증가함에 따라 많은 회사들이 로봇 부문을 가지고 있습니다. 우리 아카데미 (The Construct)에 매주 더 많은 회사들이 가입한다는 것을 알고 있습니다. 그들은 자사의 엔지니어들을 로봇 프로그래밍을 가르치고자 합니다. 이러한 회사들은 로봇 부문을 가지고 있지 않지만, 하나를 만들고 실질적으로 로봇 프로그래밍을 아는 사람을 찾을 수 없습니다.로봇 분야에서 현재 발생하고 있는 일은 몇 년 전에 데이터 엔지니어와 딥 러닝에서 벌어진 일입니다. 오늘날, 모든 회사가 머신 러닝 엔지니어를 원하며, 그 결과, 어디에서나 머신 러닝 엔지니어를 찾을 수 있습니다. 머신 러닝 공간은 지금 너무 혼잡해졌습니다.그러나 이는 로봇 프로그래밍의 경우에 해당하지 않습니다. 세계적으로는 매우 적은 수의 로봇 개발자가 존재합니다. 지금이 로봇 분야로 뛰어들어 이 분야에서 처음으로 성공하길 원하는 사람들에게 가장 좋은 시기입니다.
로봇 엔지니어에 대한 수요는 매우 높습니다.로봇-전 세계적 메일링 리스트를 확인하면 로봇 프로그래머와 관련된 많은 구인 공고가 매일 게시되고 있는 것을 볼 수 있습니다. 이러한 공고에는 다양한 직무가 포함되어 있습니다: 회사, 스타트업, 연구 기관에서 일할 수 있고, 인턴십, 박사 학위, 또는 연구원 직위를 얻을 수도 있습니다. 채용 페이지에서 대륙별로 구분된 주간 로봇 공학 채용 목록을 확인하세요.
급여. 로봇 프로그래밍 분야의 급여는 상당히 좋습니다. 다양한 국가의 평균 급여를 이 웹 사이트에서 확인할 수 있습니다. 미국의 예시는 아래에서 확인할 수 있습니다:
Salaries for robotics software developer jobs (as of July 2023)
원격으로 일할 수 있을 것입니다. 로봇 소프트웨어 분야에서 일한다면, 현장에 있지 않아도 시뮬레이션과 데브옵스 도구를 사용하여 로봇을 프로그래밍할 수 있을 것입니다. 더 많은 정보는 아래에서 확인하세요.
정말 멋집니다! 솔직히 말해서, 로봇을 위한 소프트웨어 개발자는 회계 소프트웨어나 해변에서 피자를 배달해주는 앱을 위한 소프트웨어 개발자보다 훨씬 멋진 직업입니다. 사회에서 로봇은 기술 분야에서 가장 멋진 것 중 하나로 여겨집니다.
로봇 분야에서 영향을 미칠 수 있습니다. 서비스 로봇 분야에서 특히 흥미로운 점은 유용한 로봇을 만들기 위한 열쇠는 하드웨어가 아니라 소프트웨어에 있다는 것입니다. 로봇이 집을 청소하는 데 사용되는 하드웨어는 이미 존재합니다. 서비스 로봇의 가장 중요한 제한 요소는 소프트웨어입니다. 따라서 여러분의 업무는 유용한 로봇을 현실 세계로 가져올 수 있게 기여할 수 있습니다.
사회에서 영향을 미칠 수 있습니다. 할리우드 영화에서 로봇은 우리를 미워하고 종 노릇을 할 나쁜 존재로 나타내는 경우가 많습니다. 하지만 로봇 공학 개발자라면, 유용하고 선량하며 우리를 돕기 원하는 로봇을 만들어 이러한 스토리를 바꿀 수 있습니다. 미래의 로봇은 여러분에게 달려있습니다.
‘I Robot’ 영화에서 스크린샷을 가져와 로봇이 어떻게 유용할 수 있는지 보여주는 사례입니다.
요점은 로봇이 현재 인간이 수행하는 많은 직업을 대체할 것이라는 것입니다. 이는 불가피한 일입니다. 그리고 그 로봇들은 누군가에 의해 프로그래밍되어야 합니다. 그 누군가가 여러분이 되길 원하시나요?
하지만 ChatGPT 같은 기술이 그 직업을 대체할 것이라는 우려가 있습니다!?!?
ChatGPT와 같은 기술이 프로그래머의 직업을 대체할 것이라는 세계적인 화제가 많습니다. 명확하게 말씀드리자면: 이는 곧 일어날 일이 아닙니다. 20년 후에야 인공 지능이 무엇이든 프로그래밍할 수 있게 될지도 모릅니다. 하지만 현재로서는 그렇지 않습니다.
인공 지능은 개발자의 생산성을 높일 수 있습니다. 개발자를 더 효율적으로 만들 수 있습니다. 단일 개발자가 이전보다 훨씬 더 많은 것을 만들 수 있도록 도와줄 수 있습니다.
그러나 인공 지능은 로봇이 작동하고 작업을 수행하는 데 필요한 프로그램을 만들어낼 수 없습니다. 그 주제는 매우 복잡하며, 현재로서는 어떤 인공 지능도 할 수 없습니다 (이를 할 수 있는 사람은 세계적으로 소수, 즉 우리 로봇 공학 개발자 뿐입니다!). 현재로서나 20년 후에도 그렇지 않을 것입니다.
그렇습니다, 여러분은 더 나은 작업을 위해 인공 지능을 도입해야 할 것입니다. 그렇지만 다음 20년 동안에 여러분은 지속적으로 적응하고 생산성을 높여야 할 것입니다. 그것은 사실입니다. 하지만 여러분의 직업은 다음 몇 년 동안은 위험에 처해 있지 않을 것입니다.
그러니 이제가 소프트웨어 개발로 뛰어들기에 가장 좋은 시기입니다.
로봇 개발자가 부족한 이유는 무엇일까요?
이유 1: 학습 경로의 부족
주된 이유 중 하나는 로봇 프로그래머가 되기 위해 필요한 기술을 습득할 수 있는 포괄적인 교육 과정이 부족하다는 것입니다.
매우 최근까지는 로봇 개발자에 대한 필요성이 없었습니다. 로봇은 유용한 일을 할 수 없었기 때문에 연구실에서만 사용되었습니다. 그러나 로봇이 더 뛰어난 기술을 갖게 되면서, 이제는 가정이나 시설 등으로 나가 유용한 제품을 개발하는 데에 로봇 공학 개발자가 필요해졌습니다.
문제는 로봇 개발자가 되기 위한 명확한 학습 경로가 없다는 것입니다. 즉, 소프트웨어 기술을 사용하여 로봇을 프로그래밍하는 사람, 즉 로봇 공학 개발자가 되기 위한 경로가 명확하지 않았습니다.
과거에는 로봇 프로그래머들은 로봇 공학, 기계 및 전자에 대해 많은 지식을 가지고 있으며 컴퓨터 프로그래밍에 대해 어느 정도의 지식을 갖고 있는 로봇 공학자들이었습니다. 그러나 지금은 그 정도만으로 충분하지 않습니다. 로봇 제품을 만들고자 한다면, 우리는 전문 프로그래머가 필요합니다.
그러나 소프트웨어 프로그래머들은 직접적으로 로봇 공학 개발자로 일할 수 없습니다.
로봇 공학 개발자는 프로그래밍 능력이 뛰어나고 로봇에 대한 지식을 가지며 로봇이 어떻게 작동하는지, 주요 구성 요소의 구조는 어떻게 되어 있는지, 센서에서 데이터를 수집하고, 액추에이터에 명령을 보내는 기본 지식을 갖고 있어야 합니다. 하드웨어가 예상대로 작동할 것임을 믿을 수 있어야 합니다 (컴퓨터가 예상대로 작동하는 것처럼). 이를 숙달하기 위해서는 로봇 공학 이론을 공부할 필요가 있을 수도 있습니다.
다시 말씀드리겠습니다:
로봇 공학 개발자는 새로운 경로 계획 알고리즘을 개발할 필요가 없습니다. 새로운 제어 패러다임을 개발할 필요가 없습니다. 새로운 물체 인식 시스템을 발명할 필요가 없습니다. 이것은 로봇 공학자와 인공 지능 연구자의 일입니다. 로봇 공학 개발자는 어떤 알고리즘이 존재하는지, 그것을 어떻게 사용해야 하는지, 언제 그리고 어떻게 전체 로봇 애플리케이션에 통합해야 하는지 알아야 합니다. 그래서 글로벌 로봇은 항상 예상대로 작동합니다.
두 번째 주된 이유는 일반적으로 소프트웨어 개발자들이 하드웨어와 관련된 일을 좋아하지 않는다는 것입니다. 아마 여러분도 소프트웨어 개발자일 것이고, 로봇 분야에 관심을 갖아본 적이 없을 것입니다. 아마 여러분은 로봇을 프로그래밍하기 위해 전자공학과 심지어 기계공학에 대한 지식이 필요할 것으로 생각할 것입니다. 아마 여러분은 로봇에서 하드웨어와 소프트웨어가 너무 긴밀하게 결합되어 있어 하나를 건드리면 다른 하나도 함께 건드려야 한다고 생각할 것입니다. 하드웨어와 상호 작용하는 것은 많은 소프트웨어 개발자들이 싫어하는 부분입니다. 결국, 그들은 소프트웨어 개발자가 되기로 선택했고, 하드웨어 개발자가 되지 않았으니까요!
다행히 현재로서는 그 하드웨어와의 상호 작용이 필요하지 않습니다.
로봇 공학자가 로봇을 프로그래밍합니다
소프트웨어 개발자의 부재로 인해 로봇 프로그래밍은 로봇을 제작하는 사람들인 로봇 공학자들에 의해 이루어집니다. 어쩌면 일부 프로그래머들은 로봇을 직접적으로 만드는 데 참여하지 않을 수도 있지만, 문제가 발생했을 때 하드웨어에 진입하고 고치려는 데는 문제가 없습니다. 하지만 우리는 정면으로 마주하기로 합시다. 대부분의 로봇 공학자들은 개발자들만큼 뛰어난 프로그래머가 아닙니다. 이것이 로봇 공학이 많은 숙련된 프로그래머들이 필요한 이유입니다. 다행히도 이 분야로 개발자들을 끌어들이는 것이 이전보다 쉬워진 좋은 소식입니다. Robot Operating System (ROS) 덕분에 하드웨어를 소프트웨어로부터 완전히 추상화시킬 수 있으므로, 로봇의 ROS API를 알고 시뮬레이션에서 테스트함으로써 로봇을 프로그래밍할 수 있습니다. ROS API를 사용하면 하드웨어를 잊고 로봇이 원하는 대로 동작하게 하는 소프트웨어에 집중할 수 있습니다.
로봇의 ROS API란 무엇인가요?
ROS API는 주어진 로봇이 자신의 하드웨어, 센서 및 액추에이터에 액세스하기 위해 제공하는 ROS 주제 (topics), 서비스 (services), 액션 서버 (action servers) 및 메시지 목록입니다 (messages). ROS에 익숙하지 않다면 이 용어들을 이해하지 못할 수도 있습니다. 그러나 개발자의 언어로 표현하면 주제/서비스/메시지는 로봇에서 센서 데이터를 가져오고 로봇을 동작시키기 위해 호출할 수 있는 소프트웨어 함수와 같은 것입니다. 이것은 또한 해당 함수에 전달할 수 있는 매개변수를 포함합니다.
대부분의 최신 로봇 빌더는 완제품 ROS API를 제공합니다. 예를 들어, ROS-Components 쇼핑몰은 모든 하드웨어에 ROS API를 제공합니다.
만약 여러분이 작업하려는 로봇이 ROS를 실행하지 않는다면, ROS를 적용하여 동작시킬 수 있습니다. ROSifying이라는 것은 로봇을 ROS와 호환되도록 조정하는 것을 의미합니다. 로봇을 ROSifying하려면 일반적으로 하드웨어에 액세스할 수 있는 지식이 필요합니다. 센서 데이터를 제공하거나 로봇의 모터에 액세스하는 전자 기기와 통신하는 방법을 배워야 합니다. 이 글에서는 이 주제에 대해서 다루지 않겠습니다. 왜냐하면 이것은 개발자들의 영역을 벗어난 주제이기 때문입니다. 여러분이 작업할 로봇이 이미 ROSified된 것으로 가정합니다.
그렇다면 ROS란 무엇일까요?
ROS는 Robot Operating System의 약자입니다. 비록 그렇게 불리지만 ROS는 실제로는 운영 체제가 아닙니다. 왜냐하면 이는 리눅스 우분투 위에 구축되기 때문입니다. ROS는 하드웨어와 소프트웨어를 추상화시킬 수 있는 운영 체제 상위의 프레임워크입니다. 이것은 여러분이 하드웨어와 상호 작용하지 않고도 로봇을 위한 프로그램을 만들 수 있다는 좋은 소식입니다. 얼레벌레!
적어도 서비스 로봇 분야에서는 ROS가 로봇 프로그래밍의 표준이 되고 있습니다. 처음에는 대학 수준에서 시작되었지만 빠르게 기업 세계로 확산되었습니다. 매일매일 더 많은 기업들과 스타트업들이 ROS를 기반으로 사업을 기획하고 있습니다.
ROS 이전에는 각 로봇이 제조사 자체의 API로 프로그래밍되었습니다. 만약 로봇을 변경하면 새로운 프로그래밍 환경을 익히는 것 외에도 소프트웨어를 다시 시작해야 했습니다. 게다가, 로봇의 전자 기기와 상호 작용하는 것을 잘 알아야만 프로그램이 어떻게 작동하는지 이해할 수 있었습니다. 이 상황은 1980년대 컴퓨터와 비슷했습니다. 그때마다 각 컴퓨터가 자체 운영 체제를 가지고 있어 각각의 컴퓨터 유형에 대해 동일한 프로그램을 작성해야 했던 것과 비슷했습니다.
ROS는 로봇에게는 Windows가 PC나 Android가 스마트폰과 같은 역할을 합니다. ROS가 적용된 로봇을 사용하면 다른 로봇 간에 공유할 수 있는 프로그램을 작성할 수 있습니다. 회사 A에서 만든 4바퀴 로봇을 움직이게 하는 자율 주행 프로그램을 만들고 나서 이 코드를 회사 B에서 만든 2바퀴 로봇 또는 회사 C에서 만든 드론에도 적용할 수 있습니다.
ROS와 산업 로봇
ROS는 현재 많은 서비스 로봇에서 사용되고 있습니다. 그러나 산업 로봇 회사들은 여전히 자체 소유 시스템을 갖지 않을 경우 주로 사용하기를 꺼리고 있습니다. 그럼에도 불구하고 몇 년 전에 ROS-Industrial이라는 국제 그룹이 만들어졌습니다. 이 그룹은 ROS가 산업용 로봇 제조사에게도 유용하다는 점을 알리고 있습니다. 왜냐하면 다른 ROS 로봇을 위해 다른 사람들이 만든 모든 소프트웨어를 그대로 사용할 수 있기 때문입니다.
ROS와 농업 로봇
ROS-Industrial과 마찬가지로, ROS-Agriculture는 농업 분야에서 ROS를 소개하고자 하는 또 다른 국제 그룹입니다. 농업용 로봇에 관심이 있는 경우 이 그룹을 팔로우하는 것을 강력히 권장합니다. 그들은 ROS를 사용하여 수십 톤의 기계들을 활용하여 미친 듯한 일들을 할 수 있는 매우 열정적인 팀입니다. 예를 들어, ROS-Agriculture 그룹의 Kyler Laird가 만든 ROS를 사용하는 자율 트랙터에 관한 이 동영상을 확인해보세요.
ROS로 로봇 개발하는 방법
이제, 여러분이 로봇 개발자가 되기에 동의했다면, 로봇 개발자가 되기 위해 취할 수 있는 단계들은 다음과 같습니다:
설정
학습
코딩
테스트
설정
먼저 ROS를 개발 시스템에 설치하려면 시스템을 설정하세요. ROS로 로봇을 프로그래밍하기 위해 컴퓨터를 설정하는 방법을 알아보겠습니다. 두 가지 옵션이 있습니다:
ROS는 Linux Ubuntu 또는 Linux Debian에서 작동합니다. 또한 ROS는 Windows와 Mac에서도 작동할 수 있지만, 이러한 시스템에서의 개발은 아직 충분히 성숙하지 않습니다. 컴퓨터에 Ubuntu의 최신 버전 중 하나를 설치하는 것을 권장합니다. 2022년 5월 기준으로 Ubuntu 20.04를 설치하는 것이 좋습니다. ROS Development Studio를 사용하는 경우 이 단계는 건너뛸 수 있습니다.
하지만 저는 Linux이 아닌 Windows 또는 Mac을 사용하고 있습니다. ROS로 개발할 수 있을까요?
Windows 또는 Mac을 사용하여 ROS 개발을 계속하려면 두 가지 옵션이 있습니다:
OSX, Gentoo, 및 Windows에 대한 완전한 지원이 존재하지만 아직은 사용을 권장하지 않습니다. Windows 또는 Mac에 ROS를 문제없이 설치한 사람을 저는 만나본 적이 없습니다. 그런 방식을 선택하려면 이 페이지에서 Windows 또는 Mac에서의 ROS에 대한 자세한 정보를 확인하세요.
ROS Development Studio를 사용합니다. 이 온라인 플랫폼은 웹 브라우저를 통해 완전한 ROS 환경을 제공하며 설치가 필요하지 않습니다. 특히 학습을 진행하고 학생들이 빠르게 시작할 필요가 있는 경우 이것을 권장합니다.
어떤 ROS 버전을 설치해야 하나요?
현재, ROS에는 두 가지 다른 버전이 있습니다. ROS1, 또는 클래식이라고도 불립니다. ROS1은 원래의 버전입니다. 그리고 ROS2는 더 현대적이며 로봇 제품을 개발하는 데 중점을 둡니다. ROS에 처음 접하는 경우 ROS2로 직접 이동하는 것을 권장합니다. 그러나 목표에 따라 ROS1을 선택할 수도 있습니다. 어떤 버전을 선택할지 결정하는 데 도움이 될 비디오를 만들었습니다.
ROS 설치
Ubuntu 시스템이 작동 중인 경우 ROS를 설치하세요. ROS의 두 버전 모두 배포로 게시됩니다. 배포는 일반적으로 매 두 년마다 새로 출시되는 ROS의 새로운 버전입니다. 각 배포에는 특정한 이름이 있습니다.
First, you need to be comfortable using the Linux shell. Also, you need to know how to program in C++ or Python. If you still don’t know any of these, I recommend you start with the following free online courses:
먼저 Linux 셸을 편하게 사용할 수 있어야 합니다. 또한, C++ 또는 Python으로 프로그래밍하는 방법을 알아야 합니다. 이 중 어느 것도 알지 못한다면, 다음 무료 온라인 강좌부터 시작하는 것을 추천합니다:
이미 언급한 대로 ROS는 C++ 또는 Python으로 프로그래밍할 수 있습니다. 그러나 C++를 알지 못한다면 ROS에 C++로 진입하지 마십시오. 그런 경우라면 Python으로 ROS를 배우기를 권합니다. 물론 지금부터 C++을 배우기 시작할 수 있습니다. 왜냐하면 산업에서는 C++을 사용하고 있고, 나중에 ROS Python에서 ROS C++로 전환해야 할 것이기 때문입니다. 그러나 초기 ROS 학습은 Python으로 프로그래밍하며 진행되어야 합니다.
두 가지(ROS와 C++ 학습)를 동시에 처리할 수 있다고 생각하겠지만… 잘못된 결정입니다. 그리고 행운을 빕니다.
또한 Prolog, Lisp, Nodejs 또는 R과 같은 다른 언어에 대한 바인딩이 존재합니다. 현재 지원되는 언어의 전체 목록은 여기에서 찾을 수 있습니다. 실험적인 언어로 ROS를 배우는 것은 ROS가 이미 복잡한 상태이므로 권장하지 않습니다.
모든 방법 중에서도 우리의 온라인 Robot Ignite Academy를 추천합니다. 왜냐하면 이 방법이 가장 빠르고 포괄적인 학습 경로를 제공하기 때문입니다. 이것은 저희가 말하는 게 아니라 고객들이 말하는 내용입니다. 온라인 아카데미는 비용이 발생하지만 ROS 학습을 크게 가속화할 수 있습니다.
또한, ROS를 구축하고 유지하는 Open Robotics는 ROS1 및 ROS2용 다음과 같은 여러 튜토리얼 목록을 제공합니다. 목록이 매우 방대하여 압도될 수 있습니다. ROS를 배우기 위해 이 방법을 사용하려고 결정한다면, 최적의 학습을 위해 다음과 같은 순서로 튜토리얼을 진행하는 것을 권장합니다:
ROS 파일 시스템 탐색
ROS 패키지 생성
토픽 (topics) 이해
퍼블리셔 (publishers) 및 서브스크라이버 (subscribers) 작성
퍼블리셔 (publishers) 및 서브스크라이버 (subscribers) 검토
서비스 클라이언트 (service client) 작성
서비스 클라이언트 (service client) 검토
Msg 및 Srv 생성
서비스 (service) 매개변수 이해
사용자 정의 메시지 정의
데이터 기록 및 재생
ROS TF
ROS URDF
ROS Control
ROS Navigation
ROS 기초를 배우기 위해 알아야 할 주요 주제의 완전한 요약과 클릭 가능한 링크가 있는 전체 요약을 여기에서 찾을 수 있습니다.
마지막으로 권하는 것은, UPC 대학의 산업 4.0 석사 과정에서 ROS 강사로 활동하고 있으며 매주 화요일 오후 6시 CEST/CET에 ROS에 관한 온라인 수업을 진행하고 있는 점입니다. 매주 화요일에는 ROS 개발자 오픈 클래스에서 제가 진행하는 수업에 참석하고 함께 새로운 ROS 주제를 연습하는 것을 권장합니다. 이 수업은 무료이며 시뮬레이션 로봇과 함께 특정 ROS 주제를 숙달할 수 있는 훌륭한 기회입니다.
코딩
C++ 또는 Python 코드 편집기가 필요할 것입니다. ROS 코드를 작성하는 데 사용할 수 있는 주요 IDE(통합 개발 환경)에 대한 개요를 얻으려면 이 페이지를 참조하십시오. 그러나 제가 권장하는 옵션은 두 가지뿐입니다:
컴퓨터에 편집기를 설치하려면 VSCode 편집기와 그의 ROS 확장을 사용하십시오. 이는 ROS 코딩에 가장 적합한 편집기입니다.
이 단계를 건너뛰고 싶다면, ROS Development Studio를 사용하십시오. 이는 브라우저에서 통합된 IDE를 제공하며 설치가 필요하지 않습니다. 또한 프로젝트를 쉽게 공유할 수 있습니다.
테스트
로봇을 위해 개발 중인 프로그램을 어떻게 테스트할 수 있을까요? 여기에서는 여러분이 로봇에 접근할 수 없다고 가정하겠습니다. 사실 로봇에 접근하고 싶지 않습니다!! 기억하세요: 개발자들!! 그렇다면 로봇을 사용하지 않고 ROS 프로그램을 테스트할 수 있는 여러 가지 옵션이 있습니다.
모의 테스트(mock) 사용
만약 개발자이신 경우 모의 테스트가 무엇인지 이미 알고 계실 것입니다. 여러분의 로봇의 다양한 부분과의 연결을 흉내내는 모의 테스트를 만들 수 있습니다.
ROS에서 모의 테스트를 사용하는 것은 준비 작업이 많이 필요하다는 점에서 쉬운 옵션은 아닙니다. 또한 이는 미리 입력한 것만 생성할 수 있기 때문에 유용성이 제한됩니다. 개발에 사용하길 권장하지 않는 옵션 중 하나입니다. 다른 아래의 옵션을 사용할 수 없거나 유닛 테스트를 만들고 있는 경우에만 사용하십시오. 제 경험상으로는 이 옵션을 사용한 적이 없습니다. 항상 다음 두 가지 옵션 중 하나를 사용했습니다.
ROS 백 사용
ROS는 로봇의 전체 ROS API를 실제 상황에서 실행하는 동안 로그 파일에 기록하고 나중에 다른 컴퓨터에서 실행할 수 있는 방법을 제공합니다. 이 로그 파일을 ROS 백이라고 합니다. 다른 컴퓨터에서 ROS 백을 실행하면 컴퓨터는 기록된 프로그램에 대해 동일한 ROS API를 표시합니다. ROS 백 사용 방법은 여기에서 확인할 수 있습니다: ROS 백의 레코드 및 재생.
ROS bags는 센서 데이터를 기반으로 하는 알고리즘을 생성하는 데만 사용할 수 있기 때문에 제한적인 시스템입니다. 이는 녹음된 로봇이 받은 것과 동일한 데이터를 얻을 수 있지만 로봇에 대한 새로운 명령을 결정할 수는 없다는 것을 의미합니다.
시뮬레이션 활용
만약 실제 로봇을 사용하지 않고 전문가가 되고 싶다면 로봇 시뮬레이션을 사용해야 합니다. 시뮬레이션은 소프트웨어 개발의 다음 단계입니다.
시뮬레이션은 실제 로봇이 옆에 있는 것과 같은 느낌을 줍니다만 전자공학, 하드웨어 및 물리적 공간에 대해 걱정할 필요가 없습니다. 로봇 공학자들은 시뮬레이션을 로봇 공학의 부끄러운 형제로 간주합니다. 로봇 공학자들은 일반적으로 시뮬레이션을 싫어합니다. 왜냐하면 그것은 실제 로봇이 아니기 때문입니다. 로봇 공학자들은 실제 물건과 상호 작용하는 것을 선호합니다. 하지만 다행히도 여기에서는 하드웨어에 손을 대기 싫어하는 사람들과 이야기하고 있습니다. 이런 사람들에게는 시뮬레이션이 꼭 필요한 것입니다.
한 가지 말씀드리고 싶은 것은 로봇 시뮬레이션은 지능적인 로봇의 열쇠입니다, 비록 로봇 공학자들이 그것을 인정하지 않더라도요. 이에 관한 자세한 내용은 향후 게시물에서 다루겠지만, 먼저 여기에서 읽으셨다는 것을 기억해주세요!
시뮬레이션의 경우 컴퓨터에서 실행되는 로봇의 시뮬레이션이 실제 로봇처럼 작동하고 행동할 수 있습니다. 시뮬레이션이 실행되면 컴퓨터는 실제 로봇의 컴퓨터에서 얻을 것과 동일한 ROS API 프로그램을 제공합니다. 이는 ROS bags의 경우와 동일하지만 시뮬레이션에서 실제로 로봇에 명령을 보낼 수 있고, 시뮬레이션된 로봇은 이에 따라 응답합니다. 이것은 정말 멋지죠!
로봇 시뮬레이션을 사용하려면 ROS에서 이미 설치된 Gazebo 시뮬레이터를 제공합니다. 프로그래밍하려는 로봇의 시뮬레이션만 실행하면 됩니다. 일반적으로 로봇 제작사는 자사 로봇의 시뮬레이션을 다운로드하고 Gazebo 시뮬레이터에서 실행할 수 있도록 제공합니다.
시뮬레이션을 설치하고 실행하는 것은 다소 까다로울 수 있습니다. 이 작업을 피하고 싶다면 저희 ROS Development Studio를 사용하는 것을 권장합니다. 이것은 클릭 한 번으로 실행할 수 있는 시뮬레이션과 ROS, IDE 및 기타 중요한 도구를 포함하고 있으며 웹 브라우저에서 실행되어 설치가 필요하지 않습니다.
ROS Development Studio가 시뮬레이션, ROS 네비게이션 스택, Rviz 및 ROS bags를 녹화하는 터미널과 함께 작동하는 예시:
추가로 마스터해야 할 로보틱스 개념들
로보틱스 개발자가 되기 위한 마지막 단계는 몇 가지 로보틱스 주제를 마스터하는 것입니다. 소프트웨어 엔지니어로서 이미 많은 주제를 이해하고 계실 것으로 확신합니다. 왜냐하면 이들은 소프트웨어 개발자의 전형적인 작업과 밀접한 관련이 있기 때문입니다. 그러나 일부 개념은 로보틱스와 밀접하게 관련되어 있어 소프트웨어 엔지니어가 이를 마스터해야 합니다(마치 송장을 작성해야 한다면 몇 가지 회계 개념을 이해해야 하는 것과 비슷합니다). 로봇은 움직이는 산물, 즉 주위를 돌아다니는 물체입니다. 이는 당신이 프로그램이 더 이상 고정된 위치에 머무르지 않을 것이라는 것을 의미합니다. 이제 로봇 프로그램을 만들기 위해 이해해야 할 일련의 새로운 개념이 있습니다. 이에 이어 로봇 프로그램을 작성하기 위해 이해해야 하는 몇 가지 개념 목록이 나와 있습니다. 이 주제들을 가르치는 온라인 강좌 링크도 포함했습니다:
Webブラウザを使用して完全なROS環境でROSの開発を行うことができるROS開発スタジオ(ROS Development Studio)を使用します。これはWebブラウザと連動する完全なROS環境を提供するオンラインプラットフォームで、インストールは不要です。特に、教育を行い、生徒がすぐにスムーズに進む必要がある場合には、これを強くお勧めします。
最後のお勧めとして、私はUPC大学の産業4.0マスターのROS講師であり、毎週火曜日の18:00 CEST/CETにROSのオンラインクラスを提供しています。毎週、ROS Developers Open Classで私と一緒に新しいROSのトピックを学び、実践することをお勧めします。このクラスは無料で、シミュレーションロボットを使用してROSの特定のトピックをマスターする絶好の機会です。
シミュレーションをインストールし、実行することは少し手間がかかるかもしれません。その手間を避けたい場合、当社のROS Development Studioの使用をお勧めします。これは、シミュレーションが1クリックで起動できる準備が整っており、ROS、IDE、およびその他の価値あるツールがすべて揃っています。Webブラウザ上で実行され、インストールは必要ありません。
以下は、ROS Development Studioがシミュレーション、ROSナビゲーションスタック、Rviz、およびROSバッグの記録と連動して動作する例です。
Robotics needs software engineers and software developers. A lot of them. This article is for software developers who have never considered programming for robots. In this article, we discuss the following:
Reasons why you should become a robotics developer
What that entails for you
How to start
What is a robotics developer?
Robotics developers are people who use their programming skills to program robots.
Robotics developers do not need to develop new path-planning algorithms. They don’t need to develop a new control paradigm. They don’t need to invent a new object recognition system. That is the job of the roboticists and AI at the labs. Robotics developers need to know which algorithms exist, how to use them, when, and how to integrate them into the complete robotics application. Hence, the global robot always does what it is expected to do.
That is the role of the robotics developer.
However, programming robots differ from programming an app or a web page. The program’s hardware changes continuously (because the robot moves in the world) and often experiences unexpected problems. That makes the programs more complex than apps.
Robotic programs interact with hardware constantly to take action and perceive the result of that action. That goes beyond mere user interaction because now, the program considers the user interaction plus the robot’s interaction with the world all that in a continuously changing environment.
Why become a robotics developer?
The first question you may have is why you should consider becoming a robotics developer. I have the following answers:
Robot programming has a big future. The number of robots used in the world is increasing exponentially.
Forecast of the robotics market in the world for the next years (source Statista)
I’m talking about industrial robots, and robots targeting commercial and consumer spaces. I’m talking about robots that interact with humans and help them with tasks. I’m talking about service robots.
Source: Robotics Tomorrow
Even if the industrial and military robot sectors are growing, service robotics is growing even faster.
More big companies are entering the robotics game. Companies like Dyson and Tesla, are creating robots. Additionally, Google’s spin-off Intrinsic bought the Robot Operating System (ROS) team of developers to release Flowstate, their own software product for programming robots. That is a trend.
Not enough engineers…yet. Due to the increasing demand for robots, many companies now have a robotics division. I know that because every week, more companies join our academy (Robot Ignite Academy). They want to train their engineers to program robots. These companies do not have robotics divisions, but are considering creating one and cannot find properly trained people that know how to program robots.
What is starting to happen in robotics already happened with data engineers and deep learning just a few years ago. Today, every company wants a machine learning engineer, hence, you can find machine learning engineers everywhere. The machine learning space is now too crowded.
However, that is not the case for robotics programming. There are very few robotics developers in the world. Now is the best time to jump onto the robotics wagon and be one of the first in this field.
The demand for robotics engineers is very high. You only have to look at the robotics-worldwide mailing list to see how many job offers relating to robotics programmers are posted daily. The offers include various jobs: you can work for companies, startups, and research institutes, or even do an internship, PhD, or Post-Doc.
Check the weekly list of robotics jobs on our jobs page divided by continents.
Salaries. Salaries for robot programming are quite good. You can check the average salaries for different countries on this website. See below an example for the United States:
Salaries for robotics software developer jobs (as of July 2023)
You may be able to work remotely. If you work in software for robots, chances are that you can program the robots using simulations and DevOps tools without having to be on site. See more information below.
It is super cool! Let’s face it. A software developer for robots is a lot cooler than a software developer for accounting or for pizza apps that deliver to you at the beach. Society considers robots to be one of the coolest things in technology.
You can make a difference in robotics. What is especially interesting about service robots is that the key to having a useful robot is not the hardware, but the software. The hardware that allows a robot to clean your house already exists. The most significant limiting factor for service robots is software. So, your job can contribute to finally bringing useful robots to real life.
You can make a difference in society. All Hollywood movies depict robots as bad things that will hate and enslave us. If you are a robotics developer, you can change this narrative by creating robots that are useful, good, and willing to help us. The robots of the future depend on you.
Screenshot from I Robot movie, showing a case of how robots can be useful
The point is that robots will take over many jobs currently performed by humans. It is inevitable. And those robots must be programmed by someone. Would you like it to be you?
But what about ChatGPT taking those jobs!?!?
There is a lot of hype about ChatGPT and the like taking programmer’s jobs. Let me tell you clearly: this is not going to happen soon. Maybe 20 years from now, AIs will be able to program anything, but for now, they are far from it.
AIs can improve developers’ throughput. They can make developers more efficient. They can help a single developer create a lot more than before.
But AIs cannot create the programs required for robots to work and deliver tasks. That subject is highly complex, and no AI can do it (only a few humans in the world can do it, that is us, the robotics developers!). Not now, or in the next 20 years.
Yes, you will need to incorporate AI to do better work. Yes, you will have to continuously adapt over the next 20 years and increase your productivity. That is true. But your job will not be in jeopardy for the next few years.
So now is the time to jump into software development for robotics.
Why are there not enough developers for robotics?
Reason 1: lack of a learning path
One of the main reasons is the lack of a comprehensive curriculum that leads to the necessary skills to be a robot programmer.
Until very recently, there was no need for robotics developers. Robots could not do anything useful, so robots were relegated to the labs. However, as robots become more skilled, they are leaving the lab and going to homes, facilities, etc.
It is there that robotics developers become necessary, to build robust products.
The problem is that there is no clear path to becoming a robotics developer, that is, a person who uses software skills to program robots.
Usually, in the past, robot programmers were roboticists that knew a lot about mechanics and electronics and just enough about computer programming. However, just enough is not valid anymore. If we want to build robotics products, we need pro programmers.
However, software programmers cannot go directly to work as robotics developers.
A robotics developer must be good at programming, know robotics, and know the basics to understand how robots work, the main structure of its components, get data from the sensors, send commands to the actuators, and little more. It must be able to trust that the hardware will work as expected (in the same way that the computer works as expected). To master that, robotics developers may also need to study robotics theory.
Let me say it again:
Robotics developers do not need to develop a new path planning algorithm. They don’t need to develop a new control paradigm. They don’t need to invent a new object recognition system. That is the job of the roboticists and AI at the labs. Robotics developers need to know which algorithms exist, how to use them, when to use them and how to integrate them into the complete robotics application. Hence, the global robot always does what it is expected to do.
The second main reason is that, in general, software developers do not like to deal with hardware. You are likely a developer and have never thought about entering into the robotics realm. You probably think that by programming for robots, you need to know about electronics and maybe even mechanics. You probably think that hardware and software are so coupled in robots that you cannot touch one without touching the other. That interaction with the hardware is something that many software developers don’t like. After all, they decided to become developers of software, not hardware!!
Fortunately, that hardware interaction is not required at present.
Roboticists programming robots
Due to that lack of software developers, robot programming is done by roboticists, which are the people that build the robots. Perhaps some programmers are not directly involved in creating the robot, but they have no problem getting into the hardware and trying to fix it when something goes wrong.But let’s face it. Most roboticists are not as good programmers as developers are. That is why robotics could benefit from having many expert programmers enter the field.The good news is that attracting developers to the field is easier than ever. Thanks to the Robot Operating System (ROS), you can completely abstract the hardware from the software, so you can program a robot by knowing the robot’s ROS API and testing it on a simulation. Using the ROS API, you can forget about the hardware and concentrate on the software that makes the robot do what you want.
What is the robot’s ROS API?
The ROS API lists of ROS topics, services, action servers, and messages a given robot provides to access its hardware, sensors, and actuators. If you are unfamiliar with ROS, you may not understand these terms. But in the developer’s language, topics/services/messages are like the software functions you can call on a robot to get the data from the sensors and make the robot act. It also includes the parameters you can pass to those functions.
Most modern robot builders provide off-the-shelf ROS APIs. For example, the ROS-Components shop, provides all its hardware with a ROS API.
If the robot you want to work with does not run ROS, you can make it work with ROS by ROSifying it. ROSifying means adapting your robot to work with ROS. To ROSify a robot usually requires knowledge to access the hardware. You need to learn to communicate with the electronics that provide the sensor data or access the robot’s motors. In this post, I’m not dealing with that subject because it’s out of the scope of developers. We assume you will be working with a robot already ROSified.
What is ROS anyway?
ROS stands for Robot Operating System. Even if it says so, ROS is not a real operating system since it goes on top of Linux Ubuntu. ROS is a framework on top of the O.S. that allows you to abstract the hardware from the software. And that is good news for you because this implies that you can create programs for robots without dealing with the hardware. Yay!
ROS is becoming the standard in robotics programming, at least in the service robots sector. Initially, ROS started at the university level but quickly spread into the corporate world. Every day, more companies and startups are basing their business on ROS.
Before ROS, every robot was programmed with the manufacturer’s own API. If you changed robots, you had to start the software again, apart from learning the new programming environment. Furthermore, you had to know a lot about interacting with the robot’s electronics to understand how your program was doing. The situation was similar to the computers of the 1980s when every computer had its own operating system, and you had to create the same program for every type of computer.
ROS is for robots like Windows is for PCs or Android for phones.With a ROSified robot, you can create programs to be shared among different robots. You can build a navigation program, a program that makes the robot move around autonomously without colliding, for a four-wheel robot built by company A and then use the same code to move a two-wheel robot built by company B…or even use it on a drone from company C.
ROS for industrial robots
ROS is being used in many of the current service robots. Conversely, industrial robotics companies are still not entirely convinced about using it, mainly because they will not have a proprietary system. However, several years ago, an international group called ROS-Industrial was created. They aim to make industrial manufacturers of robots understand that ROS is for them since they can use all the software off-the-shelf that other people have created for other ROS robots.
ROS for agricultural robots
In the same line as ROS-Industrial, ROS-Agriculture is another international group that aims to introduce ROS for agriculture. I highly recommend that you follow this group if you are interested in robots for agriculture because they are a very motivated team that can do crazy things with several tons of machines by using ROS. Check out, for instance, this video about an autonomous tractor running ROS, built by Kyler Laird of the ROS-Agriculture group.
How to develop for robots with ROS
Now, if you are convinced about becoming a robotics developer, here are the steps that you can take to become a robotics developer:
Setting Up
Learning
Coding
Testing
Setting Up
First, set up your system to install ROS installed on your development system. Let’s see how to set up your machine for programming robots with ROS. You have two options:
Install everything on your computer. See below.
Use our online ROS Development Studio which already provides everything set up and only requires a web browser.
Which operating system should you use with ROS?
ROS works on Linux Ubuntu or Linux Debian. ROS also can work on Windows and Mac, but the development in those systems is not as mature. I recommend installing one of Ubuntu’s latest versions on your computer. As of, May 2022, I recommend installing Ubuntu 20.04. You can skip this step if you use the ROS Development Studio.
But I’m using Windows/Mac, not Linux. Can I still develop in ROS?
If you still want to use Windows or Mac for ROS development, you have two options:
Full support exists for OSX, Gentoo, and Windows, but I don’t recommend using them yet. I’ve never met anyone who installed ROS on Windows or Mac without trouble. If you still want to go that way, check this page for more information about ROS on those systems.
Use the ROS Development Studio, where you can fully develop for ROS using a web browser. This is our online platform that provides a complete ROS environment working with your web browser and requires no installation. I especially recommend this if you are teaching and need your students to be quickly on track.
Which ROS version should I install?
Currently, there are two different versions of ROS: ROS1, also called Classic, the original. And ROS2, ROS2 is more modern and oriented toward building robotics products. If you are new to ROS, I advise you to go straight to ROS2, but depending on your goals, you may prefer to go for ROS1. I created a video to help you decide which one to go for.
Install ROS
Once you have an Ubuntu system working, install ROS. Both versions of ROS are published in distributions. A distribution is a new release of ROS, usually once every two years. Every distribution has a specific name.
First, you need to be comfortable using the Linux shell. Also, you need to know how to program in C++ or Python. If you still don’t know any of these, I recommend you start with the following free online courses:
As I already mentioned, ROS can be programmed in C++ or Python. However, if you don’t know C++, do not try to get into ROS with C++. If that is your situation, please learn ROS with Python. Of course, you can start learning C++ now because C++ is the language used in the industry, and you will need to transition from ROS Python to ROS C++ later, but your initial ROS learning should be done by programming in Python.
You will think you can handle it and take both (learn ROS and C++) simultaneously, but…bad decision. And good luck.
Finally, bindings exist for other languages, like Prolog, Lisp, Nodejs, or R. Find a complete list of currently supported languages here. I do not recommend that you learn ROS with any of those languages. ROS is complicated enough without you complicating it more with experimental languages.
Of all the methods, I recommend our online Robot Ignite Academy because it is the fastest and most comprehensive learning route. This is not something that I say, but what our customers say. Our online academy has a cost, but it will considerably speed up your learning of ROS.
On the other side, Open Robotics, which builds and maintains ROS, provides a long list of tutorials here for ROS1 and another for ROS2. The list is so extensive that it can be overwhelming. If you decide to use this method to learn ROS, then I recommend that you proceed in the following order for the tutorial for optimal learning:
Navigating the ROS file system
Creating a ROS package
Understanding topics
Writing publishers and subscribers
Examining publishers and subscribers
Writing service client
Examining service client
Creating Msg and Srv
Understanding service params
Defining custom messages
Recording and playing back data
ROS TF
ROS URDF
ROS Control
ROS Navigation
Here you can find a complete summary of the main topics you need to learn about ROS basics with clickable links.
As a final recommendation, apart from being a ROS teacher at the Master of Industry 4.0 of UPC University, I am delivering a live online class about ROS every Tuesday at 18:00 CEST/CET. I recommend you attend and practice a new ROS subject with me every Tuesday at the ROS Developers Open Class. It is free and an excellent opportunity to master a single subject of ROS with a simulated robot.
Coding
You will need a C++ or Python code editor. Follow this page to get an overview of the main IDEs you can use to write ROS code. However, I recommend only two of the available options:
If you want to install the editor on your computer, use the VSCode editor with its ROS extension. It is by far the best editor for ROS coding.
If you want to skip this step, use the ROS Development Studio instead since it comes with an integrated IDE in your browser, requires no installation, and allows the easy sharing of projects.
Testing
How can you test the programs you are developing for a robot? I am assuming here that you do not have access to a robot; actually, you do not want to have access!! Remember: developers!!Well, you have several options to test your ROS programs without using a robot.
You use mocks
If you are a developer, you already know what mocks are. You can create your own mocks that emulate the connection to the different parts of the ROS API of your robot.
On this page, you will find information about using mocks in ROS.
Working with mocks in ROS is not an easy option since it requires a lot of preparation work. Also, its usefulness is limited since it can only produce what you have put on it previously. Using mocks is an option that I don’t recommend for developing. Use it only if you cannot use any of the other options below or if you are creating unit tests. In my experience, I have never used them. I have always used one of the next two options.
You use ROS bags
ROS provides a way to record in a log file the full ROS API of a robot while running in a real-life situation and then run it back later on another computer. This log file is called a ROS bag. When you run a ROS bag on another computer, the computer will show the same ROS API to your recorded programs.You can learn how to use ROS bags here: record and replay of ROS bags.
ROS bags are a limited system because you can only use them to create an algorithm that does something from sensor data. This means that you cannot generate commands for the robot because it is only a reproduction of data, so you can get the same data as the robot got when recorded, but you cannot decide new actions for the robot.
You use simulations
So if you want to go pro without using a real robot, you should use robot simulations. Simulations are the next step in software development.
Simulations are like having the actual robot by your side but without having to care for the electronics, hardware, and physical space. Roboticists consider simulations the ugly brother of robotics. Roboticists usually hate to use simulations because it is not the real robot. Roboticists like contact with the real thing. But fortunately, we are here talking with the opposite kind of people, those who want to keep their hands off the hardware. For those, simulations are essential.
Let me tell you one thing: robot simulations are the key to intelligent robots, even if roboticists do not
admit it. More on that in future posts, but remember you read it here first!
In the case of simulations, you have a simulation of the robot running in your computer that can run and act like the real robot. Once the simulation runs, your computer will present the same ROS API programs you would have had if you were on the real robot’s comupter. That is the same as in the case of the ROS bags, with the advantage that you can now actually send commands to the robot and the simulated robot will reply accordingly. That is awesome!
To use robot simulations, ROS provides the Gazebo simulator already installed. You only need the robot simulation you want to program for running. Usually, the companies’ creators of the robot provide a simulation of their robot that you can download and run on the Gazebo simulator.
Installing simulations and making them run could be a little more of hassle. If you want to avoid that work, I recommend using our ROS Development Studio which contains the simulations ready to be launched with a single click and has ROS, IDE, and other valuable tools. Everything executed on a web browser requires no installation.
An example of the ROS Development Studio working with a simulation, ROS navigation stack, Rviz, and a terminal recording a ROS bag:
Additional robotics concepts you need to master
The final step to becoming a robotics developer is to master some robotics subjects.I’m sure that as a software engineer, you already understand many of the topics above because they closely relate to the typical job of a software developer. However, some concepts are closely tied to robotics that a software engineer needs to master (in the same sense that if you need to create invoices, you need to understand some accounting concepts). Robots are living things, I mean, things that move around. That entails a series of new concepts you need to learn because program will not stay in a fixed place anymore).What follows is a list of concepts that you need to understand to create robot programs. I have included a link to online courses that teach these subjects:
In this post, I have shown the future of becoming a robotics developer and how you can become one. Let me know in the comments what doubts you may have and which problems you encounter when following this path.
Related links about ROS that may clarify things for you
Here are some additional links that can provide more information about the future of ROS and how to become a ROS developer.
Robotics Developer Masterclass: A program that equips you with the skills to become a job-ready robotics developer. Enroll in the Robotics Developer Masterclass Batch 5 – September 2024 before August 1st and get €100 off per month!
ROS Developers Days: an online conference where you can learn by practicing with robotics developers from universities and companies worldwide.