Skip to main content

A Python/Javascript Visualiser

Project description

Swift

PyPI version PyPI - Python Version License: MIT QUT Centre for Robotics Open Source

Swift is a light-weight browser-based simulator built on top of the Robotics Toolbox for Python. This simulator provides robotics-specific functionality for rapid prototyping of algorithms, research, and education. Built using Python and Javascript, Swift is cross-platform (Linux, MacOS, and Windows) while also leveraging the ubiquity and support of these languages.

Through the Robotics Toolbox for Python, Swift can visualise over 30 supplied robot models: well-known contemporary robots from Franka-Emika, Kinova, Universal Robotics, Rethink as well as classical robots such as the Puma 560 and the Stanford arm. Swift is under development and will support mobile robots in the future.

Swift provides:

  • visualisation of mesh objects (Collada and STL files) and also primitive shapes;
  • robot visualisation and simulation;
  • recording and saving a video of the simulation;
  • source code which can be read for learning and teaching;

Installing

Using pip

It is highly recommended to control Swift through the Robotics Toolbox for Python. By installing the toolbox through PyPI, swift is installed as a dependency

pip3 install roboticstoolbox-python

Otherwise, Swift alone can be install by

pip3 install swift-sim

From GitHub

To install the bleeding-edge version from GitHub

git clone https://github.com/jhavl/swift.git
cd swift
pip3 install -e .

Code Examples

Robot Plot

We will load a model of the Franka-Emika Panda robot and plot it. We set the joint angles of the robot into the ready joint configuration qr.

import roboticstoolbox as rp

panda = rp.models.Panda()
panda.plot(q=panda.qr)

Resolved-Rate Motion Control

We will load a model of the Franka-Emika Panda robot and make it travel towards a goal pose defined by the variable Tep.

import roboticstoolbox as rtb
import spatialmath as sm
import numpy as np

# Make and instance of the Swift simulator and open it
env = rtb.backends.Swift()
env.launch()

# Make a panda model and set its joint angles to the ready joint configuration
panda = rtb.models.Panda()
panda.q = panda.qr

# Set a desired and effector pose an an offset from the current end-effector pose
Tep = panda.fkine() * sm.SE3.Tx(0.2) * sm.SE3.Ty(0.2) * sm.SE3.Tz(0.45)

# Add the robot to the simulator
env.add(panda)

# Simulate the robot while it has not arrived at the goal
arrived = False
while not arrived:

    # Work out the required end-effector velocity to go towards the goal
    v, arrived = rtb.p_servo(panda.fkine(), Tep, 1)
    
    # Set the Panda's joint velocities
    panda.qd = np.linalg.pinv(panda.jacobe()) @ v
    
    # Step the simulator by 50 milliseconds
    env.step(0.05)

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

swift-sim-0.6.1.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

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

swift_sim-0.6.1-py3-none-any.whl (3.4 MB view details)

Uploaded Python 3

File details

Details for the file swift-sim-0.6.1.tar.gz.

File metadata

  • Download URL: swift-sim-0.6.1.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.6

File hashes

Hashes for swift-sim-0.6.1.tar.gz
Algorithm Hash digest
SHA256 8f1cb0e97e0ddcc1bd514c604e741021a29deef30a9ffb823124d8aab9fc17c7
MD5 12c441f17690e822ecee077f02d63368
BLAKE2b-256 c6e0d26a414cd8762f7eaddaace7cf8516c8af4761cd3efac524455fbd01e88e

See more details on using hashes here.

File details

Details for the file swift_sim-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: swift_sim-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.6

File hashes

Hashes for swift_sim-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 adeaf17ee5568bcd0373921ad0db76210495df90696c613a6565ea2036c7b99c
MD5 12bfc1d042ed6c194e541dafde497e9c
BLAKE2b-256 539ab655aedd3bda8ed8d1af79b9b7137bf688ed892dfe7d8f07bb37386e9937

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