ロボット開発で人気の言語:不滅のJava、不滅のC/C++、そして新興のPython

ロボット開発で人気の言語:不滅のJava、不滅のC/C++、そして新興のPython

プログラミング言語は流行ったり廃れたりするものですが、Java と C/C++ は変わりません。

[[211467]]

人工知能ロボットの開発にはどのプログラミング言語を選択すればよいでしょうか?

これは、多くのロボット工学者がキャリアの中で抱くであろう初歩的な考えです。結局のところ、プログラミング言語の習得には多くの時間と労力が必要です。その言語の真の価値を理解していないのに、言語を習得しても何の意味があるでしょうか?しかし残念ながら、今のところ明確で直接的な答えはありません。

Stack Overflow、Quora、Trossen、Reddit、Research Gate などのロボット工学の専門家やコミュニティ フォーラムで「ロボットのプログラミング言語は何ですか?」と質問すると、間違いなくさまざまな答えが返ってきます。

電子工学エンジニアと産業用ロボット技術者では答えが異なります。ほとんどの人は、「初心者に最適なプログラミング言語」に対する答えは「分野によって異なる」であると考えるでしょう。最も合理的な答えは、開発したいソフトウェアの種類と使用しているシステムの種類によって異なるということです。そしてロボット科学者にとって最も重要なことは、特定の言語に限定されるのではなく、「プログラミング思考」を確立することです。多くの点で、最初にどのプログラミング言語を学ぶかは重要ではありません。重要なのは、プログラム的に考えることでスキルを向上し続けることです。

この記事の主題に戻ると、最適なプログラミング言語の選択に完璧な答えはありませんが、この記事では、ロボットプログラミングでプログラマーが好む上位10のプログラミング言語を紹介し、それらの長所と短所を比較することで、開発者が独自の最適な選択を行うための参考となる方向性を提供したいと考えています。

世界には学べるプログラミング言語が1500以上あります。以下は、ロボット工学で最も人気のある 10 のプログラミング言語のリストです。言語ごとに利点は異なります。この記事では、著者自身の開発と実践経験に基づいて、優先度の低いものから高いものまで、上位 10 のプログラミング言語をリストします。

10. BASIC / パスカル

BASIC と Pascal は私がこれまでに学んだ 2 つの主要なプログラミング言語ですが、それがこのリストに含めた理由ではありません。実際、産業用ロボットのプログラミングに非常に役立ちます。 BASIC は初心者向けに設計されているため、開発者にとって入門しやすい言語です。

Pascal はプログラミング手法を改善するために設計され、ポインタなどの構造を導入したため、BASIC 以外の言語の構成要素となりました。現在、どちらの言語も「日常的なアプリケーション」プログラミング言語としてはやや時代遅れになっています。しかし、ある程度の低レベルのコーディングを行う準備ができている場合、または他の産業用ロボット言語に精通する必要がある場合は、それらの言語を知っておくと役立ちます。

9. 産業用ロボット言語

事実上すべてのロボット製造業者は、独自の制限的なロボットプログラミング言語を構築しており、これは産業用ロボットの世界で長い間問題となってきました。 Pascal を学習すると、それらのいくつかに精通するようになります。ただし、別のロボット プラットフォームでコーディングを開始する場合は、別のプログラミング言語も使用する必要があります。

[[211468]]

例えば、ロボットアームの分野で強い企業であるABBはRAPIDという言語システムを採用しています。ドイツのKUKAは社名と同じKUKAという言語を採用しています。ComauはPDL2、安川電機はAdvise、川崎重工はASを採用しています。現時点では、Fanuc ロボットは Karel を使用し、Staubli ロボットは VAL3 を使用し、Widespread Robots は URScript を使用しています。

最近、業界では、ROS などのより標準化された代替言語の選択肢をプログラマーに提供し始めています。しかし、技術者であれば、メーカーのプログラミング言語を使用する必要がある可能性が高くなります。

8. リスプ

LISP は世界で 2 番目に古いプログラミング言語です (FORTRAN の方が古いですが、わずか 1 年です)。この記事で紹介した他の多くのプログラミング言語と比較すると、あまり広く使用されていません。しかし、人工知能プログラミングの分野では依然として非常に重要です。 ROS の一部は LISP で書かれていますが、ROS を使用するためにこれを知る必要はありません。

