ロボティクス開発者になるための学習パス

ロボティクス開発者になるための学習パス

(以下の文章は人工知能によって翻訳されました。元の文を表示するにはこちらをクリックしてください。)

ロボティクス・デベロッパーを目指しているのですね。ロボットのためのプログラムを作成する人、それがあなたの目標ですね。現在、世界にはロボティクス・デベロッパーが不足していると言えるでしょう。この職業は急成長しており、魅力的な給与も期待できます。(下の画像をご覧ください。それは2022年12月のGlassdoor.comから得られたものです。)

robotics_developer_salary

おそらく、あなたはエンジニアリングの学位を取得していますが、実際の仕事への適用が不足していると感じているのかもしれません。そこで、ロボティクス・デベロッパーになるために必要な実用的なコンテンツをオンラインで探し始めることに決めました。一度コンテンツを手に入れたら、それを追い、知識を獲得するだけのことですね。それでしょうか?

まあ、その通りとも言えますし、そうでないこともあります。このアプローチの問題は、ロボティクスとロボティクスのソフトウェア開発に関するオンラインのコンテンツがあまりにも多いことです。

コンテンツの量(無料と有料の両方)は非常に膨大であり、適切な道筋を提供してくれる人がいない限り、学習プロセスで多くの時間を浪費してしまうでしょう。

したがって、自己学習を効果的に行うために、まず次のことを理解する必要があります:

  • どのコンテンツを選択すべきでしょうか?
  • そして、学習コンテンツをどのように優先すべきでしょうか?

次の投稿では、これらの質問に答えます。ロボティクス・デベロッパーになるためには、どの科目をどの順序で習得する必要があるかを示します。あなたがゼロの知識から始めると仮定しています(つまり、基本的な高校数学のスキルのみを持っています)。

この投稿は、私たちの「Robotics Developer Masterclass」でフォローしている構造と同じです。私たちの6ヶ月の学習計画は、あなたをゼロからロボティクス・デベロッパーに導き、ロボティクス会社でのインターンシップを通じて仕事を見つけるお手伝いをします。したがって、この投稿の学習計画が機能することを保証できます!

0. 前提条件

まず、より複雑な科目を学ぶためのシステムの基礎が必要です。必要な最小限の基本知識は次のとおりです:

これらの科目に関する優れた書籍:

1. ロボットプログラムの基礎

このセクションでは、ロボットプログラミングの基礎スキルを構築します。これには次のトピックが含まれます:

  • C++、詳細な理解。ほとんどのロボティクスの仕事では、優れたC++の知識が必要ですので、できるだけ早く学習を始めて経験を積む必要があります。C++を学ぶ上で重要なポイントは、実際のプロジェクトでの練習に時間を費やすことです。そのため、早く始めれば始めるほど良いです。
  • Gitバージョン管理。Gitは開発者が協力して作業するためのツールです。企業で働く際には「私のコード」という概念は存在しません。あなたのコードは他のエンジニアのコードと連携する必要があります。Gitはすべてのロボティクスプロジェクトでこの協力を容易にするためのツールです。このツールをマスターし、独学で学んでいる場合でもGitを使用してロボティクスプロジェクトを開発してください。
  • ROS2の基礎。ROSはロボティクスの標準です。学習の残りにこのフレームワークを学び、使用してください。ROSもC++と同じ問題があります:理論を早く学ぶことはできますが、実際の学習は異なるロボットと状況で練習を始めたときです。したがって、このツールを基に学習し、学習フェーズ中にできるだけ多くの練習を行いましょう。
    • ROSの基本を学ぶには、パッケージ (packages)、メッセージ(messages)、トピック(topics)、サービス(services)、アクション(actions)の基本的な概念を学ぶことが含まれます。また、URDFを使用したロボットモデリングと変換(TF)の概念も含まれます。ただし、これはROSで知っている必要がある最低限の内容です。
    • どのROSバージョンを学ぶべきでしょうか?今、ROS2を学ぶ必要があります。
  • ロボットのシミュレーション。シミュレーションはロボット開発において不可欠なツールです。ハードウェアを扱いたくない場合、コードのテストを行う場所が必要です。それがシミュレーションです。ROSの世界では、Gazeboシミュレーターでシミュレーションを行う方法を学んでください。これはROSのデフォルトのシミュレーターであり、よく統合されています。

2. 自分のロボットを組み立てる

開発者の仕事を探している場合でも、ロボットのプログラムを書くだけでなく、ロボットの組み立てに関する基本的な知識が必要です。

あなたは自分自身のロボットを組み立てるべきです。基本的なものであっても、様々な部品が物理的にどのように相互作用するかを見ることが重要です。このプロセスは、後でプログラミングに適用できる物理的要素に関する基盤となる知識を提供し、なぜ特定のソフトウェアコンポーネントが必要であり、なぜそれらが機能しないのか、問題が発生した際に問題を特定するのに役立ちます。

少なくとも2つの車輪、エンコーダ、バッテリー、および1つのセンサー(カメラは最も安価なバージョンですが、できればLIDARを含めてください)を持つ車輪付きロボットを組み立てることを目指してください。

ロボットを組み立てたら、ROSのコントローラーを追加する必要があります。しかし、この時点でのあなたのROSの知識は低いでしょうから、他の誰かが開発したROSのコントローラーを持つロボットを組み立て始めることをお勧めします。これにより、リポジトリのクローン、コンパイル、およびそれらのコントローラーのインストールの練習ができます。

