読者です 読者をやめる 読者になる 読者になる

MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

ロボティクスを学ぶのにおすすめの資料

Robot Book

確率ロボティクス (Mynavi Advanced Library)

確率ロボティクス (Mynavi Advanced Library)

はじめに

最近、知り合いに

ロボティクスを学ぶのにおすすめの資料は何?

と聞かれることが多くなってきたので、

一度、記事としてまとめておきたいと思います。


自分の専門が車両の自動走行なので、

内容が偏っているとは思いますが、

参考にしていただけると嬉しいです。


まずは個人的にロボティクスの3大聖書だと思っている資料からです。

『Probabilistic Robotics』(確率ロボティクス) Sebastian Thrun 他

Probabilistic Robotics (Intelligent Robotics and Autonomous Agents series)

Probabilistic Robotics (Intelligent Robotics and Autonomous Agents series)

  • 作者: Sebastian Thrun,Wolfram Burgard,Dieter Fox
  • 出版社/メーカー: The MIT Press
  • 発売日: 2005/08/19
  • メディア: ハードカバー
  • 購入: 1人 クリック: 6回
  • この商品を含むブログを見る

確率ロボティクス (Mynavi Advanced Library)

確率ロボティクス (Mynavi Advanced Library)



この本はまさに自分にとっての聖書です。

大学の研究室でこの本に出会ってから人生が変わりました。


確率・統計的な手法を

ロボットの自己位置推定や周辺環境認識に取り入れ、

様々なノイズにさらされる実環境でも、

安定して利用できるロボットシステムの実現している

最新の研究結果をまとめた書籍です。


現在、自律移動技術で当たり前に使用されている

カルマンフィルタやパーティクルフィルタなどを

式の導出から、ロボットへの応用まで詳しく説明しています。


また、最近のロボティクス技術の代名詞である、

SLAM技術を初めてまとめた書籍であるとも言えます。

(SLAM技術に関しては、下記の記事を参考してください)

myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com



この本を初めて読んでから、既に5年以上経っていますが、

未だに読み返しても、様々な学びが得られます。


この本は翻訳されており、一時期絶版だったのですが、

Kindle版が帰ってきました(^^)。

素晴らしいことです。

確率ロボティクス (Mynavi Advanced Library)

確率ロボティクス (Mynavi Advanced Library)




下記の記事は『Probabilistic Robotics』関連の記事ですので、

『Probabilistic Robotics』を読んでいる方は参考にどうぞ。

myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com

『パターン認識と機械学習』C.M. ビショップ

パターン認識と機械学習 上

パターン認識と機械学習 上

  • 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇
  • 出版社/メーカー: 丸善出版
  • 発売日: 2012/04/05
  • メディア: 単行本(ソフトカバー)
  • 購入: 6人 クリック: 33回
  • この商品を含むブログ (18件) を見る
パターン認識と機械学習 下 (ベイズ理論による統計的予測)

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

  • 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇
  • 出版社/メーカー: 丸善出版
  • 発売日: 2012/02/29
  • メディア: 単行本
  • 購入: 6人 クリック: 14回
  • この商品を含むブログを見る


この本は、ロボティクスの中で極めて重要な、

機械学習・パターン認識の分野において、

聖書だと言われている一冊です。


この一冊をマスターするだけで、

かなり広い機械学習の分野を理解することができると思います。


最近、ビックデータなどが流行っているため、

ロボットだけでなく、データ解析技術の書籍としても

かなり有名な一冊です。


また、この本の原著のタイトルが

『Pattern Recognition and Machine Learning』ですので、

頭文字を取って、よくPRMLとも呼ばれています。


しかし、『Probabilistic Robotics』と同様に、

内容は高度なので、ある程度の事前知識と、

読み切る決心が必要になると思います。

しかし、このPRMLをひと通り読めるようになると、

『Probabilistic Robotics』もかなり読みやすくなると思います。


英語の原著はこちらです。

上記のPRMLの日本語訳はよく出来ていると一般的に言われていますが、

英語力に自信が有る方はこちらでも良いかと思います。

