Я разработал 6-осевой робот. Основное требование к роботу заключается в том, что все оси должны быть высоко синхронизированы, чтобы создавать точные (субмиллиметровые, субградусные) 6DOF (x, y, z, рыскание, тангаж, крен) траектории в пространстве. Я реализовал этого робота, используя:
Аппаратное обеспечение: контроллер NI PCI-7358, усилители NI MID-7604, степперы
Программное обеспечение: NI Labview
Однако я хотел бы перейти от продукции NI к чему-то более компактному, чтобы не таскать компьютерную тележку. Один пример, который я нашел на github, — это робот, создатель которого использовал следующее:
Аппаратное обеспечение: Arduino, шаговые приводы A4988, степперы
Программное обеспечение: питон
Однако с такой настройкой я беспокоюсь, что синхронизированное многоосевое управление не будет поддерживаться из-за задержки обработки Arduino. Может ли кто-нибудь порекомендовать, подходит ли решение Arduino, или представить альтернативные решения (пожалуйста, укажите ваше конкретное оборудование и программное обеспечение)?
Итак, мой вопрос: может ли кто-нибудь порекомендовать хорошее оборудование/методы для этого?
Да, возьмите все свои блоки в labview и найдите или напишите фрагменты кода, которые воспроизводят функции блоков. Вы даже можете написать код C в labview и создать собственные блоки , чтобы вы могли тестировать каждый блок по одному и заменять их своими собственными.
Или есть генератор кода C для labview (который я никогда не использовал и, вероятно, стоит больше денег и, вероятно, не очень хорошо конвертирует).
Я бы использовал C, потому что он не интерпретируется и, вероятно, будет лучше работать в реальном времени. Если вы чувствуете необходимость использовать python, я бы сначала написал C, а затем преобразовал его.
Вам понадобится ОС с возможностью работы в реальном времени. Сайт ЧПУ с открытым исходным кодом — LinuxCNC для создания станка с ЧПУ. Разветвленным проектом является Machinekit, который предназначен для создания собственной машины, не связанной со стандартным интерпретатором G-кода.
Если у вас достаточно ресурсов, то лучше всего подойдут диски и ввод-вывод на основе протокола связи Ethercat. Он обеспечивает синхронность, так что все устройства одновременно делают снимок фактических значений, а также одновременно выводятся заданные значения. Кроме того, джиттер прерывания ОС не имеет значения до тех пор, пока новые значения не будут вычисляться в каждом цикле связи, поэтому ОС Linux с вытеснением делает свое дело.
Крис Стрэттон
шпиц