-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
アーキテクチャを決定する #8
Comments
今年度やりたいことMUST
HAD BETTER
|
自動運転昨年度は実装できなかった部分であるので、1から実装をする必要がある。 管理サイト基本的にやりたいこととしては去年のサイトと同じだが、今回は状態を同期するためのプロトコルとしてconnect-webを採用したい。また、プラレールのレイアウトが微妙に変化することが予想されるのでフロントエンドの調整(SVG手打ち芸)が必要だが、可能ならこの部分を簡単にできるとなおよい。 状態管理これまでとは異なるアーキテクチャで、列車の状態管理をモダンなIoTのアーキテクチャに近づけていきたい。 列車検知これまでのホールセンサーやCdSでは読み飛ばしが多くあった。今回はそうしたデータの読み飛ばしをなくすために、マイクロスイッチを用いた列車の通過検知と、列車が駅に停車した際にNFCタグを用いて列車を識別するような仕組みを実装したい。 ポイント・ストップレール制御昨年度と同様にESP32にサーボモータを接続して制御を行うことを検討している。 カメラ配信昨年度と同様にしてSkyWayを用いた映像中継を検討している。 ラジコンラジコンに関してはTWILITEを用いた速度制御を行うことで安定性の向上を目指したい。 |
自動運転周りで色々とアーキテクチャが更新されたので変更 flowchart RL
subgraph 状態管理
管理画面 <-->|"connect-web"| StateManager
EventHandler <-->|"connect"| StateManager
StateManager <--> DB1[(state_db)]
end
subgraph 自動運転
TrainController <--> StateManager
DiagramManager --> PathPlanner
PathPlanner <--> TrainController
DiagramManager <--> DB2[(diagram_db)]
DiagramManager <-->|"connect-web"| 管理画面
end
subgraph 映像配信
Webカメラ --> |"USB"| 配信サイト
ESP-EYE -->|"mjpeg"| 配信サイト
配信サイト -->|"WebRTC"| SkyWay
SkyWay -->|"WebRTC"| 管理画面
end
subgraph エッジデバイス
StateManager <-->|"MQTT"| Servo
Sensor -->|"MQTT"| EventHandler
end
|
StateManagerからservoつなぐの? |
StateManagerが物理世界のグラフと路線図のグラフを両方持っていて(これはフロントエンドでの表示でも使うため)、TrainControllerはStateManagerが持ってる物理世界の状態を更新することによってサーボが動く想定をしてる |
物理世界のグラフって何をさしてるの |
グラフという表現は間違ってたかも。 |
なるほど、その場合ってstateManagerのサーボの状態をもとに物理世界へのサーボに指令を出すサービスを間に挟まなくていいの? |
その部分の認識がちょっと違うかもしれない |
あー、なるほど |
前言ってたMQTTのサブスクライバとパブリッシャーのアーキテクチャの話か? |
そうだね。MQTTのPub/Subを上手に使うためにそうゆう設計が良いかなと 参考 |
フロントエンドとStateManager間の通信をGraphQLにしても良いかもしれない...? |
ref #62 |
よくよく考えたら、State Managerにおいて一括で状態を管理するのはMircoservice archtectureに反しているような気がしてきた。あと、フロントエンドとの通信をいい感じにするためにBFF(Backend For Frontend)を追加してあげると良さそう。 |
オライリー本を読んだ感じ、同じ状態を用いるコンポーネントが存在する場合に、その共通の状態を管理するサービスを用意するのは正しそう。 |
やりたいこと
実装を始めるにあたって、アーキテクチャを設計する。
実装の方針
前年度の内容をもとにして、今年度やりたいことをもとにしてソフトウェアとハードウェアを含めた全体のアーキテクチャ設計をする。
The text was updated successfully, but these errors were encountered: