Инверсное программирование кинематики C++
Я хочу написать свою собственную библиотеку кинематики для моего проекта на C++. Я понимаю, что есть несколько библиотек, таких как RL (Robotics Library) и ROS с решателями обратной кинематики. Но, к моему ужасу, эти библиотеки НЕ поддерживают платформу MacOS. Я уже написал часть "Передовой кинематики", которая была довольно простой. Но в части обратной кинематики я довольно скептически отношусь, поскольку решение проблемы IK включает в себя решение систем нелинейного уравнения одновременности. Я обнаружил, что модуль Eigen/Unsupported 3.3 имеет API для нелинейных уравнений. Но прежде чем я начну идти по этому неопределенному пути, я хочу узнать от вас, ребята, правдоподобность и практичность написания моей библиотеки IK. Мой дизайн манипулятора довольно прост с 4 DoF, и библиотека не будет использоваться для других конструкций манипуляторов. Так что я пытаюсь достичь созданной Тейлором библиотеки IK для моего конкретного дизайна манипулятора, а не универсальной библиотеки.
Так,
- Я просто пытаюсь изобретать велосипед здесь, не изучая уже имеющиеся библиотеки? Если да, предложите примеры библиотек IK для платформы MacOS.
- Кто-нибудь написал свою собственную библиотеку IK? Это практическое решение? Или это довольно сложная проблема, которую не стоит решать для конкретной конструкции манипулятора?
- Или я должен просто перенести весь мой код проекта (OpenCV) в среду Linux и разработать код для IK в Linux, используя существующие библиотеки?
Спасибо,
дешевое вино
1 ответ
В прошлом я построил несколько роботов и должен был решать кинематические уравнения. Как вы сказали, "дизайн манипулятора довольно прост с 4 степенями свободы", на мой взгляд, вы можете написать довольно небольшую функцию / модуль, и вам не потребуется сложность библиотеки общего назначения. Я использовал Maple, чтобы помочь в создании обратных уравнений. Возможно, вы захотите найти альтернативу. С другой стороны, библиотеки, о которых вы упоминаете ROS и RL, могут не поддерживать ваш Mac на самом высоком уровне, но на низком уровне это просто C++, нет причин, по которым вы не можете использовать библиотеки на своем Mac и использовать только функции низкого уровня.