COBOTTA Control
Contents:
- cobotta2
- Tutorials
- Overview of COBOTTA Control
- Quick Start
- Server-Class Installation
- Client-Class Installation
- Config
- Starting the Control Server
- Overview of the COBOTTA Client Using Device Class and Device Proxy
- Basic Control
- Camera
- COBOTTA Internal Variables
- Variable Manager
- Controlling PacScript
- Local Control
- Author
- Alternative examples
- Writing config.yaml
- STOP
- Checking current errors
- Basic command: take_arm
- Basic command: give_arm (not implemented)
- Basic command: turn_on_motor
- Basic command: turn_off_motor
- Basic command: set_coord_type
- Basic command: set_motion_mode
- Basic command: set_speed
- Basic command: set_accel
- Basic command: set_decel
- Current arm position
- Checking whether an operation succeeded
- Arm movement 0 (DENSO syntax)
- Arm movement 1: standard usage
- Arm movement 2 (position)
- Arm movement 3 (j2p, p2j)
- Arm movement 4 (angle)
- Arm movement 5 (coord_type)
- Arm movement 6 (path_blend)
- Arm movement 7 (speed)
- Arm movement 8 (accel/decel)
- Arm movement 9 (motion_mode)
- Arm movement 10 (drive command)
- Arm movement 11 (offset command)
- Arm movement 12 (rotate)
- Gripper 1 (distance-controlled movement)
- Gripper 2 (force-controlled closing)
- Changing the coordinate system (defining work coordinates)
- Retrieving COBOTTA hardware logs
- Reading and writing internal variables 1 (get_P)
- Reading and writing internal variables 2 (property)
- Writing internal variable values from a file to COBOTTA
- Saving internal variables to a file
- Listing internal PacScript programs
- Running an internal PacScript program
- Loading an internal PacScript program (upload)
- Saving an internal PacScript program (download)
- Author
- cobotta camera (EVP2)
- Controlling COBOTTA with a Joypad
- Tips
- history & comment
COBOTTA Control Classes (v0.10.3)
The COBOTTA control architecture is organized around four main classes and two interface classes.
cobotta_bcap.py: low-level COBOTTA control through b-CAP.cobotta_orin2.py: COBOTTA control through ORiN2.cobotta_ctrl.py: COBOTTA control interface.cobotta_ctrl_joypad.py: joystick control and COBOTTA control throughcobotta_bcap.
b-CAP control
cobotta_bcap.py → cobotta_ctrl_joypad.py
ORiN2 control
cobotta_orin2.py → cobotta_ctrl.py
The b-CAP and ORiN2 implementations are intended to be largely interchangeable for basic operations. ORiN2, however, uses Windows COM, whose objects have thread-affinity and lifetime-management constraints. When integrating ORiN2 into a server framework such as gRPC, calls must be dispatched through an appropriate COM-owning thread. Python bindings require particular care to release COM references and relinquish robot control correctly.
pad: joystick support
input_grpc_client.py, input_grpc_server.py, input_joypad_local.py, joypad_core.py, joypad_mover.py, joypad_runtime.py.
server_fastapi: communication through ese774
The clients, models, and routers directories provide client implementations, Pydantic interface models, and server routers. spec_ctrl.py defines the control interface. Server launch scripts include joypad_grpc_server.py and orin2_grpc_server.py.
server_grpc: communication through grpc_frame
Clients include bcap_grpc_async_client.py, joypad_grpc_client.py, and orin2_grpc_client.py. The make_bcap_pyi.py, make_joypad_pyi.py, and make_orin2_pyi.py scripts generate .pyi stubs to support editor completion when dynamic dispatch would otherwise obscure method signatures.
Control examples and tests
The tests directory contains examples covering direct control, FastAPI/ese774, gRPC, and local operation.