この段階でそのロボットのコントローラーを作成しようとすることはお勧めしません。なぜなら、それにはかなりの時間がかかるからです。もちろん、多くのことを学ぶことができますが、他人のコードを読み理解することでプロセスをスピードアップさせることができます。結局、仕事を得た後、このプロセス(リポジトリのクローン、他人のコードの理解、インストールなど)を頻繁に行う必要があるからです!

ロボットについては、NVIDIAボードをベースにしたJetbotまたはNanosaurをお勧めします。これらはあなたが必要とするすべての部品とROSコントローラーを提供しているからです。

3. 上級ロボット制御プログラミング

ここまでで、ロボティクス・デベロッパーに必要な基本的な基盤を身につけています。

ここまでで、ロボティクスの開発者に必要な基本的な要素をマスターしました。次のステップに進んで、その知識を実際のタスクに適用し、ロボットがタスクを遂行するようにします。ロボットのさまざまなスキルを習得し、それをタスクの解決に適用する必要があります。

  • ロボットのナビゲーション、つまりロボットを自律的に移動させる方法
  • ロボットのパーセプション、つまりロボットが環境を認識し、タスクに関連する部分を検出する方法
  • ロボットの操作、つまりロボットが環境のオブジェクトに対して掴んだり押したり解放したりする方法
  • ロボットモーターに制御を追加する方法

4. ロボティクスの基本理論

ここで理論を学ぶ時がきました。あなたはロボティクスの開発で働くつもりであり、既にあなたのために作られた多くの解決策を使用するかもしれませんが、ロボティクスの基本的な理論を理解することは、何かがうまくいかなかった時に何が起こっているのかを理解するために必要です。また、理論を知っていることで、より優れたロボティクスのアルゴリズムを構築することができます。

このセクションには以下が含まれるべきです:

  • モバイルキネマティクス (Mobile Kinematics)
  • アームキネマティクス (Arm Kinematics)
  • カルマンフィルター (Kalman Filters)
  • ロボットダイナミクス (Robot Dynamics)
  • ロボット制御 (Robot Control)
  • パスプランナーアルゴリズム (Path Planner Algorithms)

私は、アルゴリズムを教えながらそれを実装させる教材を探すことをお勧めします。これは、その理論を学び、脳に定着させ、それを自分のロボット実装で使用する内容と結びつける最も効率的な方法だと私は思っています。

5. ロボティクスの開発ツール

これまで、あなたはロボットをプログラムし、動かすことについて多くを学んできました。しかし、それらの知識をロボティクス企業での仕事に応用する際には、プロの環境でのソフトウェア開発に必要なツールも理解する必要があります。再び、あなたは独自のコードを書いているだけではありません。あなたは、フルロボットソフトウェアを共同開発するチームの一部です。そのため、適切なソフトウェア開発のツールの使用方法を学ぶ必要があります。

これらのツールには以下が含まれます:

  • Docker
  • Jenkinsまたは同様のプロセスを自動化するツール
  • ユニットテスト(Unit Tests)
  • 機能テスト (Functional Tests)
  • 継続的統合 (Continuous Integration – CI)

目標は、開発ツールがすべて統合されて、展開、テスト、エラーの検出の完全なパイプラインを持つ方法を理解することです。これが継続的統合です。したがって、継続的統合を実行する方法、GitのプッシュをJenkinsのアクションに統合する方法、コードと一緒にDockerをデプロイしてテストする方法、テストと関連するシミュレーションを実行し、テストの成功に基づくレポートを生成する方法を学ぶ必要があります。

6. 追加の科目

追加のオプションの科目として、以下を学ぶことをお勧めします:

  • ROS1。まだ多くの企業がROS1で作業しているため、その動作方法を知る必要があります。ROS2と非常に似ていますが、ROS1ロボット向けのソフトウェアを作成する際のいくつかの違いを理解する必要があります。
  • ロボットのためのインタフェースを作成するためのウェブ開発。将来のロボットはさまざまな製造業者から提供されるため、ウェブインタフェースはロボットと人間のデバイス間の唯一の普遍的なインタフェースです。したがって、ロボットの状態を表示し、リモートで制御するためのウェブインタフェースを作成する方法を学ぶ必要があります。

完全なスキーマ

robotics_developer_learning_path

TIP: 学習中に実践しましょう

最終的な推薦事項は、このすべての教材を学ぶために、ただ動画を見たり本を読むだけではなく、学習の各段階で教材を実践する必要があるということです。これが科目をマスターできる唯一の方法です。

そのため、ロボットのシミュレーションを提供するソースを見つけるか、少なくともコードをダウンロードして自分の解決策をテストできるgitリポジトリを提供するソースを見つけることをお勧めします。The Constructの無料のロボットシミュレーションのパブリックリポジトリをチェックし、いくつかのシミュレーションをダウンロードして練習することができます。また、無料でインストールなしでどんなコンピューターでも動作するコードとシミュレーションを提供するThe Construct Open Classesをチェックできます。

今すぐ始めましょう!

