ROS by Example Vol.1
目次
まえがき
印刷バージョンとPDFバージョンの違い
ROS Groovy版からの変更点
1. この本の目的
2. 実機ロボットとシミュレーション
2.1 Gazebo, Stage と ArbotiX シミュレータ
2.2 TurtleBot, Maxwell, Pi Robot4の紹介
3. Linux(Ubuntu)オペレーティングシステムとROSのバージョン
3.1 Ubuntuのインストール
3.2 Linuxの簡単な入門
3.3 UbuntuやROSのバージョンアップ
4. ROSの概要
4.1 インストール
4.2 インストールの実際
4.3 CatkinによるROSパッケージの作成
4.4 Catkin Workspaceの作成
4.5 Catkin Workspaceの初期化
4.6 catkin パッケージのリビルド
4.7 catkin と rosbuild
4.8 ROS公式ページのチュートリアル
4.9 RViz: 強力な可視化ツール
4.10 ROSパラメータ
4.11 rqt_reconfigure によるROSパラメータの動的な変更
4.12 実機ロボットと制御用PCとのネットワーク
4.12.1 時刻の同期
4.12.2 Zeroconf(ゼロ・コンフィギュレーション・ネットワーキング)による設定
4.12.3 接続の確認
4.12.4 環境変数、ROS_MASTER_URI と ROS_HOSTNAME の設定
4.12.5 新しいコンソールを開く
4.12.6 複数コンピュータでのROSノードの実行
4.12.7 インターネットを介した接続
4.13 ROSのおさらい
4.14 ROSアプリケーションとは?
4.15 SVN, Git, and Mercurialによるパッケージのインストール
4.15.1 SVN
4.15.2 Git
4.15.3 Mercurial
4.16 ROSパッケージの削除
4.17 サードパーティ製ROSパッケージの見つけ方
4.17.1 ROS Wikiから探す
4.17.2 roslocate コマンドで検索する
4.17.3 ROS Software Indexで見つける
4.17.4 Google検索で見つける
4.18 ROSに関する更なるヘルプ
5. サンプルプログラム(the ros-by-example)のインストール
5.1 必要なパッケージのインストール
5.2 Hydro版 ros-by-example レポジトリ
5.2.1 Electric あるいは Fuerteからのアップデート
5.2.2 Groovyからのアプデート
5.2.3 Hydro版 rbx1 リポジトリ
5.3 この本に記載のソースコードに関して
6. Arbotix シミュレータのインストール
6.1 シミュレータのインストール
6.2 シミュレータのテスト
6.3 独自ロボットをシミュレータで試す
7. Mobile Baseの制御
7.1 単位系および座標系
7.2 モーションコントロール
7.2.1 モータ, 車輪, エンコーダ
7.2.2 モータのコントローラとドライバ
7.2.3 コントローラ
7.2.4 move_base ROS パッケージによるFrame-Base Motion
7.2.5 gmapping と amcl パッケージによるSLAM
7.2.6 セマンティックゴール Semantic Goals
7.2.7 まとめ
7.3 Twistメッセージによるロボットの移動
7.3.1 Twist メッセージの例
7.3.2 RVizによるロボットの可視化
7.4 オドメトリのキャリブレーション
7.4.1 並進方向のキャリブレーション
7.4.2 回転方向のキャリブレーション
7.5 Twistメッセージを実機ロボットに送る
7.6 ROSノードからTwistメッセージの発信する
7.6.1 時間あるいは速度により移動距離や回転角度を求める
7.6.2 ArbotiX シミュレータによるTimed Out-and-Back動作
7.6.3 Timed Out-and-Back のPython スクリプト
7.6.4 実機ロボットによるTimed Out and Back動作
7.7 私はどこにいるのか?オドメトリを使った距離移動
7.8 オドメトリを使った Out and Back
7.8.1 シミュレータによるオドメトリを使った Out and Back
7.8.2 実機によるオドメトリを使った Out and Back
7.8.3 オドメトリを使った Out-and-Back のPythonスクリプト
7.8.4 /odom トピックか /odom フレームか?
7.9 オドメトリを使った四角形に沿った移動
7.9.1 シミュレータによる四角形に沿った移動
7.9.2 実機ロボットによる四角形に沿った移動
7.9.3 nav_square.py Pythonスクリプト
7.9.4 デッドレコニングの問題点
7.10 ロボットを操縦する
7.10.1 キーボートを使った操縦
7.10.2 ゲームパッドを使った操縦
7.10.3 ArbotiX コントール GUI
7.10.4 Interactive MarkersによるTurtleBotの操縦
7.10.5 オリジナルの操縦ノードを書く
8. ナビゲーション、経路探索とSLAM
8.1 move_baseを使った経路探索と障害物回避
8.1.1 move_baseを使ったナビゲーション目的地の指定方法
8.1.2 経路探索のパラメータの設定
8.1.2.1 base_local_planner_params.yaml
8.1.2.2 costmap_common_params.yaml
8.1.2.3 global_costmap_params.yaml
8.1.2.4 local_costmap_params.yaml
8.2 ArbotiX シミュレータによる move_base のテスト
8.2.1 RViz上で目的地をクリックして移動させる
8.2.2 RVizにナビゲーションの際の情報を表示させる
8.2.3 move_baseを使った四角形に沿った移動
8.2.4 仮想障害物の回避
8.2.5 障害物が存在する場合に手動でゴールを設定する
8.3 move_base を実機で動かす
8.3.1 障害物が無い場合の move_base のテスト
8.3.2 仮想的な距離カメラのデータによる障害物回避
8.4 gmapping パッケージによる地図構築
8.4.1 レーザスキャナか距離カメラか?
8.4.2 スキャンデータの測定と記録
8.4.3 地図の作成
8.4.4 予め保存したでーたを使った地図作成
8.4.5 作成済みの地図を拡張したり、修正したりできるのか?
8.5 地図とamcl(Adaptive Monte Carlo Localization)によるナビゲーションと自己位置同定
8.5.1 仮想的な自己位置同定による amclのテスト
8.5.2 実機ロボットによる amcl
8.5.3 完全自律によるナビゲーション
8.5.4 シミュレーションによるナビゲーションの実行
8.5.5 ナビゲーションテストのPythonスクリプトの解説
8.5.6 実機によるナビゲーションテストの実行
8.5.7 次にすること?
9. 音声認識と合成
9.1 音声認識システム PocketSphinx のインストール
9.2 PocketSphinx による音声認識のテスト
9.3 認識できる語彙を増やす
9.4 A 音声で指示するナビゲーションのPythonスクリプト
9.4.1 シミュレータによる音声指示のテスト
9.4.2 実機による音声指示のテスト
9.5 音声合成システムFestival のインストールとテスト
9.5.1 ROSノード経由の音声合成
9.5.2 talkback.py Pythonスクリプトのテスト
10. ロボットビジョン
10.1 OpenCV, OpenNI and PCL
10.2 カメラの解像度に関して
10.3 カメラドライバーのインストール
10.3.1 OpenNI用ドライバーのインストール
10.3.2 Webカメラ用ドライバーのインストール
10.3.3 Kinect あるいは Xtion カメラのテスト
10.3.4 USB Webカメラのテスト
10.4 OpenCV の Ubuntu Linuxへのインストール
10.5 ROSとOpenCVのブリッジ: cv_bridge パッケージ
10.6 ros2opencv2.py ユーティリティ
10.7 録画された動画の処理
10.8 OpenCV 画像処理ライブラリ
10.8.1 顔検出
10.8.2 GoodFeaturesToTrackを使った特徴点の検出
10.8.3 オプティカルフローを使った特徴点の追跡
10.8.4 顔追跡プログラムの改良
10.8.5 特徴点の追加と削除
10.8.6 CamShiftアルゴリズムによる色追跡
10.9 OpenNIとスケルトントラッキング
10.9.1 OpenNIドライバのインストールの確認
10.9.2 RVizによるスケルトンの表示
10.9.3 ユーザプログラムからスケルトン情報を取得する
10.10 三次元ポイントクラウド
10.10.1 PassThrough フィルター
10.10.2 複数のPassThrough フィルターの合成
10.10.3 VoxelGrid フィルター
11. ビジョンを使った台車の移動
11.1 カメラ座標系に関して
11.2 物体追跡
11.2.1 rqt_plotによる物体追跡のテスト
11.2.2 シミュレーションによる物体追跡
11.2.3 物体追跡プログラムの解説
11.2.4 実機による物体追跡
11.3 物体追従
11.3.1 物体追跡プログラムに距離情報を追加する
11.3.2 シミュレーションによる物体追従
11.3.3 実機による物体追従
11.4 人物追跡
11.4.1 シミュレーションによる人物追跡のテスト
11.4.2 人物追跡プログラムの解説
11.4.3 TurtleBotを使った人物追跡
11.4.4 ポイントクラウドを使った人物追跡
12. Dynamixelのサーボモータの制御
12.1 TurtleBot にパン・チルトヘッドを取り付ける
12.2 Dynamixelサーボモータのコントローラ
12.3 Dynamixelのサーボモータに関して
12.4 ROSにおける Dynamixelサーボモータの制御パッケージ
12.5 JointState メッセージの解説
12.6 Joint Positionの速度制御とトルク制御
12.6.1 サーボモータの位置制御
12.6.2 サーボモータの速度制御
12.6.3 サーボモータのトルク制御
12.7 USB2Dynamixel を使った接続
12.8 サーボモータのIDの設定
12.9 dynamixel_controllersの設定と実行
12.9.1 dynamixel_controllers の設定ファイル
12.9.2 dynamixel_controllers のLaunch(起動)ファイル
12.10 サーボモータ制御のテスト
12.10.1 Controllersの開始
12.10.2 RVizによるモニタリング
12.10.3 Controller のトピックやJoint Statesの監視
12.10.4 Controller サービスの監視
12.10.5 サーボモータの位置、スピードおよびトルクの設定
12.10.6 relax_all_servos.py Pythonスクリプト
12.11 ビジュアルターゲットの追跡
12.11.1 顔の追跡
12.11.2 頭の追跡
12.11.3 色物体の追跡
12.11.4 選択した物体の追跡
12.12 頭の追跡アプリケーションの改良版
13. 次にすべきことは何?
0 件のコメント:
コメントを投稿