Тестирование на pytest
pytest — ближе по духу к языку Python нежели unittest, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов.
Но при разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python.
Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними.
#python#pytest#assert
🌟PyRoki: Библиотека кинематики роботов на Python.
PyRoki (Python Robot Kinematics) - это модульный, расширяемый и кроссплатформенный инструментарий, заточенный под задачи кинематической оптимизации и реализованный полностью на Python.
Фишка библиотеки - в предоставлении дифференцируемой модели прямой кинематики робота, которая строится на основе URDF-файлов, тем самым избавляя инженера от необходимости вручную прописывать кинематические цепи: система не только парсит описание робота, но и автоматически генерирует примитивы коллизий.
С точки зрения математического аппарата, PyRoki интегрируется с решателем Levenberg-Marquardt (через jaxls). Это дает возможность проводить оптимизацию на многообразиях, а также обрабатывать жесткие ограничения с помощью решателя на основе модифицированной функции Лагранжа.
Библиотека предлагает готовые реализации cost-функций: поза рабочего органа, коллизии с самим собой или объектами мира и метрики манипулируемости.
Если стандартного набора недостаточно, архитектура позволяет задавать свои функции затрат, используя как автоматическое дифференцирование, так и аналитические якобианы.
Благодаря базе JAX, библиотека кроссплатформенна: ее работа возможна на CPU, GPU и TPU.
🟡При внедрении PyRoki в пайплайн важно учитывать специфику JIT-компиляции в JAX.
Компиляция триггерится при первом запуске, а также каждый раз, когда меняются формы входных данных: например, количество целей или препятствий.
Чтобы избежать расходов на перекомпиляцию, рекомендуется использовать предварительный паддинг массивов, что позволяет векторизовать вычисления для входов с различными шейпами.
Также стоит учитывать, что в библиотеке отсутствуют планировщики, основанные на сэмплировании (графы, деревья), поэтому задачи глобального планирования пути придется решать внешними средствами.
🟡Типы поддерживаемых соединений и геометрия ограничены.
На данный момент PyRoki работает исключительно с кинематическими деревьями; замкнутые механизмы или параллельные манипуляторы не поддерживаются.
Список доступных типов джоинтов ограничен 4 позициями: вращательные, непрерывные, призматические и фиксированные. Любые другие типы соединений, встреченные в URDF, будут автоматически интерпретироваться системой как фиксированные.
Для геометрии коллизий набор примитивов также фиксирован: поддерживаются сферы, капсулы, полупространства и карты высот.
Если ваша модель использует сложные меши, коллизии для них будут аппроксимироваться капсулами.
В вопросах производительности, особенно в сценариях с интенсивными проверками коллизий, PyRoki, вероятно, уступает CuRobo, хотя, как говорится в документации - сравнительные тесты скорости и точности авторами пока не проводились.
📌Лицензирование: MIT License.
🟡Страница проекта
🟡Arxiv
🟡Документация
🖥GitHub
@ai_machinelearning_big_data
#AI#ML#Robotics#Pyroki#Python
#hacking#python
🐍
Python Hacking | Real Ethical Hacking with Python | PYCEH23+
Description:
This immersive and comprehensive course is designed to equip you with the knowledge and hands-on skills necessary to excel in the exciting world of ethical hacking.
With a focus on practical applications, this course covers everything you need to know about Python programming, making it accessible to both beginners and experienced programmers. You’ll embark on an exciting journey where you’ll learn how to harness the power of Python to manipulate MAC addresses, develop network scanners, execute Man-in-the-Middle attacks, intercept network traffic, create your own pentesting RAT (Remote Access Trojan) malware, and much more.
🌐En
🔗Link
-----
Main channel:@repo_science
Coupons:@freecoupons_reposcience
-----