Package to control CTU/CIIRC robots CRS93 and CRS97 via MARS control unit.
Project description
CRS robots control at CTU/CIIRC
Package to control CTU/CIIRC robots CRS93 and CRS97 via MARS control unit.
Installation
pip install ctu_crs
Command-Line Scripts
This package includes command-line scripts for direct robot control from your terminal.
move_crs97
After installing the package, you can use the move_crs97 or move_crs93 script to move the robot by a relative offset for specified joints.
Usage:
move_crs93 <joint_name> <angle_degrees> [<joint_name> <angle_degrees> ...]
move_crs97 <joint_name> <angle_degrees> [<joint_name> <angle_degrees> ...]
To move the first joint (q0) by 10 degrees and the second joint (q1) by -5 degrees, run:
move_crs93 q0 10 q1 -5
move_crs97 q0 10 q1 -5
Simple python script to control the robot
from ctu_crs import CRS93 # or CRS97
robot = CRS93() # set argument tty_dev=None if you are not connected to robot,
# it will allow you to compute FK and IK offline
robot.initialize() # initialize connection to the robot, perform hard and soft home
q = robot.get_q() # get current joint configuration
robot.move_to_q(q + [0.1, 0.0, 0.0, 0.0, 0.0, 0.0]) # move robot all values in radians
robot.wait_for_motion_stop() # wait until the robot stops
robot.close() # close the connection
Step-by-Step Procedure for Operating the Robot
- Power On the Robot Turn on the robot using the red switch on the front panel of the control unit (the switch will light up). Press the yellow Arm Power button (a yellow LED will light up above it).
- Initialize Communication and Setup in Python Run the following commands to initiate communication and perform necessary setup:
from ctu_crs import CRS93 # or CRS97
robot = CRS93() # set argument tty_dev=None if you are not connected to robot,
# it will allow you to compute FK and IK offline
robot.initialize() # initialize connection to the robot, perform hard and soft home
-
Move the Robot After initialization, you can continue with your desired commands for operating the robot.
-
End of Session - Return Robot to Home Position To finish working and return the robot to the home position, execute:
robot.soft_home()
robot.close() # close the connection
Turn off the robot by switching off the red rocker switch on the front panel.
Accessing the Robot Within the Safety Cage
If you need to work inside the protective cage: Stop the robot (wait until movement stops completely). You can check with:
robot.in_motion()
Run the following command to release the robot:
robot.release()
This will engage the brakes and disconnect feedback. Be cautious, as the robot arm might slightly drop, so avoid performing this command directly above the work surface. Open the cage door (the yellow Arm Power LED will turn off).
Emergency Stop Procedure
If the robot behaves unexpectedly, immediately press the Emergency Stop button (red mushroom-shaped button).
Restoring Operation After Emergency Stop or Working Inside the Cage
Unlock the emergency stop by pressing the blue button on the side of the emergency button, or close the cage door if open. Press the Motion Stop button. Press the yellow Arm Power button (the yellow Arm Power LED will turn on). Resume sending movement commands to the robot. If the motor enters an error state (indicated by a flashing green status LED above the motor’s letter and a red error LED), reset the motor state with:
robot.reset_motors()
Note: Re-homing the robot is not necessary, even after activating the emergency stop or opening the cage door, as long as the control unit is not powered off.
For developers
git clone git@github.com:CTURobotics/ctu_crs.git
cd ctu_crs
uv sync
uv pip install -e ".[dev]"
pre-commit install
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ctu_crs-1.0.4.tar.gz.
File metadata
- Download URL: ctu_crs-1.0.4.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a07d89ad31f95ad9bf6e59d26ffd97de94746546a7360ab399837c5649147bbc
|
|
| MD5 |
c8da2abeaffeda2cdec39ff30d406bd4
|
|
| BLAKE2b-256 |
c854af521bc397354a2de5d927893dbce1ced3aa1790e6915e8228cb3f9d73a7
|
Provenance
The following attestation bundles were made for ctu_crs-1.0.4.tar.gz:
Publisher:
release.yml on CTURobotics/ctu_crs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ctu_crs-1.0.4.tar.gz -
Subject digest:
a07d89ad31f95ad9bf6e59d26ffd97de94746546a7360ab399837c5649147bbc - Sigstore transparency entry: 578739281
- Sigstore integration time:
-
Permalink:
CTURobotics/ctu_crs@369e16ff497e3ae3b0848cd2f69b74a9ec46b944 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/CTURobotics
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@369e16ff497e3ae3b0848cd2f69b74a9ec46b944 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ctu_crs-1.0.4-py3-none-any.whl.
File metadata
- Download URL: ctu_crs-1.0.4-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8def5f8107c9af0cc5f470a86c888785dba410d125d5ca50de8d421e6430ba6
|
|
| MD5 |
43e7862d7c6e1184a6b34064eca4976b
|
|
| BLAKE2b-256 |
81c58e6ad49080f97bf0eb1f9a186f841587c7cbaeac19a129bc5025f5fa557d
|
Provenance
The following attestation bundles were made for ctu_crs-1.0.4-py3-none-any.whl:
Publisher:
release.yml on CTURobotics/ctu_crs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ctu_crs-1.0.4-py3-none-any.whl -
Subject digest:
f8def5f8107c9af0cc5f470a86c888785dba410d125d5ca50de8d421e6430ba6 - Sigstore transparency entry: 578739289
- Sigstore integration time:
-
Permalink:
CTURobotics/ctu_crs@369e16ff497e3ae3b0848cd2f69b74a9ec46b944 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/CTURobotics
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@369e16ff497e3ae3b0848cd2f69b74a9ec46b944 -
Trigger Event:
release
-
Statement type: