$30 off During Our Annual Pro Sale. View Details »

ROSでSLAMラジコンをつくる

 ROSでSLAMラジコンをつくる

Jumpei Takiyasu

August 28, 2020
Tweet

More Decks by Jumpei Takiyasu

Other Decks in Technology

Transcript

  1. Jumpei Takiyasu @juntaki
    M3, Inc.
    2020-08-28 TechTalk

    View Slide

  2. 自己紹介
    滝安純平(@juntaki) BIRのエンジニアTL
    過去の発表など
    ● Go・GCPでいろいろつくる
    ● 3Dプリンタをつかったロボット
    ● いいかんじの設計を考える(Clean Architecture)

    View Slide

  3. つくったもの
    SLAM※ができるラジコンをROSを
    使ってつくった
    自動運転など、周りの状況に適応でき
    るロボットのベースとなる技術の実験
    ※Simultaneous Localization and Mapping 自己位置推定と環境地図作成を同時に行うこと

    View Slide

  4. LIDAR(Light Detection and Ranging)
    測距レーザーをぐるぐる回すことで、
    点群データがえられるセンサ
    ちゃんとした物は数十万円はする
    これが
    LIDAR
    LIDAR動作イメージ

    View Slide

  5. デモ 左:生成したマップ、右:現実

    View Slide

  6. 詳細ハードウェア構成
    Raspberry Pi 4
    UPS
    DCモータドライバ
    TB6612
    レーザスキャナ
    RPLIDAR A1M8
    モータ用電源
    メカナムホイール
    DCモータ × 4
    このへんは3Dプリンタ
    で適当に作成

    View Slide

  7. ROSとは
    ROS (Robot Operating System)はソフトウェア開発者のロボット・アプリケーション作成を支援するライブラリとツールを提供しています
    . 具
    体的には, ハードウェア抽象化, デバイスドライバ,ライブラリ,視覚化ツール
    , メッセージ通信,パッケージ管理など
    が提供されています. -
    http://wiki.ros.org/ja
    OSと名前がついているが、LinuxなどのOSとは抽象化のレベルが違う
    実体としてはLinux上で動くユーザ空間ソフトウェアの集合体
    ドライバ
    ROS
    センサーだよ
    すごいやつだよ
    Linux
    I2Cのデバイスだよ
    私は電気でうごく
    顧客が本当に
    必要だったもの
    図:抽象化レベルのイメージ

    View Slide

  8. ROSの通信
    コンポーネント間の通信はPubSub(データの内容はROS側で規定)
    ● センサー:データを取得タイミングで送信(物理的な限界もあり様々)
    ● データ利用側:必要なトピックをサブスクライブできれば動く
    rosbag(=センサデータを記録・ダミーを再生できる)で都度リアルに動かさな
    くても開発が可能

    View Slide

  9. ソフトウェアの構成
    コントローラ
    @Laptop
    PubSub to ROS
    @Raspberry Pi
    移動・回転方向
    モータドライバ
    rplidar cartographer_ros Rviz(可視化)
    ラジコン部分は自作(https://github.com/juntaki/ros-pubsub)
    SLAMは既存パッケージのくみあわせ
    点群 マップ

    View Slide

  10. ノードの自作はGoで
    aler9/goroslib: ROS client library for the Go programming language
    クロスコンパイルが簡単&Goroutineなどと相性が良いのでGoでつくると楽
    ROSのインストールはDocker
    ROSパッケージとROSとUbuntuのバージョンの相性が厳しいので絶対に
    Dockerを使ったほうがいい
    Dockerを使えばいいと気づくまで3回くらいRaspberry PiにUbuntuを再インストールしました
    ROS使いこなし情報

    View Slide

  11. 参考:BIRのアーキテクチャ
    BIRのアンケートシステムと配信システムの連携にPubSub(とGo)を使う構成
    ● アンケート: 発生したイベントをPubSubに送信
    ● 配信システム: イベントを元に督促・配信状況をチューニング
    アンケートにリアルに回答しなくても、配信システムのテストが可能!?
    詳細はブログ記事→

    View Slide

  12. まとめ
    ROSでSLAMができるラジコンをつくった

    View Slide

  13. おまけ:自動字幕ツールについて
    下記のライブラリのサンプルコード(caption2)として公開しています
    juntaki/amivoice-go: AmiVoice Cloud PlatformのGoライブラリ

    View Slide