Pattern Recognition and Machine Learning (Information Science and Statistics)

Pattern Recognition and Machine Learning (Information Science and Statistics)

 

『Principles of Robot Motion: Theory, Algorithms, and Implementations』Howie Choset

Principles of Robot Motion: Theory, Algorithms, and Implementations (Intelligent Robotics and Autonomous Agents series)

Principles of Robot Motion: Theory, Algorithms, and Implementations (Intelligent Robotics and Autonomous Agents series)

  • 作者: Howie Choset,Kevin M. Lynch,Seth Hutchinson,George A. Kantor,Wolfram Burgard,Lydia E. Kavraki,Sebastian Thrun
  • 出版社/メーカー: A Bradford Book
  • 発売日: 2005/05/20
  • メディア: ハードカバー
  • この商品を含むブログを見る



『Probabilistic Robotics』と『パターン認識と機械学習』は、

主に、ロボティクスにおける認識系技術の書籍ですが、

こちらの書籍は、ロボットの経路生成や制御の技術をまとめたものです。


様々な機構をもつロボットにおける、

安全な経路生成技術や、

その経路情報に基づく、制御技術などが

うまく一冊の本にまとめられている珍しい書籍です。


『Probabilistic Robotics』と『パターン認識と機械学習』、

そしてこの、『Principles of Robot Motion』の内容を理解することにより、

周辺環境と自己位置の認識に基づく、安全な経路生成と経路追従(制御)を実現できる

一連の自律移動システムを構築することができます。


残念ながら、素晴らしい本ですが、

上記の2冊と異なり、

日本語訳はまだ発売していないようです。

(日本のロボティクス技術のために、どなたか翻訳をお願いします。。。)


どんなに推定や認識を精密に実現できても、

思った通りにロボットを制御できなければ、

素晴らしいシステムだとは言えないと個人的には思っているため、

この本に書かれている技術は非常に重要だと思います。


下記の記事は、主に経路生成に関するMATLABシミュレータに関するものであり、

主に、この書籍を参考にしました。

興味の有る方は参考にどうぞ。

myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com


『マンガでわかる統計学シリーズ』高橋 信

マンガでわかる統計学

マンガでわかる統計学

マンガでわかる統計学 回帰分析編

マンガでわかる統計学 回帰分析編

マンガでわかる統計学 因子分析編

マンガでわかる統計学 因子分析編



上記の3冊の書籍は、

最新のロボティクス技術の研究結果を説明した書籍ですので、

そのような技術でよく使用されている

統計的・確率的な基礎知識が乏しいと、

理解するのが難しいという問題があります。


そこで基礎的な統計学を学ぶのにおすすめなのが、

このマンガでわかる統計学シリーズです。


見た目はかなり人を選ぶものになっていますが、

内容は非常にわかりやすく、

初歩的な部分から、

因子分析など応用的な部分まで広く取り扱っています。


また、このシリーズは様々な人が、

統計学を一から学ぶのに有効であると推薦しています。


このシリーズをひと通り読むことで、

統計学の基礎的な部分をひと通り網羅することができると思います。


このシリーズの詳しい説明と、

演習用のExcelファイルに関しては、下記を参考ください。

myenigma.hatenablog.com


『図解・ベイズ統計「超」入門』涌井 貞美


上記の『マンガでわかる統計学シリーズ』は統計学の入門書ですが、

『Probabilistic Robotics』を理解するために、

もう一つ重要な知識がベイズ統計・推定です。


『Probabilistic Robotics』で紹介されている技術は、

基本的にベイズ推定をベースとしており、

『マンガでわかる統計学シリーズ』にはベイズ推定は含まれていないため、

他の書籍からベイズ推定の基礎を学ぶ必要があります。


そこでおすすめなのが、

この『図解・ベイズ統計「超」入門』です。

ベイズ推定は、最初にイメージで理解することができると、

応用するのがかなり簡単になると思いますが、

この本は図などを使って、

かなりわかりやすくベイズ推定を説明してくれています。


この一冊を読むことで、

『Probabilistic Robotics』で利用されている各技術の

