Client-Class Install
必要なファイル (尾原件が作成したソースコード)
x_logger: ログファイル管理
ese774_frame: コボッタ制御サーバーとの通信するためのフレームワーク(似非774版)
cobotta2: ORiN2 を用いたコボッタ制御サーバープログラム
cobotta2_client: コボッタサーバーと通信して、コボッタを制御するプログラムサンプル集
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