さて、インターネットで上記の教材を提供する最良のリソースを探すことができるようになりました。これがあなたの計画であるべきです:

  1. それらを確認して、最良の教材を選択するために数日を費やします。
  2. 各科目ごとに選択した教材のリストを作成し、ビデオ/投稿/コースへのリンクを含むドキュメントに記録します。もし本を利用する場合は、今すぐ注文してください。
  3. 次に、各科目を終える予定を詳細に示すカレンダーを作成します。これは特に独学でプログラムを進めている場合には必須で、カレンダーは説明責任の役割を果たします。これは独学の際に最も難しい部分です。
  4. その後、それらの教材に集中して学習を完了させます。リストを再度作成しないでください。そうしないと終わることはありません。リソースの数が膨大すぎます!学習よりも材料をまとめることに集中すべきではありません(それは先延ばしの方法であり、意志力が不足していることを示すサインです)。

もし意志力が弱点である場合…

自分の道のりで最も弱い点は意志力です。自己学習アプローチの主な欠点は、最適な道筋がないことでも、最適な教材を見つけられないことでもありません。それは、計画を最後まで実行する意志を持つことです。これは、自己誘導学習が+80%以上の割合で失敗する場所です。

この落とし穴を避け、あなたをサポートし、励まし、前進させてくれるチームを持ちたい場合、私たちの「Robotics Developer Masterclass」をチェックしてみてください。この6ヶ月のプログラムでは、パスとすべてのリソース、学習をサポートするチューターのグループ、シミュレートされた実際のロボット、プロジェクト、そして卒業後の最終的なインターンシップを提供します。

私たちの「Robotics Developer Masterclass」は、雇用可能性を考慮したプロジェクトベースの学習です。もちろん、ロボティクスの理論も教えますが、ロボティクス開発者としてロボティクス企業で働く際に使用するツールを重視しています。

そして、私たちはプログラム全体を通してあなたをサポートします!ぜひご覧ください!クラスは毎年3月と9月に開始します。この割引クーポンコード(1F862C99)を使用して、Masterclass 2024-Batch 1に登録し、100€の割引を受けてください!

YouTubeで提供しているRobotics Developer Masterclassに関するQ&Aセッションをチェックしてください。

まとめ

これで、ロボティクス開発の仕事を得るためにマスターすべき基本的な知識のリストができました。

やってみてください。次の6ヶ月で、あなたの未来をより良いものに変えることができるでしょう。

最終的な推薦事項:学習プロセス中に、どの科目があなたにとってより興味深いかに注意を払ってください。おそらく、このプログラムで学んだトピックはさまざまな方法で深化させることができます。そして、すべての科目のマスターにはなれないので、自分に最も魅力的な科目に注意を払い、プログラムを終了した後にそれらについてさらに学ぶか、それらの科目に関連する仕事を探すことが重要です。

さあ、自分の宿題をしましょう。未来のロボットはあなたにかかっています!

 

Canonical and The Construct partner to create a course on How To Deploy ROS Applications

Canonical and The Construct partner to create a course on How To Deploy ROS Applications

We are excited to announce a groundbreaking new collaboration between The Construct and Canonical (Developers of Ubuntu) on a brand-new robot programming course – Distributing ROS Apps with Snaps. This course is now online and available to everyone.

Throughout the course, you will learn the basics of snap creation for a ROS and ROS 2 application, including how to confine your robotics application and make it installable on dozens of Linux distributions.

This course is ideal for anyone interested in robotics development. Whether you are a student, a robotics developer looking to improve your robotics skills, or simply interested in learning something new, this course is perfect for you!

“We are excited to partner with Canonical on this important course.” said Ricardo Tellez, CEO of The Construct. “Robotics is an ever-expanding field, and the need for professionals who can program and develop robots is growing exponentially. By partnering with the experts from Canonical, we can provide a course from the creators of the technology themselves (snaps). Nobody better to create such a course!”

The course launches on February 16, 2023, at The Construct’s online academy. For more information, please visit our website or subscribe to our newsletter at https://app.theconstructsim.com/.

We are thrilled to offer this exciting new program and look forward to helping you reach your goals in robotics development!

A Learning Path To Become a Robotics Developer

A Learning Path To Become a Robotics Developer

(本文は日本語版もあります。こちらをクリックしてご覧ください。)(이 텍스트에는 한국어 버전도 포함되어 있습니다. 확인하려면 여기를 클릭해주세요.)

So you want to become a Robotics Developer. You know, a guy that creates programs for robots. After all, there are not enough robotics developers in the world. It is a profession on the rise, and with good salary prospects. (See the image below, obtained from Glassdoor.com June 2025)

Maybe you have finished an engineering degree but feel a lack of application to real jobs. So you decide to go online to find the practical content required to become a Robotics Developer. Once you have the content, it is a matter of following it and acquiring the knowledge. Right?

Well, yes and no. The problem with that approach is that there is too much content online about robotics and software development for robotics. 

The amount of content material (free and paid) is so massive that, unless somebody provides you with a proper roadmap, you will lose a lot of time in the learning process.

So in order to effectively learn by yourself, first, you need to figure out the following:

  • Which content should you select? 
  • And, how should you prioritize the learning content?

In the following post, I’ll answer those questions. I’ll show you what subjects you must master and in which order to become a Robotics Developer. I have assumed that you are starting with zero knowledge (i.e., basic high school maths skills only).

This post describes the same structure that we follow in our Robotics Developer Masterclass. Our 6-month learning plan guides you from zero to Robotics Developer and helps you land a job by means of our included internships at a robotics company. So I can asure that the learning plan of this post works!

0. Pre-requisites

