変数マネージャ

コボッタの内部変数管理をマネージャーを使って扱う

標準で コボッタ制御 python に用意しているもの

  • コボッタ内部変数は python から扱えるようにしてます。

  • コボッタ内部変数の書き出しは読み出しを python から使えます

コボッタマネージャー

現状のpythoでは cleint.move("P110") のような内部変数呼び出しでのメソッド動作 が可能ですが、あくまで管理の主体はコボッタです。 このマネージャは move(var.P110) のようにコボッタ内部のように座標を扱うことを簡単に行うことを想定していて。 マネージャーを使って一括でコボッタの内部変数やり取りがやりやすいよう設計しています。

コボッタinstanceと接続せずに座標系のマネージャーとしてつかう

from cobotta2 import Config, CobottaCtrl, RobotVarManager
from x_logger import XLogger

Config.load_yaml("config_cobotta1.yaml")
logger = XLogger(log_level="info", logger_name=Config.CLIENT_LOGGER_NAME)
client = CobottaCtrl(cobotta_ip=Config.COBOTTA_IP, logger=logger)
var = RobotVarManager()

client.turn_on_motor()
client.take_arm()

client.move("P110")

# ある値を内部変数値に入れる
var.P10 = [0, 0, 0, 0, 0, 0]
var["P11"] = client.get_current_position()
var.P12 = [0, 0, 0, 0, 0, 0]

print(var.P10)
print(var["P11"])
print(var["P12"])

client.move(var.P10)
client.move(var.P11)
client.move(var.P12)
var = CobottaVarManager()
# 内部値 P10-P20 まで [0,0,0,0,0,0] にする
var.set_vars("P", 10, 20, [0,0,0,0,0,0])
var = CobottaVarManager()
# 内部値 P10に、値を登録
var.set_var("P", 10,[0,0,0,0,0,0])

内部変数値のファイルへの書き出し

var = CobottaVarManager()
var.P11 = client.get_current_position()
var.save('save_name.json')

ファイル値を内部変数値へ書き出す

var = CobottaVarManager()
var.load('save_name.json')
print(var.P10)

cobotta値を内部変数値へ書き出す

var = CobottaVarManager()
var.attach_robot(client)  # cobotta_instance セット

# robot_instance 内部を読み込む P10- P20
var.read_vars_from_robot("P", 10, 20)
var = CobottaVarManager()
var.attach_robot(client)  # cobotta_instance セット

# robot_instance 内部を読み込む P10- P20
var.read_var_from_robot("P", 10)
var = CobottaVarManager()
var.attach_robot(client)  # cobotta_instance セット

# robot_instance 内部を読み込む P10
var.read_var_from_robot("P10")

内部変数値を cobotta へ書き出す

from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)

# 内部変数を書き換え
var.P10 = [0,0,0,0,0,0]
var.P11 = [0,0,0,0,0,0]

# 内部値 P10-P20 を robot_instance P10-P20 へ書き出し
var.write_vars_to_cobotta("P", 10, 20)
from cobotta2 import CobottaVarmanager

var = CobottaVarManager(cobotta)

# 内部変数を書き換え
var.P10 = [0, 0, 0, 0, 0, 0]

# 内部値 P10 を robot_instance P10 へ書き出し
var.write_var_to_robot("P", 10)
from cobotta2 import CobottaVarmanager

var = CobottaVarManager(cobotta)

# 内部変数を書き換え
var.P10 = [0, 0, 0, 0, 0, 0]

# 内部値 P10 を robot_instance P10 へ書き出し
var.write_var_to_robot("P10")
from cobotta2 import CobottaVarmanager

var = CobottaVarManager(cobotta)

var.load('save_name.json')

# 現在持っている内部変数を全て robot_instance に書き出す
var.write_all_to_robot()

CobottaCtrl 単独で制御するとき

from cobotta2 import Config, CobottaCtrl
from x_logger import XLogger

async def main():
    Config.load_yaml("config_cobotta1.yaml")
    logger = XLogger(log_level="info", logger_name=Config.CLIENT_LOGGER_NAME)
    client = CobottaCtrl(cobotta_ip=Config.COBOTTA_IP, logger=logger)

    result = client.current_position()
    print(result)

    client.disconnect()

if __name__ == "__main__":
    main()

コボッタinstanceと接続せずに座標系のマネージャーとしてつかう

from cobotta2 import Config, CobottaCtrl, RobotVarManager
from x_logger import XLogger

Config.load_yaml("config_cobotta1.yaml")
logger = XLogger(log_level="info", logger_name=Config.CLIENT_LOGGER_NAME)
client = CobottaCtrl(cobotta_ip=Config.COBOTTA_IP, logger=logger)
var = RobotVarManager()

client.turn_on_motor()
client.take_arm()

client.move("P110")

# ある値を内部変数値に入れる
var.P10 = [0, 0, 0, 0, 0, 0]
var["P11"] = client.get_current_position()
var.P12 = [0, 0, 0, 0, 0, 0]

print(var.P10)
print(var["P11"])
print(var["P12"])

client.move(var.P10)
client.move(var.P11)
client.move(var.P12)
var = CobottaVarManager()
# 内部値 P10-P20 まで [0,0,0,0,0,0] にする
var.set_vars("P", 10, 20, [0,0,0,0,0,0])
var = CobottaVarManager()
# 内部値 P10に、値を登録
var.set_var("P", 10,[0,0,0,0,0,0])

内部変数値のファイルへの書き出し

var = CobottaVarManager()
var.P11 = client.get_current_position()
var.save('save_name.json')

ファイル値を内部変数値へ書き出す

var = CobottaVarManager()
var.load('save_name.json')
print(var.P10)

cobotta値を内部変数値へ書き出す

var = CobottaVarManager()
var.attach_robot(client)  # cobotta_instance セット

# robot_instance 内部を読み込む P10- P20
var.read_vars_from_robot("P", 10, 20)
var = CobottaVarManager()
var.attach_robot(client)  # cobotta_instance セット

# robot_instance 内部を読み込む P10- P20
var.read_var_from_robot("P", 10)
var = CobottaVarManager()
var.attach_robot(client)  # cobotta_instance セット

# robot_instance 内部を読み込む P10
var.read_var_from_robot("P10")

内部変数値を cobotta へ書き出す

from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)

# 内部変数を書き換え
var.P10 = [0,0,0,0,0,0]
var.P11 = [0,0,0,0,0,0]

# 内部値 P10-P20 を robot_instance P10-P20 へ書き出し
var.write_vars_to_cobotta("P", 10, 20)
from cobotta2 import CobottaVarmanager

var = CobottaVarManager(cobotta)

# 内部変数を書き換え
var.P10 = [0, 0, 0, 0, 0, 0]

# 内部値 P10 を robot_instance P10 へ書き出し
var.write_var_to_robot("P", 10)
from cobotta2 import CobottaVarmanager

var = CobottaVarManager(cobotta)

# 内部変数を書き換え
var.P10 = [0, 0, 0, 0, 0, 0]

# 内部値 P10 を robot_instance P10 へ書き出し
var.write_var_to_robot("P10")
from cobotta2 import CobottaVarmanager

var = CobottaVarManager(cobotta)

var.load('save_name.json')

# 現在持っている内部変数を全て robot_instance に書き出す
var.write_all_to_robot()

作者

  • Kengo NAKADA