Skip to main content

Package to control CTU/CIIRC robot Bosch SR450 via MARS control unit.

Project description

BOSCH SR450 Robot at CTU/CIIRC

Package to control CTU/CIIRC robot Bosch SR450 via MARS control unit. This code is based on https://github.com/cvut/pyrocon but adds packaging, documentation, and some testing.

Installation

pip install ctu_bosch_sr450

Installation for old systems via Conda

You need at least Python 3.7 to use this package. In case your python is old (Ubuntu in CIIRC labs has old 3.6), install updated version of python e.g. via miniconda:

# Install miniconda:
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh

# Create conda environment with newer python and install ctu_bosch_sr450:
conda create -n ctu_robotics python=3.8
conda activate ctu_robotics
pip install ctu_bosch_sr450

Usage

from ctu_bosch_sr450 import RobotBosch

robot = RobotBosch() # 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
robot.move_to_q([0.1, 0.0, 0.0, 0.0]) # move robot
robot.wait_for_motion_stop()
robot.close() # close the connection

Kinematics

robot = RobotBosch(tty_dev=None) # initialize object without connection to the robot
x, y, z, phi = robot.fk([0, 0, 0, 0]) # compute forward kinematics
q = robot.ik([x, y, z, phi])[0] # compute inverse kinematics, get the first solution

Coordinate systems

The library uses meters and radians for all values. Variable q is used to denote joint configuration, i.e. the array of joint angles/joint distance for revolute and prismatic joints, respectively. Variables x, y, z, and phi are used to denote position and orientation of the end-effector in the base frame. The orientation is given as rotation around the z-axis of the base frame. The reference base frame is located as shown in the figure below.

Joint configuration

The joint configuration is defined as follows:

  • the first joint is revolute and its angle is measured w.r.t. the x-axis of the base frame
  • the second joint is revolute and is measured w.r.t. the previous link
  • the third joint is prismatic and controls the height (i.e. motion in z-axis)
  • the last joint is revolute and measured w.r.t. the x-axis of the base frame (i.e. * not* w.r.t. the previous link)

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

ctu_bosch_sr450-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ctu_bosch_sr450-0.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file ctu_bosch_sr450-0.1.0.tar.gz.

File metadata

  • Download URL: ctu_bosch_sr450-0.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.10.0 CPython/3.10.12

File hashes

Hashes for ctu_bosch_sr450-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2684442fb376885df8ae7705559ecc44f7a8558f88df2aa2a1fb2c60b28bf949
MD5 29d9576d891c3d3b653f0ce931f7c531
BLAKE2b-256 6391ed3a6a4f8480b61de900f9007ee6e113ad5426329cae77d7416c2575b005

See more details on using hashes here.

File details

Details for the file ctu_bosch_sr450-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ctu_bosch_sr450-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e23897bb50c65f39774c8f9481e7a61c263c6284d6a0dde11fe5abfa23de8337
MD5 2756f01021799dbef0c994618cceb3e0
BLAKE2b-256 4628c1f658a354176e9927f12755278115bd3aa6bcf8ff255c9a6aa4d89671a0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page