First, you require a foundation for the systems used to learn more complicated subjects. The minimum basic knowledge required is the following:

Good books about those subjects:

1. The basics of robot programming

In this section, you will build your foundation skills for robot programming. This includes the following topics:

  • C++, in-depth. Most robotics jobs require you to have an excellent knowledge of C++, so you need to start learning it as soon as possible and gain experience. The critical point for learning C++ is to dedicate time to practice on real projects. That is why the sooner you start, the better.
  • Git version control. Git is a tool that allows developers to work collaboratively. Understand that when working in a company, there is no concept of “my code”. Your code will have to work with another engineer’s code. Git is the tool used in every robotics project to facilitate this collaboration. Master this tool and develop your robotics projects using Git, even if you study alone.
  • Basics of ROS2. ROS is the standard in robotics. Learn and use this framework in the rest of your learning. ROS has the same problem as C++: you can learn the theory quickly, but real learning begins when you practice with different robots and situations. So, base your learning on this tool and, practice as much as possible during your learning phase. 
    • Learning the basics of ROS includes learning all the basic concepts of packages, messages, topics, services, and actions, as well as robot modeling using URDF and the concept of transformations (TF). However, that is the bare minimum you need to know in ROS.
    • Which ROS version should you learn? Now, you need to know ROS2.
  • Robot simulations. Simulations are an essential tool in robot development. After all, if you don’t want to deal with the hardware, you will need a place to test your code. That is in the simulation. So go and learn how to do simulations with Gazebo simulator. That is the default simulator in the ROS world and integrates well.

2. Build your own robot

Even if you are looking for a developer’s job (this is programming robots, not building them), you still require a basic knowledge of the parts and pieces of a robot and how they interact together to build the final robotic system.

You should build your own robot, even if a basic one, to see how the various parts interact physically. This process will give you a grounded knowledge of physical elements that you can later apply to your programming, an understanding why some software components are required, why they do not work, and isolate problems when something doesn’t work.

Aim to build a wheeled robot with a minimum of two wheels, encoders, batteries, and one sensor (a camera is the cheapest version, but if you can afford it, include a LIDAR).

Once the robot is built, you will need to add ROS controllers to it. But since your ROS knowledge at this time will be low, I recommend you start building a robot that already has the ROS controllers developed by somebody else, so you can practice cloning the repo, compiling, and installing those controllers.

I do not recommend trying to create the controllers for that robot at this stage because it will take a considerable amount of time. Of course, you will learn a lot, but you can speed up the process by reading another person’s and understanding it. After all, you will have to do that process (cloning repos, understanding other people’s code, installing…) often once you land a job!

As for the robot, I recommend the Jetbot or the Nanosaur, both based on NVIDIA boards. I recommend those because they provide all the pieces you need as well as the ROS controllers.

3. Advanced robot control programming

Up to this point, you will have mastered the basic building blocks required for a robotics developer. Now, go to the next level, to apply that knowledge to a robot, making it accomplish tasks. You must master a robot’s different skills and apply them to task resolution.

  • Robot navigation, or how to make the robot autonomously move from one location to another
  • Robot perception, or how to make the robot perceive its environment and detect the relevant parts for its task
  • Robot manipulation, or how to make the robot act upon the objects of the environment by grasping, pushing, and releasing them, etc
  • How to add control to robot motors

4. Robotics theory basics

Now it is time to learn the theory. Even if you are going to work in robotics development and use many solutions already made for you, a minimum of robotics theory is necessary to understand what happens when something goes wrong. Also, knowing the theory will allow you to build better algorithms for robotics.

This section should include the following:

  • Mobile kinematics
  • Arm kinematics
  • Kalman filters
  • Robot dynamics
  • Robot control
  • Path planner algorithms

I recommend that you search for material that teaches you the algorithms while making you implement them in robots. I have found that this is the most efficient way to learn all that theory, make it stick in your head, and find the relation with what you use in your robot implementations.

5. Development tools for robotics

So far, you have learned a lot about programming robots and making them do things. However, when you apply that knowledge to a job in a robotics company, you also need to understand the tools required for software development in a professional environment. Again, you will not be alone, doing your own code. You will be part of a team that, develops the full robot software together. Then, you need to learn to use the tools used for proper software development.

Among those tools, include:

  • Docker
  • Jenkins or a similar tool to automate processes
  • Unit tests
  • Functional tests
  • Continuous integration

The goal is to understand how all the development tools integrate to have a complete pipeline of deployment, testing, and detection of errors. This is continuous integration. So you need to learn how to perform continuous integration, integrate Git pushes with Jenkins actions, deploy dockers with the code to test, launch the tests and associated simulations, and generate reports based on the success of the tests.

6. Extra subjects

As additional optional subjects, I recommend studying the following:

  • ROS1. Many companies still work on ROS1, so you need to know how it works. Even if very similar to ROS2, you need to understand some differences in creating software for ROS1 robots.
  • Web development to create interfaces for robots. The robots of the future will be from many different manufacturers, and the web interface is the only universal interface between the robots and human devices. So robot interfaces will not be based on apps but on the web.

Learn how to create web interfaces that display the robot’s status and allow you to control it remotely.

Full schema

robotics_developer_learning_path

TIP: Practice while studying

My final recommendation would be that, in order to learn all this material, you do not just watch videos or read books. If you want to get the knowledge, you need to practice the material along every step you are studying. That is the only way you can master the subjects. 