7. ハードウェア記述言語 (HDL)

ハードウェア記述言語は、一般的に電気プログラミング方法を記述するために使用されます。これらの言語は、FPGA (フィールド プログラマブル ゲート アレイ) のプログラミングに使用されるため、一部のロボット工学者には非常に一般的です。 FPGA を使用すると、実際にシリコンを製造せずに電子ハードウェアを開発できるため、一部の開発ではより高速で簡単なオプションになります。電子プロトタイプを開発しない場合は、おそらく HDL を使用することはないでしょう。

それでも、このプログラミング言語は他のプログラミング言語とは大きく異なるため、理解しておく必要があります。重要な点: HDL のすべての操作は、プロセッサベースのプログラミング言語の順次操作ではなく、同時実行です。

6. 組み立て

アセンブリを使用すると、「レベル 1 および 0」のプログラムをプログラミングできます。 これは最高レベルのプログラミング言語です。以前は、ほとんどの低レベルハードウェアはアセンブリでプログラムする必要がありました。 Arduino やその他の類似のマイクロコントローラの登場により、C/C++ で低レベルで効果的にプログラミングできるようになりました。つまり、平均的なロボット工学者にとってアセンブリの重要性は明らかに低下しています。

5. MATLAB

MATLAB や Octave などの関連オープンソース言語は、有名なロボット科学者がデータの調査や制御システムの作成によく使用されています。

さらに、非常に有名な MATLAB Robotics Toolbox もあります。データを分析したり、高度なチャートを作成したり、制御システムを実装したりする必要がある場合は、MATLAB を学習する必要があります。

4. C#/.NET

C# は、Microsoft が提供する制限付きのプログラミング言語です。これは主に Microsoft Robotics Studio によって提供されており、Microsoft Robotics Studio ではこれを基本言語として使用しています。このフレームワークを使用する場合は、C# を学習する必要があります。それでも、長期的にコーディングスキルを向上させたい場合は、最初に C/C++ を学習するのが良い選択です。

3. ジャワ

電子工学エンジニアとして、一部のソフトウェア エンジニアリング コースで最初のプログラミング言語として Java が教えられていることに驚かされることがよくあります。

Java は基礎となるストレージ機能をプログラマーから「隠す」ため、Java のプログラム要件は C 言語のプログラム要件よりも低くなりますが、これは基礎となるコードの実行ロジックについてあまり知らないことを意味します。ソフトウェア エンジニアリングの基礎からロボット工学の将来の探求まで、Java を学習したことがある可能性は十分にあります。

C# や MATLAB と同様に、Java はインタープリタ言語であり、マシン コードにコンパイルされません。代わりに、Java 仮想マシンは実行時に命令を解釈します。理論的には、Java を使用すると、Java 仮想マシンのおかげで、異なるマシンで同じコードを実行できます。実際には、これが常に可能であるとは限らず、コードの実行速度が遅くなる場合があります。しかし、ロボット工学の一部では Java が非常に人気があるため、必要になる場合があります。

2. パイソン

Python は最近、特にロボット工学の分野で大きな注目を集めています。その理由の 1 つは、Python (および C++) が ROS の 2 つの主要なプログラミング言語であるためです。

Java と同様に、これもインタープリタ型言語です。しかし、Java とは異なり、Python は使いやすさに重点を置いています。 Python では、変数の型の定義やキャストなどの日常的な作業にそれほど時間がかかりません。これらはプログラミングでは非常に一般的なことです。さらに、Python には多数の無料ライブラリがあるため、基本的な機能を実装する必要がある場合に「車輪の再発明」を行う必要がありません。また、C/C++ コードへのバインディングがシンプルなので、パフォーマンスを低下させることなく、コードのパフォーマンスが重視される部分をこれらの言語に移植できます。

より多くの電子機器が(Raspberry Pi とともに)Python を「すぐに」サポートし始めると、ロボット工学における Python の使用が増えると思われます。

1. C/C++

ロボット***プログラミング言語——C/C++!多くの人は、C と C++ が新しいロボット科学者にとって良いスタートになると考えています。

なぜ?

