Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バスあと何分ミニサイネージ

 バスあと何分ミニサイネージ

UXプロジェクト オープンデータソン2022のLT資料です

Satoshi Gachi Fujimoto

January 20, 2023
Tweet

More Decks by Satoshi Gachi Fujimoto

Other Decks in Technology

Transcript

  1. 2023/01/20
    UXプロジェクト オープンデータソン2022
    バスあと何分ミニサイネージ

    View Slide

  2. ⾃⼰紹介
    藤本賢志(ふじもとさとし)
    ニックネーム︓がちもとさん
    Co-founder KumaMCN
    株式会社ナレッジコミュニケーション
    R&D戦略チームマネージャー
    ⾼専で制御を、⼤学でセンシングを学び、次は脳みそ。
    ARナビゲーションや電動⾞いすの⾃動運転に関する研究開発。
    専⾨は、コンピュータビジョン、画像処理、制御⼯学。
    Twitterフォローお願いします︕ 👉 @sotongshi

    View Slide

  3. こんなことありませんか︖
    熊本市の渋滞箇所数・平均速度は全国ワースト1位💦
    ⽬の前をバス
    が通り過ぎた
    しかも2台同時に
    次のバスは
    30分後
    https://www.city.kumamoto.jp/common/UploadFileDsp.aspx?c_id=5&id=24672&sub_id=1&flid=174687

    View Slide

  4. ⾃分専⽤のちっちゃなミニサイネージを作りました
    • ⾃宅やオフィスに⾃分だけのサイネージが欲しい
    • 時刻や〇停前ではなく「あと何分」だけが知りたい
    • 2021年11⽉ごろにGTFSリアルタイムの公開
    https://twitter.com/sotongshi/status/1471274080100040705

    View Slide

  5. GTFS(General Transit Feed Specification)とは︖
    • 標準的なバス情報フォーマット
    • バスきたくまさんで使⽤しているデータをオープンデータ化
    • GTFS(静的)︓経路情報や便情報など(CSV形式)
    • GTFSリアルタイム︓⾞両の移動状況に関する情報や⾞両の位置情報など(JSON形式)
    https://km.bus-vision.jp/kumamoto/view/opendataKuma.html
    事業者情報 agency.txt
    事業者追加情報 agency_jp.txt
    運⾏区分情報 calendar.txt
    運⾏⽇情報 calendar_dates.txt
    運賃属性情報 fare_attributes.txt
    運賃定義情報 fare_rules.txt
    提供情報 feed_info.txt
    営業所情報 office_jp.txt
    経路情報 routes.txt
    経路追加情報 routes_jp.txt
    通過時刻情報 stop_times.txt
    停留所・標柱情報 stops.txt
    翻訳情報 translations.txt
    便情報 trips.txt
    GTFS(静的) GTFSリアルタイム

    View Slide

  6. システムの流れ
    1. 運⾏前にGTFS(静的)からデータを更新
    2. M5StackのSDカードにWiFi設定、乗⾞停留所と降⾞停留所を書き込んでおく
    3. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得
    GTFS
    リアルタイム
    Lambda
    S3
    API Gateway
    EventBridge
    M5Stack
    GTFS(静的)
    Lambda
    停留所
    あと何分

    View Slide

  7. M5Stack
    • ディスプレイ付きマイコン
    • WiFiに繋がる
    • 様々なセンサーやアクチュエータを取り付け可能
    https://docs.m5stack.com/en/core/basic_v2.6
    https://www.switch-science.com/products/7363

    View Slide

  8. 運⾏前にGTFS(静的)からデータを⾃動更新
    • EventBridgeを⽤いて毎朝4:15~5:30の間に15分おきにLambda関数(update)を実⾏
    • Lambda関数(update)
    1. GTFS(静的)データを取得
    2. 提供情報(feed_info.txt)のfeed_versionが更新されていたらS3に保存
    • 停留所情報(stops.csv)→ バス停⼀覧(stop_names.csv)を作成
    • 経路情報(routes.csv)
    • 便情報(trips.csv)
    • 通過時刻情報(stop_times.csv)
    • 運⾏区分情報(calendar.csv)
    • 運⾏⽇情報(calendar_dates.csv)
    3. 更新したか/最新かを返す
    S3
    EventBridge
    GTFS(静的)
    Lambda

    View Slide

  9. 「あと何分」の情報を返すAPI
    • Lambda関数(minutes)
    1. 乗⾞停留所→降⾞停留所の時刻表を作成
    • 停留所情報(stops)から⼀致するバス停名のstop_idを取得
    • stop_idに対応する通過時刻情報(stop_times)を取得
    • trip_idに対応する便情報(trips)を取得
    2. service_idと⼀致する運⾏区分(calendar)と運⾏⽇情報(calendar_dates)から運⾏状況を確認
    3. GTFSリアルタイムのTrip_Updateからtrip_idとstop_idが⼀致する通過時刻を取得
    4. 通過時刻から現在時刻を引いて「あと何分」のリストを返す GTFS
    リアルタイム
    Lambda
    S3
    API Gateway

    View Slide

  10. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得
    • 必要な情報だけを取得できるAPIを作っておけば、簡単に連携できる
    • ノーコードでプログラミング
    • ユーザーはWiFi、乗⾞停留所、降⾞停留所の情報をSDカードに書き込んでおくだけ
    • ボタンが3つあるので、ページの切り替えが可能

    View Slide

  11. https://togetter.com/li/1817346

    View Slide

  12. AR(拡張現実)バージョン
    • 熊本駅周辺を3Dスキャン
    • バーチャル空間にナビゲーションを設計
    • リアルとバーチャルの位置合わせ、ナビ表⽰
    • バス停にはバーチャルサイネージを表⽰
    https://twitter.com/sotongshi/status/1492760083503398915

    View Slide

  13. オープンデータを活⽤するために
    • データの標準化(使いやすいCSVやJSON)と公開
    • データを使って、必要な情報を提供するAPIを作成
    • APIを実⾏することで様々なアプリ間での連携
    • ノーコードでプログラミングをはじめよう

    View Slide

  14. ご清聴ありがとうございました

    View Slide