For that, I recommend you find sources that provide you with robot simulations or at least git repos with code that you can download and test your solutions. You can check The Construct’s public repo of free robot simulations and download some simulations to practice with them. You can also check The Construct Open Classes, delivered each Tuesday online, which provide a lot of code and simulations already working on any computer without requiring any installation, and everything for free.

Start now!

So now you can search the internet for the best resources to provide you with the materials above. This should be your plan:

  1. Dedicate a few days to select the best materials by reviewing them.
  2. Make a list of the materials you selected for each subject in a document with links to the videos/posts/courses. If you are relying on books, order them now.
  3. Then, make a calendar detailing when you will finish each subject. This is mandatory, especially if you are following the program by yourself. The calendar will act as accountability, which is the most challenging part when studying alone.
  4. Then concentrate on those materials until you finish. Do not redo your list, or you will never end. The amount of resources out there is too huge! You should concentrate on learning rather on compiling more material (that is a way of procrastination, and signals that you lack willpower).

If willpower is your weak point…

Take into account that the weakest point in your path is your willpower. The main drawback of the self-learning approach is not not having the optimal path, and it is not not finding the optimal materials. It is, having the will to follow your plan until the end. This is where most self-guided learning fails at a +80% rate.

If you want to avoid that pitfall and wish to have a team that supports you, motivates you, and pushes you forward, check out our Robotics Developer Masterclass. In this program, we provide you with a path and all the resources, a group of tutors supporting your learning, simulated and real robots, projects, and a final internship once you graduate.

Our Robotics Developer Masterclass is project-based learning with employability in mind. Of course, we teach you robotics theory, too, but we emphasize the tools that you will use when working for a robotics company as a robotics developer.

And we will be pushing you along throughout the program! Check it out! Classes start in March and September each year. Enroll in the Robotics Developer Masterclass Batch 8 – September 2025: https://www.theconstruct.ai/robotics-developer/

Check the Q&A session about the Robotics Developer Masterclass that we are delivering on Youtube

Conclusion

Now you have a list of the essential knowledge must you master to land a robotics development job.

Go for it. The next 6 months can change your future for the better.

Final recommendation: during the learning process, pay attention to which subject sparks more interest in you. As you may imagine, the topics you learn in this program can be deepened in many ways. And since you cannot be a master of all the subjects, you should pay attention to those subjects that attract you more, and then, once you finish the program, go and learn more about them, or search for jobs related to that subject.

Now, go and do your homework. Your robotics career is about to begin!

 

What is Fleet Management in Robotics? [List of State-of-the-Art Solutions]

What is Fleet Management in Robotics? [List of State-of-the-Art Solutions]

More and more robots are being used in factories, warehouses, and other environments all around the globe. And with this increasing number of robots working in the same space comes the necessity of organizing and optimizing robots’ tasks and interactions.

The problem

Let’s assume we have an heterogeneous group of 30 robots that are in charge of running a coffee shop. While we want some robots preparing the coffees, we want others serving them to the tables, others cleaning the tables, and others refilling the systems. We need to control automatic access to certain zones of the coffee shop, like automatic doors and elevators. We need to be able to deliver all those tasks in the most optimal way, at the same time that we manage the robots’ charging cycles.

And all this while, they don’t bump into each other, into other people and don’t run rampant all around the shop, or even lose themselves and end up in the toilet or out in the street.

All this isn’t easy to manage.

How to attack the heterogeneous fleet management problem

An heterogeneous fleet of robots can be composed of:

  • Different types of robots: for instance, mobile bases, robotic arms, drones, etc
  • Different manufacturers’ robots: this means, even if all the robots of our fleet are mobile bases, may be some are from one manufacturer, and others from a different one
  • Several types of actuators: for instance, system to open/close doors through which the robots must go, elevator managers, connectors to other machines the robot must interact with…

The fleet management system must be able to handle heterogeneous fleets in an orchestrated way, in order to achieve the fleet goal. If the goal is to run a cafeteria, then, many different types of robots and actuators will have to work together to keep the cafeteria running and with satisfied clients.

Basic components of a fleet management system

Any fleet management system needs at least the following core systems:

  • Path optimization systems: Once a task is assigned to a robot, the execution of that task has a cost. This cost typically is time but could be energy or any other parameter you consider a valuable resource in your robot environment. The fleet management system must optimize that cost.
  • Task allocation systems: Not all robots can perform all the tasks. So it is necessary to have a system that knows which robot can do what. Also, assign priorities to each job to improve the performance of the global systems. A vital element is resource allocation optimization. The tasks must be designated so that it uses all robot resources in the best way possible.
  • New Task creation systems: a flexible infrastructure that allows to create custom tasks required for the robotics solution. For instance, a task that requires to pick an object, paint it, transport it somewhere else, check it, package it, and send it to the customer.
  • Integrators of diverse navigation, movement, and manipulation systems: We need something that allows us to use different navigation and movement systems transparently so we can perform the tasks independently of the inner workings of each robot in the fleets.
  • Conflict detection and resolution systems: No system is perfect, so when something happens, when the tasks assigned conflict, how can we detect them and resolve them automatically?
  • Robot fleet health management: We need a system to decide when to send the robots to charge or declare them unavailable.
  • Monitoring Tools: We need a way to watch all our fleets or robots and know which task they are performing: their battery percentage, general health status, and location, among other things.
  • IoT integrations systems: We need our robots to be able to talk with other elements of our environment, such as human-operated stations, doors, lifts, mechanization machines, packaging systems, cranes, or even other external robots.
  • ROS2 enabled: It’s a recommended feature if you intend to use all the ROS2 power and open source infrastructure.

