アレアレ

お役立ち情報、お悩み解決情報を発信!

基礎編

ロボットへのプログラミングとコンピューターへのプログラミングの違い

このサイトの プログラミング教育 のコーナーでは、これからプログラミングを学び始める子供を持つ親御さんに向けて、プログラミングについてわかりやすく解説しています。全くプログラミング経験のない方は、基礎編の記事から、基礎編を読んだ方は実践編の記事をご覧ください。

ロボットへのプログラミングとコンピューターへのプログラミングの違い

先日、このコーナーを読んでくれている小さい子供を持つ友人から、「コンピューターはこんなことが得意です」という具体例の補足までの記事を読んでこう思った、という感想を貰いました。

その感想への回答が、ほかの人にも役立つと考えこの記事にします。ちなみに、この友人は、自分自身のことは、「(プログラミングについて)ど素人」と評している人物です。

その友人の感想

その友人の感想を要約すると、次の通りでした。

  • 親である自分自身がプログラミングとは何かを理解していなかったことがわかった
  • なので、「子供にプログラミングを習わせる」と言っても、ピンと来なかった
  • 素人からすると、ロボットを動かす、データを集計する、ブログなどのウェブシステムを作る、ExcelやWordのようなソフトを作る、などは、どれも同じプログラミングと認識していた
  • ここまでの記事を読んで、「そこには違いがありそうだ」と分かって来た
  • なので、「子供がプログラミングを習う」とは、具体的にどのようなプログラミングを学ぶのかが知りたくなった

ということでした。

この感想受けて、今回は、「ロボットへのプログラミングとコンピューターへのプログラミングの違い」をご紹介します。ちなみに「子供はプログラミング教室でどんなことを習うのか?」について、今後、このコーナーで別の記事にする予定でいます。(追記、記事にしました→小さい子供はどのようにプログラミングを学ぶのか?)

水を散布できるドローンを例に

一口に「ロボット」と言っても、自動車工場の組み立てロボットから、ドローンやPepperなど様々あります。ここでは、ドローンを例に、コンピューターへのプログラミングとの違いを考えます。

ドローンに対してプログラミングする目的として、「空中を漂うドローンを自動的に動かしたい」という動機は、想像しやすいですよね。例えば、空中から水を散布できるようなドローンがあったとして、それで広大な畑の農作物に水を撒きたいとします。

ドローンには、スマホのアプリからその位置を操作できるものがあります。なので、ラジコンのように人間が操作して、畑中に水を撒くということもできます。これでも人間は水撒き作業がかなり楽になるわけですが、そのドローンを操作する作業中は、手が離せません。

それが面倒に感じる人は、「ドローンに対してプログラミングで操作を指示することで、この水撒き作業を自動化したい」と考えるわけです。

水撒きドローンの自動化に必要な指示を考える

さて、この水撒きドローンの操作をプログラミングで指示するにあたり、どのような指示が必要となるでしょうか。

例えば、「A座標からB座標に移動せよ」、「高度を上げろ(下げろ)」、「毎分100mlのペースで水を出せ」、「散布するノズルの絞りを緩くしろ(きつくしろ)」のようなことが必要になることは、想像できるはずです。

そして、農家の人は、自分の畑に満遍なく水が行き届くように、これらの指示を組み合わせてプログラミングすることになるわけです。

畑の右上角のA座標に移動しろ
毎分100mlのペースで水を出せ
畑の右下角のB座標に移動しろ
水を止めろ
・・・

のようなイメージです。

ロボット側の仕様によってプログラミングの仕方が変わる

さて。上でドローンを移動させる指示として、「A座標からB座標に移動せよ」という例を挙げました。

これはその移動をプログラムする側の立場からすると、ありがたいことです。というのも、実際に畑に行って、緯度経度の座標を調べれば、その位置の移動の指示が簡単にできるからです。

これが例えば、ドローンの位置の移動の指示の仕方として、「前に1m進め」、「時計回りに進行方向を90度変えろ」のような指示しかできないとしたらどうでしょうか。この指示の仕方で、自分の畑の上空を満遍なく動かすプログラミングをするのは、相当難しくなることがわかるはずです。

例えば、座標を指定できるドローンでは、そのスタート地点はどこでも問題ありませんよね。「ここからA地点に行け」と指示できるからです。一方、進行方向を指定するドローンでは、スタート地点を意識する必要が出てきます。スタート地点をもとに、「ここから30度回転して5m進んで、そこから60度回転して3m進んで・・・」のように指示する必要があるからです。

このようにロボットに対するプログラミングは、そのロボットがどのような指示を受け付けるか、つまり、どのようなプログラミングが可能かで変わるわけですね。

コンピューターへのプログラミングの仕方は標準化されている

一方、コンピューターへのプログラミングについて考えると。まず、コンピューターにプログラミングで指示をする目的は、自分がやると時間がかかって面倒な情報処理(例えば1万件の個人情報から特定の名前の人を探す、など)をコンピューターに任せたいからです。

これは、ここまでの記事の中で何度となくお伝えしていますね。

そのコンピューターへ情報処理の仕方をプログラミングで指示することになるわけですが、コンピューターへのプログラミングの良いところは、その指示の仕方の標準が決められていることです。

ドローンの例では、「このタイプのドローンは、座標の指定で移動できるけど、あのタイプのドローンではそれができない」ということが起こる可能性がありました。ドローンを作っているメーカーごとに、そのプログラムのさせ方を定義できてしまうからです。

コンピューターへのプログラミングは、メーカーの枠を超えた、その指示の仕方の標準があるので、このような混乱は起きないというわけです。もちろん、その標準はいくつかあるわけですが、ドローンのようなロボットほど特殊なことにはなりません。

次に読む記事:小さい子供はどのようにプログラミングを学ぶのか?

Return Top