Client-Class Install

必要なファイル (尾原件が作成したソースコード)

  1. x_logger: ログファイル管理

  2. ese774_frame: コボッタ制御サーバーとの通信するためのフレームワーク(似非774版)

  3. cobotta2: ORiN2 を用いたコボッタ制御サーバープログラム

  4. cobotta2_client: コボッタサーバーと通信して、コボッタを制御するプログラムサンプル集

  5. cobotta_joypad: JoyPad を用いてcobotta制御 (gRPCを用いた高速通信用)

クライアントプログラムの利用 (cobotta server を使うための方法)

スサノオプロジェクトで作成した ese774_frame/cobotta2 を用いた。 BL774方式の分散型(ただしくはただのサーバークライアント)ロボット制御を用いたコボッタ制御の例題を示す。

基本サンプル集

  • cobotta2_client: コボッタサーバーと通信して、コボッタを制御するプログラムサンプル集

基本例題が揃っているので、ほぼ cobotta での捜査は網羅している。

以下簡単な例を抜粋

現在の位置表示 (xyz表示)

import logging
import asyncio
from pathlib import Path

import asyncio
from cobotta2 import Config, MotionMode
from cobotta2.server import AsyncCobottaClient
from x_logger import XLogger

# httpx のログを WARNING レベル以上にする(INFO を抑制)
logging.getLogger("httpx").setLevel(logging.WARNING)

#@pytest.mark.asyncio
async def work():

    HERE = Path(__file__).parent
    Config.load_yaml(HERE / "config_cobotta1.yaml")
    # Config.load_yaml("config_cobotta1.yaml")

    logger = XLogger(log_level="info", logger_name=Config.CLIENT_LOGGER_NAME)
    client = AsyncCobottaClient(config=Config, logger=logger)

    try:
        # busy_status などの問い合わせは take arm しないほうがいい。
        result = await client.current_position()
        logger.info(type(result))
        logger.info(result)
    except Exception as e:
        print(e)
    assert "result" == "result"
    # send_command("unknown")  # これはエラーになる

if __name__ == "__main__":
    asyncio.run(work())

基本移動内部の座標移動


作者

  • Kengo NAKADA