Having a complete framework for fleet management that takes all those elements into account is costly, very difficult to implement, and complex. That is why most of existing solutions only concentrate on the orchestration of fleets of mobile bases.

Already available systems

What follows is a list of fleet management tools already available in the market. We list commercial and open-source solutions.

Fleet management solutions must be divided between:

  • software that only allows monitoring of the fleets
  • software that allows to act upon the robots at anytime to modify their tasks
  • software that orchestrates all the robots to provide the best task resolution

Collecting data, even if one of the functionalities of a fleet management software, cannot be considered fleet management per se. Fleet management requires to be actionable upon the robots at any time.

Dashboards and reporting tools

Those are tools to monitor fleets of robots but do not achieve control of the fleet. They are just monitoring and providing insights about the fleets

  • BridgeRobotics
    • Cannot be considered a fleet management system because it is only concerned on reporting status and analytics
    • It relies on MiR fleet Management system to actually do the fleet management

 

  • Formant
    • This tool, provides remote data from the robots
    • It also allows to control the robots remotely. I have included in the section of reporting tools because its remote control capabilites are not in the sense of fleet management/coordination, but more kind of remote control of the robots

 

  • Braincorp
    • In the same way as Formant, basically used for reporting and remote control, but not for fleet coordination towards the resolution of a task

Fleet management solutions

  • Omron
    • For the coordination of AGVs

 

  • MiR Fleet
    • Quite advanced, allows the integration of external elements, like doors or elevators in the control of the fleet

  • Otto Fleet Manager
    • Even if it manages tasks for robots, it is not thought for a globally orchestrated system where a global tasks has to be accomplished in an optimized way. This software is more for assigning individual tasks to a set of robots, in an independent manner.
    • For robot navigation tasks (no integration with other types of robots or IoT)
    • Only works with Otto robots
  • FetchCore Software
    • Even if it manages tasks for robots, it is not thought for a globally orchestrated system where a global tasks has to be accomplished in an optimized way. This software is more for assigning individual tasks to a set of robots, in an independent manner.
    • For robot navigation tasks (no integration with other types of robots or IoT)
    • Only works with Fetch robots
  • Addverb
    • Concentrated on the coordination of AGVs

Open source solutions

  • OpenRMF
    • This is the most promising solution because it is open, it is under active development, and integrates elements for fully heterogeneous fleets.
    • See a better description below
  • Rooster_fleet_manager,
    • It works on ROS1
    • Mainly for fleets of mobile bases. Doesn’t include support for other types of tasks besides navigation.
    • It’s not been updated since 2020 (as for Sep 2022)

  • openTCS-NeNa
    • Works with ROS2
    • Not been updated since 2021 (as for Sep 2022)
    • Also, only focused on coordinating the navigation of mobile bases.
    • You can get additional information about the project here.

Unfortunately, as you might see in most links and videos, the information and testing options are scarce or non-existent.

Open Robotics’ Fleet Management Tool

Luckily, the OSRF version, named RMF, seems to be the most promising, complete, documented and supported of those mentioned above.

Here you can find the documentation generated for it, which has a lot of elements still in the works but is promising nevertheless:

PROS:

  • Supports both ROS1 and ROS2. 
  • Its open-source nature of it makes it the best choice to start developing for your own company or even start a business of fleet management software.
  • It has a very active community and maintainers. See this discussion link to post new questions, issues, or feature requests.
  • It has all the above requirements in a ROS2 decoupled package system that allows you to mod very little.
  • It has some simulated demos that can at least give you a quick start for your application.
  • It is a really heterogeneous management system
  • It is open source

CONS:

  • It still needs a lot of work from the usability and stability points of view, especially from an industry standard (But now is the best time to learn it, and once it is stable, you will be among the FIRST ones to know how to use it).
  • The documentation has a lot of missing elements and examples, especially when it comes to integrating it into your own custom system.

Are you interested in learning about RMF or have tried but found it too time-consuming?

In that case, attend our ONLINE HANDS-ON RMF TRAINING:

  • three days training
  • 100% hands on: practice with simulations and real robots (remote access)
  • not need to setup anything, start from minute one
  • master multi-robot navigation and fleet management in ROS2

Enroll the next Managing Fleets of Robots With ROS2 training here

Remote access to the cafeteria

Remote access to the cafeteria

Real robots and simulations used at the training

Conclusions

  • Besides some commercial applications completely adapted to a specific company, it looks like there is no generic fleet management system apart from the Open-RMF, and even that, it is still on an early stage (as for September 2022).
  • The Open-RMF looks like the most promising fleet management software out there, given its openness and because it is developed by Open Robotics, the maintainers of ROS.
  • There has been an early attempt to define a kind of standard for robot inter-operability beyond the manufacturer. It is called the MassRobotics Interoperability Standard, which it is said that has been supported by several big players of the sector like Open Robotics (but I can’t find any mention to that standard anywhere). The idea is that manufacturers support that standard for interoperativiity, so your fleet management software can manage the robots of your fleet independently of who the manufacturer is. However, this standard doesn’t look moving forward (there are no documentation, the code is been stopped for almost a year (as September 2022)), as well as looking far away from an open standard (the name of the standard contains the name of the company that launched it. This may indicate that it is not so open).

