AGV(Automated Guided Vehecle)

はじめに

次の職場で、AGVに指示を出す、WCS(Warehouse Controll System)の別工場仕向けの開発に携わる。

ファミマで、AGVを見かけたので、記事を書いている。

ファミマにあったAGV

工場のAGVは、用途が違うとは思うが、上記のようにものを運ぶのがAGV。

WCSとAGVの関係

以下のソースコードを作成した。

class AGV:
    def __init__(self, id, battery_level):
        self.id = id
        self.battery_level = battery_level
        self.status = "待機中"

    def move(self, from_point, to_point):
        if self.battery_level < 10:
            raise Exception(f"{self.id} のバッテリー残量が不足しています。")

        self.status = "搬送中"
        print(f"{self.id} が {from_point} から {to_point} へ移動中...")

        # 仮の処理
        self.battery_level -= 10
        self.status = "搬送完了"
        print(f"{self.id} の搬送が完了しました。")

class WCS:
    def assign_task(self, agv, from_point, to_point):
        print(f"{agv.id} に搬送タスクを指示します。")
        agv.move(from_point, to_point)

# テスト実行
agv1 = AGV("AGV-001", battery_level=50)
wcs = WCS()

try:
    wcs.assign_task(agv1, "A地点", "B地点")
except Exception as e:
    print(f"エラー発生: {e}")

実行すると、以下のようになる。

AGV-001 に搬送タスクを指示します。
AGV-001 が A地点 から B地点 へ移動中...
AGV-001 の搬送が完了しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です