Decwest / introduction-to-ros

ROS (Robot Operating System) 入門

Home Page:https://decwest.github.io/introduction-to-ros/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ROS (Robot Operating System) 入門

概要

今後ROSについて自力で学習できるような環境と地力を獲得することを目標としています.

内容は環境構築,ROSの基本的な事項,シミュレーションの実行から構成されています.

大まかな内容

  • ROSが動作する環境の構築
    • Ubuntu 20.04 環境の用意
    • ROS (noetic) のインストール
  • ROSの基本的な事項
    • トピック通信
    • rosparam
    • roslaunch
    • コマンドラインツール
  • Rvizで可視化
    • ロボットモデルをURDF形式で記述
    • Rvizでロボットモデルの可視化
  • Gazeboを用いたシミュレーション
    • LiDARを1台積んだ差動二輪ロボットモデルをURDF形式で記述
    • Gazeboでシミュレーション
    • Rvizでロボットモデルとトピックを可視化

環境構築

Windows, Mac PCを所持している方はVMwareで仮想マシンを構築することで環境を用意します.

Ubuntu環境にROSをインストールします.

ROSの基本的な事項

ROSとはなにか簡単に説明します。

ROSの基本的な概念であるトピック通信について実装を通して理解します。

外部からパラメータの値を受け取れるようなROSノードの書き方について説明します.

複数のノードを同時に起動したりそれぞれにパラメータを渡したりすることを一つのファイルで記述可能なroslaunchについて説明します.

ターミナル上で使用可能な,ROS環境の解析に有用なコマンドラインツールをいくつか紹介します.

Rvizで可視化

ROSに付随する可視化ツールであるRvizについて,できることを簡単に説明します.

Rvizで表示できるロボットモデルはURDFという形式で記述されます.URDFの考え方と文法について説明します.

前章で学んだことを活かして,ルンバのような差動二輪ロボットのモデルをURDFで記述する演習を行います.

Gazeboを用いたシミュレーション

ROSと相性の良い物理シミュレータであるGazeboについて,できることを簡単に説明します.

前章で作成したロボットモデルにGazeboシミュレーション時に必要な物理量を追加します.

ROSトピックでロボットの車輪を回せるようにするために,アクチュエータの記述を追加し,ROSとGazeboをつなぎこみます.

Gazebo上にロボットをスポーンさせるlaunchファイルを書きます.

Gazeboではいくつかのセンサのシミュレーションも可能です.今回はロボットモデルに2D LiDARセンサを追加します.

今までの章でROSの基礎,2D LiDARを積んだ移動ロボットのシミュレーションモデルの作成を行いました.本章では,2D LiDARで取得した周囲の障害物情報を用いて,障害物にぶつからないように部屋を巡回する知能ロボットのコード作成をROSを用いて行います.


参考

本サイトで作成するコードの完成形は以下のリポジトリにまとめてあります.

https://github.com/Decwest/introduction-to-ros-pkgs

About

ROS (Robot Operating System) 入門

https://decwest.github.io/introduction-to-ros/