Additional Resources:

3D Models of the 3D cafeteria:


 

ROS Awards 2022 Results

ROS Awards 2022 Results

The ROS Awards are the Oscars of the ROS world!

The intention of these awards is to express recognition for contributions to the ROS community and the development of the ROS-based robot industry, and to help those contributions gain awareness.

Conditions

  • Selection of the winners is made by anonymous online voting over a period of 2 weeks
  • Anybody in the ROS community can vote through the voting enabled website
  • Organizers of the awards provide an initial list of 10 possible projects for each category but the list can be increased at any time by anybody during the voting period
  • Since the Awards are organized by The Construct none of its products or developers can be voted
  • Winners are announced at the ROS Developers Day yearly conference
  • New on 2022 edition: Winners of previous editions cannot win again, in order to not concentrate the focus on the same projects all the time. Remember, with these awards, we want to help spread all ROS projects!

Voting

  1. Every person can only vote once in each category
  2. You cannot change your answers once you have submitted your vote
  3. Voting is closed 3 days before the conference, and a list of the finalists per each category is announced in the same week
  4. Voters cannot use flaws in the system to influence voting. Any detection of trying to trick the system will disqualify the votes. You can, though, promote your favorite among your networks so others vote for it.

Measures have been taken to prevent as much as possible batch voting from a single person.

Categories

The awards can be awarded in the following categories:

1. Best ROS Software

The Best ROS Software category comprises any software that runs with ROS. It can be a package published on the ROS.org repo of just a software that uses ROS libraries to produce an input. Open Source and closed source are both valid.

Examples: the ROS navigation stack, Rviz, OpenVino,…

ROS_awards_best_software

ROS Awards 2022 Best Software Finalists

Finalists of the 2022 Edition

  1. Ignition Gazebo, by Open Robotics
  2. Groot Behavior Tree, by Davide Faconti
  3. Webots, by Cyberbotics
  4. SMACC2, by Brett Aldrich
  5. ros2_control, by several ROS developers
  6. PlotJuggler, by Davide Faconti

Winner: Webots, by Cyberbotics

 

Learn more about the winner in this video:

 

2. Best ROS-Based Robot

The Best ROS-Based Robot category includes any robot that runs ROS inside it. They can be robotics products, robots for research, or robots for education. In all cases, they must be running ROS inside.

Examples: Turtlebot, Summit XL, Tiago…

ros_awards_2022_best_robot

ROS Awards 2022 Best Robot Finalists

Finalists

  1. Panda robot arm, by Franka Emika
  2. TIAGo, by Pal Robotics
  3. UR robot arm, by Universal Robots
  4. Turtlebot 4, by Clearpath
  5. Nanosaur, by Raffaello Bonghi
  6. Leo Rover, by Leo Rover

Winner: Nanosaur, by Raffaello Bonghi

 

Learn more about the winner in this video:

 

3. Best ROS Developer

Developers are the ones that create all the ROS software that we love. The Best ROS Developer category allows you to vote for any developer who has contributed to ROS development in one sense or another.

Examples: Tully Foote, Bence Magyar, Tomoya Fujita,…

ros_awards_2022_best_developer

ROS Awards 2022 Best Developer Finalists

Finalists

  1. Francisco Martín
  2. Davide Faconti
  3. Raffaello Bonghi
  4. Brett Aldrich
  5. Victor Mayoral Vilches
  6. Pradheep Krishna

Winner: Francisco Martín

Learn more about the winner in this video:

 

Insights from the 2022 Edition

  1. This year, the third time we organise the awards, we have increased the total number of votes by 500% So we can say that the winners are a good representation of the feelings of the community.
  2. Still this year, the winners of previous editions received many votes. Fortunately, we applied the new rule of not allowing to win previous winners, to provide space for other ROS projects have the focus on the community, and hence help to create a rich ROS ecosystem.

Conclusions

The ROS Awards started in 2020 with a first edition where the winners were some of the best and well-known projects in the ROS world. In this third edition, we have massively increased the number of votes from the previous edition. We expect this award will continue to contribute to the spreading of good ROS projects.

See you again at ROS Awards 2023!

A ROS2 Remote Warehouse Real Robot Lab For Industrial Training

A ROS2 Remote Warehouse Real Robot Lab For Industrial Training

Practice, practice, practice!

That is the motto behind all The Construct courses for learning how to program robots with ROS.

Since the very beginning, The Construct has focused on providing opportunities for practice with simulated robots instead of relying on basic video lessons.

Now we have taken an additional step by providing practice with real robots. How can you practice with real robots if you don’t have them? Connect remotely to our online real robot labs.

To provide this experience, we have created, in collaboration with Robotnik, the Remote Warehouse Robot Lab, where you can remotely connect and practice ROS1 and ROS2 with industrial collaborative robots.

You don’t have to install anything. We provide you with a full ROS1 and ROS2 environment on the web browser, so you can fully practice with ROS from any computer, including Mac, Windows or Linux. Access to the real robots is also managed through the browser, so you don’t waste time with ugly configuration issues.

Be on the edge of programming industrial collaborative robots.

Our goal is to keep you learning the latest technologies for programming collaborative robots with the most open and advanced frameworks and techniques.