その主な理由は、現在、両方の言語を使用するハードウェア ライブラリが多数存在するためです。これらは低レベルのハードウェア上で動作し、リアルタイムのパフォーマンスを可能にし、非常に成熟したプログラミング言語です。今日では、C++ の方が汎用性が高いため、おそらく C よりも C++ の方が多く使用されるでしょう。 C++ は C 言語の拡張であり、特にハードウェア ライブラリが C で記述されていることがわかった場合は、基本的な C から始めることで多くのメリットが得られます。しかし、C/C++ で記述されたハードウェア ライブラリは、Python や MATLAB で記述されたライブラリほど使いやすくはありません。同様の機能を C で実装するには、おそらくかなり時間がかかり、さらに多くのコード行が必要になります。それでも、ロボットはリアルタイムのパフォーマンスに大きく依存するため、C と C++ はロボット工学者が「標準言語」と考えるものに最も近いプログラミング言語です。

要約する

この記事では、ロボット向けの人気プログラミング言語のトップ 10 を紹介しますが、すべての言語を習得する必要があるわけではありません。すべての開発者にとって最も重要なことは、自分にとって自然に感じられ、ロボットのハードウェアに適した言語を見つけることです。また、プログラムを迅速かつ効率的に作成できる言語も必要です。

個人的には、まず Python を学ぶことをお勧めします。 Python は理解するのが非常に簡単な言語であり、学習するのに効果的なライブラリが多数あり、非常に強力だからです。数日で Python を習得し、ほとんどのプログラミング ニーズにすぐに適用できる (正式に経験を積んだ) プログラマーをたくさん見聞きしてきました。 Python を上手に使えるようになったら、C++ を先導として C を学習することをお勧めします。ロボット ハードウェア ドライバーの非常に主要なインターフェイスとインターフェイスする必要があるためです。

ロボット工学に最適なプログラミング言語 10 選: Java、C/C++、Python

<<:  人気の機械学習や人工知能が金融業界で障害にぶつかるのはなぜでしょうか?

>>:  ABCの中でビッグデータが最初に遅れをとる理由

ブログ    
ブログ    
ブログ    

推薦する

人工知能が商業不動産業界にもたらす5つの変化

人工知能は、今日の商業不動産業界において非常に重要な破壊的変化をもたらします。すべての兆候から判断す...

AIビジョンを取り入れることで、ガソリンスタンドは非常に「スマート」になることができます

[[354264]]石油貯蔵所、ガソリンスタンド、石油荷降ろしトラックには大量の完成燃料が保管され...

LSTMとトランスフォーマーの利点を組み合わせることで、DeepMindの強化学習エージェントはデータ効率を向上させます

[[423163]]近年、マルチエージェント強化学習は飛躍的な進歩を遂げています。例えば、Deep...

Python による AI 音声クローン作成のエンドツーエンド ガイド

AI 音声クローニングは、音声の固有の特徴を捉えて正確に複製する技術です。この技術により、既存のサウ...

人類は人工知能のせいで滅びるのか?ホーキング博士の最後の論文にヒントがあるかもしれない

[[251536]] 「完全な人工知能の開発は人類の終焉を意味するかもしれない...人工知能は自ら進...

あなたは私の目です!人工知能が障害者にバリアフリーのインターネットアクセスを提供する

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

ロボットが国連で初めて記者の質問に答える: ロボットは人間の仕事を奪ったり、人間に反抗したりはしない

ロイター通信によると、昨日ジュネーブで開催された「AI for Good」会議で、国連国際電気通信連...

楊強:人工知能の次の技術的、商業的トレンドはどこにあるのでしょうか?

第四パラダイムの主任科学者であり、パラダイム大学の指導者である楊強教授は最近、第四パラダイム内で「人...

AIと天気予報が出会うとどんな火花が散るのでしょうか?

SF作家の劉慈欣はかつて、自身の小説の中でこのような天気予報を描写した。小説の主人公は気象大学を卒...

自動運転のためのエンドツーエンドの計画方法の概要

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

2020年に人工知能はどのように発展するでしょうか?知っておくべき6つのトレンド

過去1年を振り返ると、人工知能の発展は繁栄し、多彩なものであったと言えます。人工知能が3回連続で政府...

...

AlphaDev がソートアルゴリズムを 70% 高速化! C言語ライブラリの作者がDeepMindの最新AIについて解説

数日前、DeepMind はソートアルゴリズムを 70% 直接的に高速化する AlphaDev をリ...

...

...