Variable Manager
Managing COBOTTA internal variables with a manager
The standard COBOTTA Python control library provides access to COBOTTA internal variables. Python can read and write their values.
COBOTTA Variable Manager
Methods such as client.move("P110") already support references to internal variables, but COBOTTA itself remains responsible for managing those variables. The manager is designed to make coordinates easier to use as local objects, for example move(var.P110), and to simplify batch exchange of internal variable values with COBOTTA.
Using the coordinate manager without attaching to a COBOTTA 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")
# Assign a value to an internal variable
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()
# Set internal variables P10–P20 to [0,0,0,0,0,0]
var.set_vars("P", 10, 20, [0,0,0,0,0,0])
var = CobottaVarManager()
# Assign a value to internal variable P10
var.set_var("P", 10,[0,0,0,0,0,0])
Saving internal variable values to a file
var = CobottaVarManager()
var.P11 = client.get_current_position()
var.save('save_name.json')
Loading values from a file into internal variables
var = CobottaVarManager()
var.load('save_name.json')
print(var.P10)
Reading COBOTTA values into the variable manager
var = CobottaVarManager()
var.attach_robot(client) # Attach the COBOTTA instance
# Read P10–P20 from the robot instance
var.read_vars_from_robot("P", 10, 20)
var = CobottaVarManager()
var.attach_robot(client) # Attach the COBOTTA instance
# Read P10–P20 from the robot instance
var.read_var_from_robot("P", 10)
var = CobottaVarManager()
var.attach_robot(client) # Attach the COBOTTA instance
# Read P10 from the robot instance
var.read_var_from_robot("P10")
Writing internal variable values to COBOTTA
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
# Modify internal variables
var.P10 = [0,0,0,0,0,0]
var.P11 = [0,0,0,0,0,0]
# Write internal variables P10–P20 to the robot instance
var.write_vars_to_cobotta("P", 10, 20)
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
# Modify internal variables
var.P10 = [0, 0, 0, 0, 0, 0]
# Write internal variable P10 to the robot instance
var.write_var_to_robot("P", 10)
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
# Modify internal variables
var.P10 = [0, 0, 0, 0, 0, 0]
# Write internal variable P10 to the robot instance
var.write_var_to_robot("P10")
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
var.load('save_name.json')
# Write all managed internal variables to the robot instance
var.write_all_to_robot()
Controlling COBOTTA with CobottaCtrl alone
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()
Using the coordinate manager without attaching to a COBOTTA 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")
# Assign a value to an internal variable
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()
# Set internal variables P10–P20 to [0,0,0,0,0,0]
var.set_vars("P", 10, 20, [0,0,0,0,0,0])
var = CobottaVarManager()
# Assign a value to internal variable P10
var.set_var("P", 10,[0,0,0,0,0,0])
Saving internal variable values to a file
var = CobottaVarManager()
var.P11 = client.get_current_position()
var.save('save_name.json')
Loading values from a file into internal variables
var = CobottaVarManager()
var.load('save_name.json')
print(var.P10)
Reading COBOTTA values into the variable manager
var = CobottaVarManager()
var.attach_robot(client) # Attach the COBOTTA instance
# Read P10–P20 from the robot instance
var.read_vars_from_robot("P", 10, 20)
var = CobottaVarManager()
var.attach_robot(client) # Attach the COBOTTA instance
# Read P10–P20 from the robot instance
var.read_var_from_robot("P", 10)
var = CobottaVarManager()
var.attach_robot(client) # Attach the COBOTTA instance
# Read P10 from the robot instance
var.read_var_from_robot("P10")
Writing internal variable values to COBOTTA
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
# Modify internal variables
var.P10 = [0,0,0,0,0,0]
var.P11 = [0,0,0,0,0,0]
# Write internal variables P10–P20 to the robot instance
var.write_vars_to_cobotta("P", 10, 20)
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
# Modify internal variables
var.P10 = [0, 0, 0, 0, 0, 0]
# Write internal variable P10 to the robot instance
var.write_var_to_robot("P", 10)
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
# Modify internal variables
var.P10 = [0, 0, 0, 0, 0, 0]
# Write internal variable P10 to the robot instance
var.write_var_to_robot("P10")
from cobotta2 import CobottaVarmanager
var = CobottaVarManager(cobotta)
var.load('save_name.json')
# Write all managed internal variables to the robot instance
var.write_all_to_robot()