Skip to main content

j5 Robotics Framework

Project description

j5

Tests Test Coverage Maintainability Documentation Status PyPI version MIT license Bees

j5 Framework - Creating consistent APIs for robotics

What is j5?

j5 is a Python 3 framework that aims to make building consistent APIs for robotics easier. It was created to reduce the replication of effort into developing the separate, yet very similar APIs for several robotics competitions. Combining the common elements into a single library with support for various hardware gives a consistent feel for students and volunteers. This means more time to work on building robots!

How do I use j5?

j5 is designed to never be visible to students. It sits behind the scenes and works magic.

from robot import Robot

r = Robot()
r.motor_boards[0].motors[1] = 0.5

The above code is likely to be familiar to any student who has competed in one of the below competitions. However, it is not a trivial problem to make this code portable across the platforms. For example, the motor board for Student Robotics is a separate board to the brain board, but is built into the same board for HR RoboCon.

j5 lets competition vendors define how the basic parts of the apis are accessed. A robot can thus be constructed from any combination of parts from various organisations.

from j5 import BaseRobot
from j5.backends.hardware.sr.v4 import (
    SRV4MotorBoardHardwareBackend,
    SRV4PowerBoardHardwareBackend,
    SRV4ServoBoardHardwareBackend,
)
from j5.boards import BoardGroup
from j5.boards.sr.v4 import MotorBoard, PowerBoard, ServoBoard


class Robot(BaseRobot):
    """My Competition Robot."""

    def __init__(self) -> None:
        self._power_boards = BoardGroup.get_board_group(
            PowerBoard, SRV4PowerBoardHardwareBackend,
        )
        self.power_board = self._power_boards.singular()

        self.motor_boards = BoardGroup.get_board_group(
            MotorBoard, SRV4MotorBoardHardwareBackend,
        )
        self.motor_board = self.motor_boards.singular()

        self.servo_boards = BoardGroup.get_board_group(
            ServoBoard, SRV4ServoBoardHardwareBackend,
        )
        self.servo_board = self.servo_boards.singular()

Competitions

We intend to support the kits of the following robotics competitions:

Whilst j5 isn't officially endorsed by Student Robotics or RoboCon, we are working closely with Student Robotics to ensure perfect compatibility. Many j5 contributors are members of Student Robotics and SourceBots.

sbot, a j5 based API, was successfully deployed to over 100 users in August 2019. This is the first known case of a real-world deployment of a j5 based API.

If you are interested in adding support for your hardware or building your own API, please get in touch.

Contributions

This project is released under the MIT Licence. For more information, please see LICENSE.

j5 contributors refers to the people listed in the CONTRIBUTORS file.

The CONTRIBUTORS file can be generated by executing CONTRIBUTORS.gen. This generated file contains a list of people who have contributed to the j5 project.

More information about contributing, and how to contact contributors can be found in our docs

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

j5-1.0.0rc1.tar.gz (40.2 kB view details)

Uploaded Source

Built Distribution

j5-1.0.0rc1-py3-none-any.whl (64.5 kB view details)

Uploaded Python 3

File details

Details for the file j5-1.0.0rc1.tar.gz.

File metadata

  • Download URL: j5-1.0.0rc1.tar.gz
  • Upload date:
  • Size: 40.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.2 Linux/5.10.0-16-amd64

File hashes

Hashes for j5-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 7b935e6349a106922ec8841f52446afdffd3992f114d468f8376f026a514f716
MD5 5d709ebcaebcba631afee7a322c5e2bc
BLAKE2b-256 fcba11578cd6d3ab4b0415b8a9b82c51d59034baa75753bf185dd85c1ca56d60

See more details on using hashes here.

File details

Details for the file j5-1.0.0rc1-py3-none-any.whl.

File metadata

  • Download URL: j5-1.0.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 64.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.2 Linux/5.10.0-16-amd64

File hashes

Hashes for j5-1.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 8a97d53e357af12a1157b77f297fe43b3fd2233c37eaf538279c9cbc0b1183a2
MD5 5248fec2a137f20102cae7439737013f
BLAKE2b-256 904586f162f7549fac4e94398413977c0409e190ae93695c9f94ab5d096e171b

See more details on using hashes here.

Supported by

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