ロボティクスは開発者を必要としています!
ロボティクスはソフトウェアエンジニアとソフトウェア開発者を求めています。たくさんの人材が必要です。この記事は、今までロボットのプログラムを考えたことのないソフトウェア開発者を対象にしています。この記事では、以下の点について議論します:
- なぜあなたがロボティクス開発者になるべきなのか
- それがあなたにとって何を意味するのか
- どう始めるべきか
ロボティクス開発者とは?
ロボティクス開発者とは、プログラムスキルを駆使してロボットをプログラムする人々のことを指します。
ロボティクス開発者は新しい経路計画アルゴリズムを開発する必要はありません。新しい制御パラダイムを開発する必要もありません。新しい物体認識システムを発明する必要もありません。それは研究所のロボット工学者やAIの仕事です。ロボティクス開発者は、どのアルゴリズムが存在し、それをどのように使うか、いつ使うべきか、そしてそれを完全なロボティクスアプリケーションに統合する方法を知っている必要があります。したがって、グローバルなロボットは常に期待通りの動作をします。
それがロボティクス開発者の役割です。
ただし、ロボットのプログラムを書くことは、アプリやウェブページのプログラムを書くこととは異なります。プログラムのハードウェアは常に変化します(なぜならロボットは世界中で移動するから)し、予期せぬ問題が頻繁に発生します。そのため、プログラムはアプリよりも複雑になります。
ロボットプログラムは、アクションを起こし、そのアクションの結果を知覚するために常にハードウェアと対話します。これは、ユーザーとの相互作用だけではなく、ユーザーとロボットの世界との相互作用を連続的に変化する環境で考慮する必要があります。
なぜロボティクス開発者になるべきなのか?
最初の質問は、なぜあなたがロボティクス開発者になるべきかということかもしれません。私は以下のような答えがあります:
- ロボットプログラムには大いなる未来があります。世界中で使用されているロボットの数は急激に増加しています。
私が話しているのは、産業用ロボット、商業および消費者向けのロボットです。人間と対話し、タスクを手伝うロボットについて話しています。
産業用および軍事用ロボット分野は成長しているものの、サービスロボティクスの成長はそれ以上です。
- 大手企業もロボティクス分野に参入しています。DysonやTeslaなどの企業がロボットを製造しています。さらに、Googleのスピンオフ企業Intrinsicは、ロボットプログラムをプログラムするための独自のソフトウェア製品であるFlowstateをリリースするために、Robot Operating System(ROS)の開発チームを買収しました。これはトレンドです。
- しかし、エンジニアがまだ不足しています。ロボットの需要が増加しているため、多くの企業がロボット部門を設立しています。私たちのアカデミー(The Construct)には毎週新しい企業が参加しています。彼らはエンジニアをロボットプログラムの訓練を行いたいと考えています。これらの企業はロボティクス部門を持っていませんが、訓練を検討しており、適切に訓練されたロボットプログラムの知識を持つ人材を見つけることができません。ロボティクスプログラムの分野で起こっていることは、数年前にデータエンジニアとディープラーニングの分野で起こったことと似ています。今日、どの企業も機械学習エンジニアを求めており、機械学習エンジニアはどこにでもいます。機械学習の分野は今や過密状態です。しかし、ロボティクスプログラムの分野ではそうではありません。世界中には非常に少数のロボティクス開発者しかいません。今がこの分野で最初の一歩を踏み出し、その先駆者となる最適な時期なのです。
- ロボティクスエンジニアの需要は非常に高いです。日々、ロボットプログラマの求人が掲載されているロボティクスワールドワイドのメーリングリストを見れば分かります。求人にはさまざまな仕事が含まれています。企業、スタートアップ、研究機関で働くことができます。また、インターンシップ、博士号取得後の研究、ポスドク研究を行うこともできます。当社の求人ページで、各大陸別に分かれたロボティクスの仕事の週間リストをご確認ください。
- 給与面でも魅力的です。ロボットプログラムの給与はかなり魅力的です。異なる国々の平均給与は、このウェブサイトで確認できます。以下に、アメリカ合衆国の例を示します:
2023年7月時点のロボティクスソフトウェア開発者の給与
- リモートワークも可能かもしれません。ロボットのソフトウェア開発を行う場合、シミュレーションとDevOpsツールを使用してロボットをプログラムできるため、現場にいなくても仕事ができるかもしれません。詳細は以下に記載されています。
- とてもクールです!正直に言って、ロボットのためのソフトウェア開発者は、会計やビーチでピザを配達するアプリの開発者よりもずっとクールです。社会はロボットを最もクールな技術の一つとみなしています。
- ロボティクスで変化をもたらせます。特に興味深いのは、サービスロボットにおいて、有用なロボットを持つ鍵はハードウェアではなくソフトウェアであることです。家庭用のロボットが掃除をするためのハードウェアは既に存在します。サービスロボットの最大の制約はソフトウェアです。したがって、あなたの仕事は実用的なロボットを実現するために貢献できます。
- 社会に変化をもたらせます。ハリウッド映画では、ロボットは私たちを嫌い、支配する悪い存在として描かれています。しかし、あなたがロボティクス開発者であれば、役立つ良いロボットを作成することでこの物語性を変えることができます。未来のロボットはあなたにかかっています。
「I, Robot」の映画のスクリーンショット。ロボットがどれほど役立つかの一例です。
重要なのは、ロボットは現在人間が行っている多くの仕事を取って代わることになるでしょう。これは避けられません。そして、それらのロボットをプログラムする必要があります。それがあなたであってほしいと思います。
しかし、ChatGPTがその仕事を奪うのでは!??
ChatGPTやその他の類似した技術について、プログラマの仕事を奪うという議論が広がっています。はっきり言ってお伝えします:それはすぐには起こりません。おそらく20年後には、AIが何でもプログラムできるようになるかもしれませんが、現時点では遠い話です。
AIは開発者の生産性を向上させることができます。開発者の効率を高めることができます。単一の開発者がこれまで以上に多くのことを作成するのを手助けできます。
しかし、AIはロボットが動作し、タスクを遂行するために必要なプログラムを作成することはできません。それは非常に複雑な問題であり、現時点ではどのAIもそれを行うことができません(世界中でそれを行える人間はほんのわずか、つまり私たち、ロボティクス開発者だけです!)。現在、そして次の20年間も。
はい、より良い仕事をするためにはAIを取り入れる必要があります。はい、次の20年間で生産性を向上させるためには常に適応していく必要があります。それは事実です。しかし、次の数年間であなたの仕事が危機にさらされることはありません。
ですので、今がロボティクスのソフトウェア開発に飛び込む最適な時期です。
なぜロボティクスの開発者が不足しているのか?
理由1:学びのパスがない
理由の1つは、ロボットプログラマとして必要なスキルに導く包括的なカリキュラムが不足していることです。
非常に最近まで、ロボティクス開発者は必要ありませんでした。ロボットは何の役にも立たなかったため、ロボットは研究室に置かれていました。しかし、ロボットがより優れた性能を持つようになると、研究室を出て家庭や施設に行くようになっています。
そこで、ロボティクス開発者が必要とされ、頑丈な製品を開発するために活躍しています。
問題は、ロボティクス開発者になるための明確なパスが存在しないことです。
通常、過去においては、ロボットプログラマは機械や電子について多く知っており、コンピュータプログラミングについてもある程度知っているロボティクス専門家でした。しかし、現在ではそれだけでは不十分です。ロボティクス製品を開発するためには、プロのプログラマが必要です。
しかし、ソフトウェアプログラマは直接ロボティクス開発者として働くことはできません。
ロボティクス開発者はプログラミングが得意で、ロボティクスに詳しく、ロボットの動作原理、コンポーネントの主要な構造、センサーからデータを取得し、アクチュエータに命令を送信し、さらに少しの知識を持っている必要があります。ハードウェアが期待通りに動作することを信頼できる必要があります(コンピュータが期待通りに動作するのと同様です)。そのため、ロボティクス開発者はロボティクス理論の学習が必要な場合もあります。
もう一度言いますが:
ロボティクス開発者は新しい経路計画アルゴリズムを開発する必要はありません。新しい制御パラダイムを開発する必要もありません。新しい物体認識システムを発明する必要もありません。それは研究所のロボット工学者やAIの仕事です。ロボティクス開発者は、どのアルゴリズムが存在し、それをどのように使うか、いつ使うべきか、そしてそれを完全なロボティクスアプリケーションに統合する方法を知っている必要があります。したがって、グローバルなロボットは常に期待通りの動作をします。
今まで、ロボティクス開発者になるための明確な経路が存在しませんでした。しかし、この記事ではオンライン学習を通じてロボティクス開発者になるための完全な経路を説明します。
理由2:開発者はハードウェアを嫌う
2つ目の主要な理由は、一般的にソフトウェア開発者はハードウェアを扱うのが好きではないことです。あなたはおそらく開発者であり、ロボティクスの領域に進むことを考えたことはないでしょう。おそらく、ロボットのプログラミングにおいては電子工学について知識が必要であり、機械工学についても知識が必要かもしれません。おそらく、ハードウェアとソフトウェアはロボットでは密接に結びついており、一方を触れることなく他方を触れることはできないと思っているかもしれません。ハードウェアとのやりとりは、多くのソフトウェア開発者が好きではないものです。結局のところ、彼らはソフトウェアの開発者になることを選んだのですから、ハードウェアではなくソフトウェアを扱いたいと考えるでしょう!!
幸いなことに、現在はそのハードウェアとのやりとりが必要ありません。
ロボットをプログラムするロボティシスト
ソフトウェア開発者が不足しているため、ロボットのプログラミングはロボティシストによって行われています。彼らはロボットを構築する人々です。おそらく、一部のプログラマは直接ロボットの作成に関与していないかもしれませんが、問題が発生した場合にハードウェアにアクセスして修理を試みることには問題ありません。しかし、率直に言って、ほとんどのロボティシストは開発者ほど優れたプログラマではありません。そのため、多くのエキスパートプログラマがこの分野に参入することでロボティクスが利益を得ることができます。嬉しいことに、開発者をこの分野に引き寄せることが今まで以上に簡単になっています。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を使えるようにすることでROSで動作させることができます。ROSを使えるようにすることを「ROSify」と呼びます。つまり、ロボットをROSと互換性があるように適応させることです。通常、ロボットをROSifyするにはハードウェアにアクセスする知識が必要です。センサーデータを提供する電子機器と通信したり、ロボットのモーターにアクセスしたりする方法を学ぶ必要があります。この記事ではこのトピックについては触れません。なぜなら、これは開発者の範囲外の話題だからです。あなたがすでにROSifyされたロボットで作業することを前提としています。
ROSとは何か?
ROSはRobot Operating Systemの略称です。ROSはLinux Ubuntuの上に構築されているので、厳密には実際のオペレーティングシステムではありません。ROSは、ハードウェアとソフトウェアを抽象化できるO.S.の上に構築されたフレームワークです。これは、ハードウェアのことを気にせずにロボット用のプログラムを作成できることを意味します。嬉しいですね!
この記事では、ROSの歴史について詳しく学ぶことができます。
サービスロボット向けROS
ROSは、少なくともサービスロボット分野では、ロボティクスプログラムの標準となりつつあります。最初は大学レベルで始まったROSですが、すぐに企業の世界に広まりました。毎日、より多くの企業やスタートアップがROSを基盤にビジネスを構築しています。
ROSが登場する以前、各ロボットは製造メーカー独自のAPIでプログラムされていました。もしロボットを変更した場合、新しいプログラム環境を学ぶだけでなく、ソフトウェアを再度開始する必要がありました。さらに、プログラムの状況を理解するためには、ロボットの電子機器とのやり取りについて多くの知識が必要でした。この状況は、1980年代のコンピュータがそれぞれ独自のオペレーティングシステムを持っており、各タイプのコンピュータに同じプログラムを作成する必要があった時と似ています。
ROSは、パソコンのWindowsやスマートフォンのAndroidのように、ロボットのためのものです。ROS化されたロボットを使用すると、異なる種類のロボット間で共有できるプログラムを作成できます。例えば、企業Aが製造した4輪ロボット向けに自律移動し、衝突せずに移動するプログラムを構築し、同じコードを企業Bが製造した2輪ロボットに適用したり、企業Cのドローンに使用したりできます。
産業用ロボット向けROS
現在の多くのサービスロボットでROSは使用されています。逆に、産業用ロボット企業はまだ完全にはその使用を確信していません。主に、彼らは独自のシステムを持たなくなることからです。しかし、数年前にROS-Industrialと呼ばれる国際的なグループが設立されました。彼らの目標は、産業用ロボットの製造業者がROSを使えることを理解し、他のROSロボットのために他の人々が作成したすべてのソフトウェアを使うことができるので、ROSは彼らのためにあると認識することです。
農業用ロボット向けROS
ROS-Industrialと同様、ROS-Agricultureは農業用のROS導入を目指す国際的なグループです。農業用ロボットに興味がある方は、このグループを追跡することを強くお勧めします。なぜなら、彼らはROSを使用して数トンの機械を駆使して驚くべきことを成し遂げる非常に意欲的なチームだからです。たとえば、ROS-AgricultureグループのKyler Lairdが制作した、ROSを実行する自律型トラクターの動画をご覧ください。
ROSを使用してロボットを開発する方法
さて、あなたがロボティクスの開発者になることに納得したなら、以下はロボティクスの開発者になるために取ることができるステップです:
- セットアップ
- 学習
- コーディング
- テスト
セットアップ
まず、ROSを開発システムにインストールするためのシステムをセットアップします。ROSを使用してロボットをプログラムするためにマシンをセットアップする方法を見てみましょう。2つのオプションがあります:
- すべてをコンピュータにインストールします。以下を参照してください。
- すべてがセットアップ済みで、Webブラウザのみが必要なオンラインROS開発スタジオ (ROS Development Studio)を使用します。
ROSとともに使用すべきオペレーティングシステムはどれですか?
ROSはLinux UbuntuまたはLinux Debianで動作します。ROSはWindowsとMacでも動作することができますが、これらのシステムでの開発はまだ十分に成熟していません。お使いのコンピュータにUbuntuの最新バージョンの1つをインストールすることをお勧めします。2022年5月現在、Ubuntu 20.04のインストールをお勧めします。ROS開発スタジオ(ROS Development Studio)を使用する場合は、この手順をスキップできます。
しかし、私はLinuxではなくWindows/Macを使用しています。それでもROSで開発できますか?
ROS開発にWindowsまたはMacを使用したい場合、2つのオプションがあります:
- OSX、Gentoo、Windowsのフルサポートが存在しますが、まだそれらを使用することはお勧めしません。ROSをWindowsまたはMacにインストールしたことのある人はあまり会ったことがありません。それでもその方法を選択したい場合は、これらのシステム用のROSに関する詳細情報を確認してください。
- Webブラウザを使用して完全なROS環境でROSの開発を行うことができるROS開発スタジオ(ROS Development Studio)を使用します。これはWebブラウザと連動する完全なROS環境を提供するオンラインプラットフォームで、インストールは不要です。特に、教育を行い、生徒がすぐにスムーズに進む必要がある場合には、これを強くお勧めします。
どのROSバージョンをインストールすべきですか?
現在、ROSにはROS1(クラシックとも呼ばれる)とROS2の2つの異なるバージョンがあります。ROS1はオリジナルです。ROS2はもっと現代的で、ロボティクス製品の構築を目指しています。ROSに初めて触れる場合、ROS2に直行することをお勧めしますが、目標に応じてROS1を選ぶこともできます。どちらを選ぶかを決定するのを支援するビデオを作成しました。
ROSをインストールする
Ubuntuシステムが動作している場合、ROSをインストールします。ROSの両バージョンは配布で公開されており、それぞれの配布には特定の名前があります。
- こちらはROS1をインストールするための手順です。Noetic配布版を選択してください。
- こちらはROS2をインストールするための手順です。Galactic配布版を選択してください。
ROS開発スタジオ(ROS Development Studio)を使用する場合は、この手順をスキップできます。
ROS開発スタジオ(ROS Development Studio)
学習
今度は ROS を学習します。
前提条件
まず最初に、Linuxシェルの使用に慣れている必要があります。また、C++またはPythonでプログラムを書く方法を知っている必要があります。これらのいずれも知らない場合、以下の無料のオンラインコースから始めることをお勧めします:
先にも述べたように、ROSはC++またはPythonでプログラムできます。ただし、C++を知らない場合は、C++でROSに入ろうとしないでください。それがあなたの状況なら、PythonでROSを学ぶことをお勧めします。もちろん、今からC++を学び始めても良いです。C++は産業界で使用される言語であり、ROS PythonからROS C++に移行する必要があるため、後でC++を学ぶ必要がありますが、最初のROSの学習はPythonでプログラムを書くことで行うべきです。
同時に(ROSとC++の学習を同時に行けると思うかもしれませんが…)やるのは良い決断ではありません。幸運を祈ります。
最後に、Prolog、Lisp、Nodejs、またはRなど、他の言語のためのバインディングも存在します。現在サポートされている言語の完全なリストはこちらで確認できます。これらの言語でROSを学ぶことはお勧めしません。ROSは実験的な言語で複雑ですので、さらに複雑にする必要はありません。
ROSの学習
これらの言語の基本を理解し、シェルを使用する方法を知っている場合、次のステップはROSを学ぶことです。そのために、ROSを学ぶための5つの方法を説明したこの投稿を読むことをお勧めします。
すべての方法の中で、私たちのオンライン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講師であり、毎週火曜日の18:00 CEST/CETにROSのオンラインクラスを提供しています。毎週、ROS Developers Open Classで私と一緒に新しいROSのトピックを学び、実践することをお勧めします。このクラスは無料で、シミュレーションロボットを使用してROSの特定のトピックをマスターする絶好の機会です。
コーディング
C++またはPythonのコードエディタが必要です。ROSコードを書くために使用できる主要なIDEの概要を得るには、このページを参照してください。ただし、利用可能なオプションの中で私は2つだけをお勧めします:
- コンピュータにエディタをインストールしたい場合は、VSCodeエディタとそのROS拡張機能を使用してください。これは、ROSコーディングに最適なエディタです。
- このステップをスキップしたい場合は、ROS Development Studioを使用してください。これは、ブラウザの統合IDEを備えたもので、インストールは不要で、プロジェクトの簡単な共有が可能です。
テスト
ロボット用に開発しているプログラムをどのようにテストしますか?ここでは、あなたがロボットにアクセスできない(実際にはアクセスしたくない)と仮定しています!覚えておいてください:開発者!!さて、ロボットのためのROSプログラムをテストするために、実際のロボットを使用しない方法はいくつかあります。
モック(mocks)の使用
もし開発者であるなら、モック(mocks)という言葉は既にご存知でしょう。モックは、あなたが自分で作成でき、ロボットのROS APIの異なる部分への接続を模倣することができます。
このページでは、ROSでモックを使用する方法に関する情報が提供されています。
ROSでモックを使用することは容易な選択肢ではありません。なぜなら、多くの準備作業が必要であり、また、その有用性は制限されているからです。なぜなら、モックはあらかじめ設定した内容の再現しか行えないからです。私は開発においてモックの使用をお勧めしません。以下に挙げる他のオプションが利用できない場合、またはユニットテストを作成する場合にのみ使用してください。私の経験から言えることですが、私はモックを使用したことがありません。常に次に挙げる2つのオプションのいずれかを使用してきました。
ROS bagsの使用
ROSは、実際の状況でロボットの完全なROS APIをログファイルに記録し、後で別のコンピュータで再生する方法を提供しています。このログファイルはROSバッグ(ROS bag)と呼ばれます。ROSバッグを別のコンピュータで実行すると、そのコンピュータは記録されたプログラムに対して同じROS APIを表示します。ROSバッグの使用方法については、こちらで学ぶことができます: ROSバッグの記録と再生.
ROSバッグは限定的なシステムであり、センサーデータから何らかのアルゴリズムを作成する際にのみ使用できます。つまり、ロボットに対して新しいアクションを指定することはできません。ROSバッグはデータの再現だけが可能であり、記録時のロボットのデータと同じデータを取得できますが、新しいアクションは決定できません。
シミュレーションを使用する
もし実際のロボットを使用せずにプロとして活動したいのであれば、ロボットのシミュレーションを使用すべきです。シミュレーションは、ソフトウェア開発の次の段階として考えられます。
シミュレーションは、実際のロボットが傍にいるかのような感覚を味わえる一方、エレクトロニクスやハードウェア、物理空間の管理を気にする必要はありません。ロボティクスの専門家たちは、シミュレーションをロボティクスの「醜い兄弟」と考えています。ロボティクスの専門家は通常、シミュレーションを使用することを好まず、本物のロボットに触れることを好みます。しかし、幸運なことに、私たちはここで逆のタイプの人々と話しています。彼らはハードウェアを扱うことを避けたい人々です。そのような人々にとって、シミュレーションは必要不可欠です。
一つお伝えしたいことがあります:ロボットのシミュレーションは、知識豊かなロボティクスの鍵です。これはロボティクスの専門家たちが認めていないかもしれませんが、将来の投稿で詳しく説明します。しかし、最初にここで読んだことを覚えておいてください!
シミュレーションの場合、コンピュータ上で実行されるロボットのシミュレーションがあり、これは実際のロボットのように実行および振る舞うことができます。シミュレーションが実行されると、コンピュータは、あたかも実際のロボットのコンピュータ上にいるかのように、同じROS APIプログラムを提供します。これはROSバッグの場合と同じですが、シミュレーションの場合、実際にロボットにコマンドを送信し、シミュレーションされたロボットが応答することができるという利点があります。これは素晴らしいです!
ロボットのシミュレーションを使用するには、ROSはすでにGazeboシミュレーターをインストール済みで提供しています。実行するために必要なのは、プログラムを開発したいロボットのシミュレーションだけです。通常、ロボットの製造会社は、そのロボットのシミュレーションを提供しており、これはGazeboシミュレーター上でダウンロードして実行できます。
シミュレーションをインストールし、実行することは少し手間がかかるかもしれません。その手間を避けたい場合、当社のROS Development Studioの使用をお勧めします。これは、シミュレーションが1クリックで起動できる準備が整っており、ROS、IDE、およびその他の価値あるツールがすべて揃っています。Webブラウザ上で実行され、インストールは必要ありません。
以下は、ROS Development Studioがシミュレーション、ROSナビゲーションスタック、Rviz、およびROSバッグの記録と連動して動作する例です。
ロボティクス開発者になるための追加の重要な概念
ロボティクス開発者になる最終段階は、いくつかのロボティクスの概念を習得することです。ソフトウェアエンジニアとして、すでに上記の多くのトピックを理解していることでしょう。なぜなら、これらのトピックは一般的にソフトウェア開発者の通常の仕事に密接に関係しているからです。しかし、ロボティクスには、ソフトウェアエンジニアが習得する必要のある、ロボティクスに密接に関連するいくつかの概念があります(請求書を作成する必要がある場合、会計のいくつかの概念を理解する必要があるのと同じです)。ロボットは動くもの、つまり、固定された場所にとどまらないものです。したがって、ロボットプログラムを作成するためには、新しい概念を学ばなければなりません(プログラムはもはや固定された場所にとどまらないことを意味します)。以下は、ロボットプログラムを作成するために理解する必要がある概念のリストです。これらの主題を教えるオンラインコースへのリンクも含めています:
- ロボティクスの基本数学
- 車輪型ロボットの運動学
- ロボットアームの運動学
- 剛体ダイナミクス
- URDFロボットモデルの記述
- ロボットナビゲーション(カルマンフィルターとSLAM、位置特定、経路計画、障害物回避を含む)
- ロボット操作
- フレームリファレンスシステムとは何か?
- ロボットのジョイント制御
- OpenCVを使用したロボティクスの知覚
- ロボティクスのための機械学習基礎
結論
この記事では、ロボティクス開発者になるための将来と、その方法を示しました。この道を辿る際に遭遇する疑問や問題点について、コメントでお知らせください。
–
ROSに関する関連リンク
以下は、ROSの将来とROS開発者になる方法に関するさらなる情報を提供する追加のリンクです。
- Robotics Developer Masterclass 2024: ロボット開発者になるためのスキルを身につけるプログラム。クーポンコードを使用して100€割引を受ける:66E8E28B
- ROS Developers Days: ユニバーシティや企業のロボティクス開発者と一緒に実践を通じて学ぶことができるオンラインカンファレンス。
- ROSのベストプラクティス
- ROS Developersオープンクラス
- ROS Developers Podcast
- ROSが生まれた素晴らしいストーリー(RedHatによって制作された素晴らしいビデオシリーズ)
- ROSの歴史
0 Comments