
・これから学ぶ言語はどれがおすすめ?
こんにちは、るい(@CenotenBlog)です。
この記事では、上記の悩みにお答えします。
・C/C++
・Python
・MATLAB
この記事を読めば、ロボットのプログラミングにおすすめの3つの言語の特徴と、どの言語が一番おすすめなのかがわかります。
この記事を書いている僕は、大学で機械工学を専攻し、国立研究機関にてロボットに関する研究を行っています。
僕自身、これから説明する3つのプログラミング言語は、ロボットの研究を行うときに使用した経験があります。
こういった僕が解説をしていきます。
結論からいうと、今からプログラミングを学習する人に、おすすめする言語はPythonです。
なぜならプログラミング言語の中でも学習するのが簡単であり、世界中で使われているロボットを開発するプラットフォームの主要言語だからです。
それでは一つ一つ紹介していきます。
C/C++

ロボット工学の分野で代表的な言語がC言語またはC++です。
英語が世界の標準言語ならば、C/C++はロボット工学界の標準言語と言えます。
それくらい、多くの研究者・開発者が利用してきています。
C/C++がロボット工学の分野で多く使われている理由は以下としてあげられます。
・ハードウェアライブラリーが充実している。
・リアルタイムのパフォーマンスに優れている。
ハードウェアライブラリーが充実
ライブラリーとは、ある特定の機能を提供するプログラミングの部品のことです。
ライブラリーをプログラムの中に取り入れることで、目的の動作のための機能を利用することが可能になります。
簡単にいうと、自分で特定の機能を作らなくて良い。
ライブラリーを使うことで開発効率をあげることができる。
ということです。
例えば、プログラミングでは、自分でファイルを開くコードを開発しようとすると、とてつもなく長いコードを書く必要があります。
ただのファイルを開く為だけに、毎回長いコードは書きたくないですよね。
ここでファイルを開く機能が入ったライブラリーの登場です。
ライブラリーをプログラムに取り入れるだけで、簡単にファイルの開閉が可能になります。
C/C++言語ではこのようなライブラリーが、ロボット開発で使われているハードウェアで充実しているという特徴があります。
リアルタイムでのパフォーマンスが優れている
ロボット工学では、リアルタイムでのパフォーマンスが非常に重要です。
ロボットが人に衝突した10秒後に反応して停止しても、もはや手遅れですよね。
したがって、リアルタイムでのパフォーマンスが優れていることは、ロボット開発でC/C++を利用する大きなメリットなのです。
ただし、C/ C ++は次に紹介する言語と比べて、習得するのに時間がかかります。
また同じ機能を実装するには、さらに多くのコード行が必要になります。
C/C++を学習する際は以下の参考書がおすすめです。
※ただし、C/ C ++は次に紹介する言語と比べて、習得するのに時間がかかります。
また多言語と同じ機能を実装するには、さらに多くのコード行が必要になります。
Python

近年、特にロボット工学において、多く使われはじめている言語がPythonです。
今では、Pythonは開発者の数が世界で2番目に多いと言われている言語です。
ロボット工学において、Pythonが注目をあびている理由は以下です。
・理解しやすく、使いやすい。
・ROS(Robotic Operating System )の主要なプログラミング言語である。
理解しやすく、使いやすい。
Pythonは、 Interpreter Language(インタプリタ型言語)と呼ばれています。
インタプリタ型言語とは、人間にわかりやすい言葉で書かれたコードを、コンピューターが理解できる言葉に翻訳しながら実行していくプログラミング言語です。
つまり、コードを読んだときに人間が内容を理解しやすいプログラミング言語ということです。
コードが読みやすいということは、同時にプログラミングの書き方自体が簡単であるということです。
その為、必要なコードの量が減り、結果としてプログラミング作業時間を短くすることが可能です。
※実際に僕はPythonを1ヶ月で習得することができました。
勉強方法は下記の記事が参考になります。
ROS(Robotic Operating System)の主要なプログラミング言語
ROSとは簡単にいうと、無料で使えるロボット開発プラットフォームです。
現在では、世界中で学術研究や産業用途にもROSの使用が広がっています。
ROSの説明をすると1つの記事がかけてしまいますので、後日まとめさせてもらいます。
ここでは、ロボットの開発が行われているプラットフォームに使われている言語ということがポイントです。
(※C++もROSのもう一つの主要言語です)
また、C/C++同様に膨大な数のライブラリが無料で用意されています。
基本的な機能は全てライブラリーとして利用可能だと思っていただいて結構です。
ライブラリーを使用することで、開発目的の本質のみにプログラミングの作業時間を当てることができましたよね。
下記の記事でROSとPythonについて解説しています。
是非参考にどうぞ。
・ロボット開発を始めるためプログラミングを勉強したい。・ROSを始める際、PythonかC++のどちらがいいかわからない。 こんにちは、るい(@CenotenBlog)です。 本記事は上記のような悩みを解決できる様に書かれていま[…]
MATLAB

ロボット工学で多く使われている言語の3つ目がMATLABです。
MATLABは、学習すること自体は簡単であり、データを分析したり制御システムを開発するロボットエンジニアに非常に人気があります。
MATLABの強みは以下です。
・行列計算に強い。
・シミュレーションや解析が可能。
行列計算は、ロボットアームを制御する際などに必要です。
ToolBoxと呼ばれるツールを利用することで画像認識もできます。
したがって、ロボット全体のシステムをMATLABを利用して開発する研究室もあります。
また、Simulinkと呼ばれるツールを利用することで、データを分析したり、シミュレーションを行うことが可能です。
またグラフが綺麗であったりなど、データの可視化がMATLABのもう1つの強みでもあります。
最大の欠点としてMATLABは無料で利用ができません。
個人購入または法人での購入が必要です。
しかし、大学などの研究機関でライセンスが配布されている場合は無料で利用することが可能です。
最後に
以上で、ロボット開発に使われている主要なプログラミング言語の紹介となります。
繰り返しになりますが、これからロボット開発を行ってみたいという方には、Pythonがおすすめです。
以下に理由をまとめます。
・C/C++はパフォーマンス速度はいいが、学習するのが大変。
・Pythonは学習が簡単であり、ROSの主要言語である。
・MATLABは行列計算に強く、学習は簡単だが、有料である。
という点から、学習もしやすく、ロボットの開発プラットフォームのあるPythonを学習することをおすすめします。
しかし結局、一番大変だと感じるのが最初に学習するプログラミング言語になります。
どの言語を最初に選んでも、2つ目以降からは、どんどん簡単に感じてきます。
とにかく始めることが大切ですので、最初は自分が興味をもった言語から始めてみるの1つの方法ですね。
今回はこれくらいにします。
最後まで読んでいただきありがとうございます。
ロボット工学でまず何を学ぶべきかわからない方は以下のリンクを参考にしてみて下さい。
ロボットに関する勉強を始めたいけど、ロボット工学のどこから取り組めば良いかわからないなあ。そもそも、ロボット開発にはどんな学問が必要なのかもわからないよ。 こんにちは、CenotenBlogです。本記事は上記のような[…]