Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
j5 Framework - Creating consistent APIs for robotics
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!
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()
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.
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
FAQs
j5 Robotics Framework
We found that j5 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.