For that goal we provide you with the Remote Warehouse Robot Lab, where you can practice with two types of industrial robots:

1. RB-1 mobile base by Robotnik

remote robot lab

This is a mobile base robot able to move shelves from one location to another. With this robot, students can practice:

a. How to make a robot autonomously navigate

real_robot_navigation

b. How to move shelves from one place to another

c. How to recognize environments, tags, people, or objects.

robot_auto_charge

2. UR3e robotic arm

This is a collaborative robotic arm with a gripper and a 3D sensor for perception. With this robot, students can practice:

a. How to move a robotic arm

ur_robotic_arm

b. How to grasp and release elements from a surface

pick_and_place

c. How to detect the objects to grasp through perception

Perception_to_grasp_object

How to use the Remote Warehouse Robot Lab

You can book a session with any of the robots. The RB-1 mobile base robot is available 20/7 (4 hours are required to recharge the mobile base throughout the day), and the UR3e robotic arm is available 24/7. You can find the schedule for each one of the robots inside The Construct’s lateral panel, under the Real Robot Lab option.

real_robot_lab_agenda

You will reach the page that allows you to make the booking

How to book a session

The process to access the robot is very simple:

1. Start the booking process

Log in to The Construct. Select the Real Robot Lab option on the left menu, and click on the Book Now button.

2. Select a robot

We offer a variety of robots in different remote labs. For example, in this Remote Warehouse Robot Lab, you can book the RB-1 mobile base robot or the UR3 robotic arm.

3. Select the ROS Distro to use

remote_select_ros_distro

4. Select the day and time

Select a day and time that the robot is available (slot in green color). Remember that times are shown in your local time.

remote_select_day

5. Confirm

Check that your booking is correct, and then confirm.

remote_confirm

You are done! You can work with the real robot on the day and time booked.

How to practice with the simulation before connecting to the real robot

A complete simulation of the real environment is provided. We strongly encourage you to test your code on the simulation before going to the real robot. Practice with a simulation allows you to quickly identify potential programming errors and not waste your time with the real robots.

The simulated robot lab is quite realistic and corresponds to the actual setup of the real robot lab. We have even included the shelves that the mobile base robot can carry.

remote_warehous_robot_lab_simulation RB-1 BASE Robot Simulation

 

How to connect to the real robots

5-minutes before your booked time, you will get a notification indicating you should be prepared to connect to the real robot.

1. Launch a rosject

Connecting to a robot only makes sense within the context of a ROS project. This means you want to connect to the robot because you have a ROS project that you want to test on it.

That is why, before connecting to the robot, you need to open a rosject (a ROS project within The Construct). Select the rosject you want to test from your list of rosjects and press the run button.

2. Press the connect button

Once the rosject is open, go to the bottom bar to see the icon to connect to the robot.

connect_to_real_robot

Press that icon and then press the Connect to Robot button. After a few seconds, you will have a view of the cameras located in our lab pointing to the robot working area. The cameras allow you to see what is happening in the lab when you execute your program. When the cameras appear, this means you are now connected to the real robot and anything you execute will be executed in the robot itself.

(secret tip 😉: you can use the web-joystick to control the robot, but you can also connect a gamepad to your computer and control the robot remotely. 😉

3. Launch your programs

Once you are connected, you can work as if you were inside the computer of the robot.

Opening a terminal allows you to launch your ROS programs and control the robot. You can use Rviz or any other tools to control and visualize the status of the robot.

running_my_programs

Practice with ROS1 or ROS2 setup

Practice with the robots can be done in any setup with ROS1 or ROS2.

The robots run ROS1 drivers natively, but The Construct’s platform allows students to launch the needed ros1_bridge and action_bridge required to manage everything in ROS2 (bridges provided and properly configured). Everything from basic ROS2 commands to complex Nav2 or MoveIt2 skills works correctly in this environment and allows you to practice complex ROS2 programs.

You can learn more about how those bridges work and how to use them in this online course: ROS2 Industrial Workshop.

Online Workshops

Apart from our regular students, we use the Remote Warehouse Robot Lab within the online workshops that we deliver. During the workshops, we teach on-camera to the students using Zoom. Students can connect to the lab from their own locations (any country worldwide) and practice with the robots.

For example, we use this procedure with the Get ROS2 Ready for Industrial Robots online workshop that we deliver every last week of the month. In this workshop, students dedicate  30 hours to learning how to program with ROS2 and connect to our real robot lab from their remote locations to practice them.

Who Should Access the Remote Warehouse Robot Lab?

  1. The remote warehouse robot lab is aimed at engineers who want to be up to date on the latest ROS skills.
  2. It is also useful for researchers that need to learn ROS skills fast.
  3. Finally,  the remote warehouse robot lab is useful for company leaders who need to have an overall understanding of the latest technologies for robotics in order to decide whether to use them or not.

You can create your own online remote robot lab!

The technology that we developed to create our own remote lab allows anybody to create their own remote lab with a few simple clicks. So, if you are interested in creating your own lab and making it accessible to a set of students or the whole world, contact us. It is a very simple and quick procedure and you can be delivering your robots to the world within an hour!

Check this video to have an idea of how to create your own remote robot lab.

 

Want to equip your team with ROS skills fast by practicing in our Warehouse Robot Lab?

Upgrade to the Enterprise license now!

Pin It on Pinterest