イメージをつかみやすくなると思います。


この書籍とベイズ推定に関しては、

下記の記事も参考にしてもらえると良いと思います。

myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com


『プログラミングのための確率統計』平岡 和幸,堀 玄

プログラミングのための確率統計

プログラミングのための確率統計



上記の『マンガでわかる統計学シリーズ』と『図解・ベイズ統計「超」入門』は、

かなり基礎的な内容の書籍ですので、

最初にイメージをつかむには最適だと思いますが、

実際にPRMLなどで使用される確率・統計的な手法は網羅していないため、

橋渡しのために、他の書籍で学習する必要があります。


そのような場合におすすめなのがこの書籍です。

基礎的な内容から一歩進んで、

『Probabilistic Robotics』などでよく使用される

離散値の確率密度関数や、期待値、統計的検定、ベイズ定理の応用などを

非常にわかりやすく説明しています。


タイトルに”プログラミングのための”とありますが、

詳しい数学的な議論はある程度省略し、

その手法の概念的な意味と、

それを応用する方法をわかりやすく説明しています。

よって統計・確率的手法を手段として利用し、

ロボティクスシステムを作り上げたい人にとっては、

うってつけの資料であると思います。


この本に書かれている内容を理解すれば、

PRMLや『Probabilistic Robotics』の内容を

理解するのは難しく無いと思います。

 

『Convex Optimization』Stephen Boyd,Lieven Vandenberghe

前述の通り、ロボティクスの重要な技術として、

確率・統計の技術も重要ですが、

もう一つよく利用されるのが最適化技術です。

特に、ロボティクスにおいては、

パスプランニングや制御などでよく利用されます。

 

最適化技術は非常に特殊な数式の表現をしているので、

はじめはかなり面食らうと思いますが、

その最適化技術の中で広く使われる凸最適化を

基礎からわかりやすく説明しているのが、

こちらの書籍です。

 

海外の有名大学では(スタンフォード大学やUCバークレーなど)

授業の教科書として使われており、

凸最適化のバイブルのような扱いを受けています。

 

残念ながら、和訳の本がありませんが、

十分わかりやすく書かれているので、

基礎から最適化を学びたい人にはおすすめです。

 

どうしても、日本語で最適化の基礎を学びたい方には、

下記の書籍もおすすめです。

これなら分かる最適化数学―基礎原理から計算手法まで

これなら分かる最適化数学―基礎原理から計算手法まで

しかし、『Convex Optimization』に比べると、

カバーする領域が若干狭いと感じました。

 

最適化技術に関する概要は下記の記事も参照下さい。

myenigma.hatenablog.com

 

『自動車の運動と制御』安部正人

自動車の運動と制御 第2版─車両運動力学の理論形成と応用

自動車の運動と制御 第2版─車両運動力学の理論形成と応用

上記の『Principles of Robot Motion』でも紹介されていますが、

最新のロボティクスの制御技術では、

より精密な制御を実現するために、

制御対象のロボットを精密にモデル化したものを利用して

制御するシステムが広く使われています。


そのようなシステムを車両型のロボットに適応するためには、

いわゆる車両ダイナミクスの知識が必要です。

この『自動車の運動と制御』は、車両ダイナミクスに関する名著で

自動車技術の分野でも非常に有名な書籍です。


車両の制御に欠かせない、タイヤの力学から、

車両の運動・力学モデルの説明、

ステアリング制御における制御特性、

外乱に対する車両の振る舞いなど、

非常に広い範囲の知識が一冊にまとめられています。


この本の技術を元に、

車両ロボットの制御システムを構築することにより、

より精密な制御システムを実現することが可能になると思います。

 

ロボティクスで使用することが多いと思われる

車両ダイナミクスの基礎知識に関しては

下記の記事にまとめているため、興味のある方は参照下さい。

myenigma.hatenablog.com


『ジャイロ活用技術入門―その原理・機能・応用のポイントを詳述 』多摩川精機編集

ジャイロ活用技術入門―その原理・機能・応用のポイントを詳述

