# ロボットとは?
いろんなモノに「ロボット」という名前をつけっています
---
## 移動ロボット
- この実習でロボットの移動機能に注目します
- 移動ロボット ⇒ 環境の中に動ける、自分の位置を変えられる
- ロボットアーム(マニピュレータ)の動かし方については学びません
---
## 移動というスキル
- 移動に必要な機能
- 環境内の動き = 移動技術
- 環境の理解 = 認識
- 環境モデリング = 環境の地図の構築
- 自分の位置がわかる = ローカリゼーション
- 目的地まで行く = 経路計画やナビゲーション
- この実習では上記の全ての機能の実装方法を勉強します
---
## 移動ロボットが様々
### 産業用移動ロボット
### 宇宙探査ロボット
### 自動運転
### 人とインタラクションするロボット
これは我々が研究しているテーマです
---
# ロボットオペレーティングシステム(ROS)
---
## ROSとは
--ロボットオペレーティングシステム--
> ROS (Robot Operating System)はソフトウェア開発者のロボット・アプリケーション作成を支援するライブラリとツールを提供しています. 具体的には, ハードウェア抽象化, デバイスドライバ,ライブラリ,視覚化ツール, メッセージ通信,パッケージ管理などが提供されています. ROSはオープンソースの一つ, BSDライセンスにより, ライセンス化されています. ([ROS Wiki](https://wiki.ros.org/ja)より)
- プログラムのモジュール化 ⇒ 分散コンピューティング機能、ソフトウェアの再利用、迅速なプロトタイピングとテスト、などが可能。
---
## ROSの歴史
- スタンフォード大学の人工知能研究所で2007年に開発されました
- 2013年からOpenSource Robotics Foundation(OSRF)によって管理されています
- 今日では、多くのロボット、多くの大学や企業で使用されています
- 事実上の**ロボットプログラミングのスタンダード**になっています
---
## ビデオ
ROSは、さまざまなロボットやアプリケーションで使用されています。
---
## ROSの基本的な概念
- **ピアツーピア** ⇒ プログラムは、定義されたAPI(ROSメッセージ、サービスなど)を介して通信します。
- **分散** ⇒ プログラムは1つ以上のコンピューターで実行でき、ネットワークを介して相互に通信できます。
- **多言語** ⇒ ROSモジュールは任意の言語で実装できます(サポートされている言語はC++、Python、MATLAB、Javaなど)
- **軽量実行環境** ⇒ スタンドアロンライブラリを開発し、薄いROSレイヤーにラップします。
- **無料でオープンソース** ⇒ ほとんどのROSプログラムはオープンソースです。
---
→ [実習その1](v1_1.html)
↑ [ホームページ](index.html)