ジャイロ活用技術入門―その原理・機能・応用のポイントを詳述

ロボットにとって最も広く使われる内界センサは、

ジャイロや、加速度計で構築されるIMUだと思います。

IMUを使って自己位置推定を実施する時、一番問題になることは、

ジャイロや加速度計のバイアス誤差やスケールファクタ誤差などの、

特殊な性能の振る舞いです。

上記知識が無ければ、

精密なロボットの位置や姿勢を推定することは難しくなります。


上記の資料は、ジャイロセンサの製造元として有名な、

多摩川精機の技術者が書いた、ジャイロや加速度センサに関する名著です。

ジャイロや加速度センサの原理や、計測誤差の分類と振る舞い、

そして、ジャイロや加速度センサの応用例などがわかりやすく書いてあります。

IMUを使いたい人が、初めに読む本としておすすめです。


しかし、上記の著作はセンサそのものに関しては、

非常に詳しく説明されていますが、

実際のストラップダウン方式の位置姿勢推定のためのカルマンフィルタの設計などの

詳しい数式的な説明はあまりありません。

そちらに関しては洋書ですが、下記の著作がおすすめです。 

Strapdown Inertial Navigation Technology (IEE Radar, Sonar, Navigation and Avionics Series) (Electromagnetics and Radar)

Strapdown Inertial Navigation Technology (IEE Radar, Sonar, Navigation and Avionics Series) (Electromagnetics and Radar)



IMUの概要については、下記の記事も参照下さい

myenigma.hatenablog.com


『Code Complete 第2版 上下 完全なプログラミングを目指して』スティーブ マコネル

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して


これまで紹介してきた書籍はすべて、

ロボティクスの技術や、それを実現するための学術的な内容の書籍でしたが、

きちんと利用することができるロボットシステムを開発するためには、

それらの技術をソフトウェアとしてきちんと実装することができる

プログラミング能力が必須になります。


最近のロボットは、

様々なプログラミング言語やフレームワーク上で実装されることが多いため、

個々の開発環境に応じて、必要となるプログラミング技術は異なると思います。


しかし、どのような開発環境においても必要となる、

基礎的なプログラミング技術を包括的に学ぶことができる書籍として、

この『Code Complete』をおすすめしたいと思います。


この書籍は、

ソフトウェアの設計から、実装、テスト、デプロイまで、

素晴らしいソフトウェアをつくるための技術を包括的に説明してくれています。


この書籍のはじめに書かれている通り、

実際のソフトウェア開発に関する様々な研究結果を元に、

データとして有効であると証明された方法を紹介しているところが

素晴らしいと思います。


また、ソフトウェア開発の初めのステップから、

最後のステップまでに必要な知識を網羅しているため、

この本をひと通り学ぶことで、

ある程度の規模のソフトウェアを一人で実装できるようになると思います。


あとは、自分の開発環境に適した書籍を数冊読むことで、

ある程度のロボットソフトウェアシステムを実装することが可能になると思います。


この書籍の詳しい説明は下記の記事を参照ください。

プログラマの聖書『CODE COMPLETE 第2版 上下巻』 - MY ENIGMA

『ROSではじめるロボットプログラミング』小倉 崇

先ほどの『Code Complete』はプログラミング全般的な内容ですが、

ロボット専用のプログラミング技術というもの重要です。


近年、ロボットの機能が増大し、

その結果ロボット用のソフトウェアも巨大化&複雑化してきているため、

ロボット用ソフトウェアフレームワークを

使用することが一般的になってきています。


その中でも世界的に最も広く使用されている

ロボット用ソフトウェアフレームワークが、

Robot Operating System (ROS)です。


このROSを使うことで、

大規模なロボット用ソフトウェアを作成するのが容易になったり、

他の研究機関などがが作成した、ROSソフトウェアを

簡単に利用できるようになります。


ROSは米国で開発されているシステムであるため、

先ほどのリンク先のような英語での資料しかありませんでしたが、

この『ROSではじめるロボットプログラミング』は

おそらくROSに関する初めての日本語書籍だと思います。


今後、ロボット工学を学ぶ場合には、

ROSのようなロボットフレームワークの知識は必須だと思いますので、

まず初めの導入として日本語で書かれたこの書籍をおすすめしたいと思います。


この書籍はROSを使った簡単なプログラミングを

実際のコードをベースに説明してくれているため、

実際に手を動かしてROSを学ぶことができる所が良いと思います。


ROS関する詳しい説明と、

この書籍の詳しい説明に関しては下記の記事を参照下さい。

myenigma.hatenablog.com


『マスタリングTCP/IP 入門編 第5版』 竹下 隆史他

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版


最近のロボットは、

ロボット単独だけでなく、

サーバとつながったり、

インターネットと繋がって、

より複雑な機能を実現することが多くなってきました。


また、ロボット用のセンサの高機能化により、

センサのデータ量が増加し、

その結果、センサデータ通信に

Ethernetのソケット通信を使用するセンサが増えてきています。


そこでロボットが

外部のコンピュータやセンサと通信するのに

一般的に使用されるのが、

EthernetによるTCP/UDP通信技術です。

個人的に、ロボットを開発する人にとって、

最低限のTCP/UDP通信の知識は

必須になってきていると感じています。


そのようなTCP/UDP通信を基本とした、

近年の通信技術をまとめた書籍としておすすめしたいのが、

この『マスタリングTCP/IP 入門編』です。


タイトルにTCP/IPと書かれていますが、TCP/IPだけでなく、

近年の通信モデルの基礎となる、OSI参照モデルに基づく、

通信技術を包括的に学ぶことができます。


この書籍は、ロボット技術だけなく、

現代のソフトウェアエンジニアとしての基礎的な素養を学ぶことができる名著として

様々な人から推薦されています。


実際に、LinuxにおいてTCPソケット通信を実現する方法に関しては、

下記の記事を参考にすると良いと思います。

Udacityのクラス 「Artificial Intelligence for Robotics Course」

Udacityは、冒頭のおすすめ資料である

『Probabilistic Robotics』の著者である

Sebastian Thrun氏が始めたオンライン授業のサービスです。

Thrun氏の専門がロボティクスであるということで、

Google Carを作る方法という題目で、

基礎的なロボティクスの技術を学ぶことができるクラスが

無料で公開されています。


自己位置推定、動的物体のトラッキング、

経路生成、経路追従など、

自律移動技術の基礎的な知識を

実際のPythonコードを作成しながら学ぶことができます。


このコースをひと通り受講することで、

『Probabilistic Robotics』で説明されている技術を

理解しやすくなると思いますし、

実際にソフトウェアに落としこむのが楽になると思います。


この授業を無料で受けられるなんてすごい時代だと思いました。


海外大学のロボティクス授業の資料

ロボティクスで有名な海外の大学の授業には、

ロボティクスをメインとした授業が多数存在し、

それらの授業の資料が公開されている場合が多いです。


これらの資料も、

実際にロボティクスを知らない学生に

一から教えることを目的にしているため、

包括的にロボティクスを学びたい場合には、

これらの授業の資料を初めから読んでいくのは

良い方法であると言えます。

最先端の研究論文 Google Scholar

まだまだロボティクス技術の分野は発展途上であるため、

研究論文そのものを参照しなければいけない場合も多いです。


自分の場合は、基本的にGoogle Scholarで論文を探しています。


Google Scholarで調べると

海外の論文はpdfファイルが公開されているものが多いです。


しかし、Google Scholarで日本語の論文を調べると

あまり無料でダウンロードできるものは少ないです。

日本語の論文に関しては、

下記のJ-Stageというサービスから調べると色々無料公開されている論文を探すことができます。

J-STAGE トップ

また、ロボット学会や計測自動制御学会の学会誌も公開されています。

一年以上前の資料なら非学会委員でも読むことができるようです。

日本もどんどん研究論文を公開して、

Google検索で引っかかるようにならないかなと思います。

最後に

以上が、自分がこれまで

ロボティクスを学ぶために実際に読んできて、

よかったと思える書籍です。

少しでも参考になれば嬉しいです。