Robot Workbench/ru: Difference between revisions
No edit summary |
No edit summary |
||
(44 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
[[Image:KukaKR16FreeCAD.jpg|right|400px]] |
|||
{{Docnav/ru |
|||
|[[Reverse_Engineering_Workbench/ru|Верстак Reverse Engineering]] |
|||
|[[Sketcher_Workbench/ru|Верстак Sketcher]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Sketcher.svg |
|||
}} |
|||
{{VeryImportantMessage|Верстак Robot в FreeCAD остался без поддержки. Если у Вас есть знания в этом вопросе и интерес к его поддержке, пожалуйста, заявите своё намерение в секции разработчиков на [https://forum.freecadweb.org/index.php форуме FreeCAD].}} |
|||
{{VeryImportantMessage|Причина, по которой этот верстак все ещё находится в основном исходном коде, заключается в том, что этот верстак запрограммирован на C++. Если бы этот верстак можно было запрограммировать на Python, то его можно было бы сделать [[external_workbenches/ru|внешним верстаком]] и переместить в отдельный репозиторий. }} |
|||
<span id="Introduction"></span> |
|||
== Введение == |
|||
[[Image:Workbench_Robot.svg|thumb|128px|Логотип верстака Robot]] |
|||
[[Image:Workbench_Robot.svg|24px]] [[Robot_Workbench/ru|Верстак Robot]] это инструмент для симуляции стандартного [[Robot_6-Axis/ru|6-ти осевого промышленного робота]], такого как [http://kuka.com/ Kuka]. |
|||
Инструментарий автоматики имитирует [[Robot_6-Axis/ru|6-ти осевого робота]] промышленного класса, такого как [http://kuka.com/ Kuka]. |
|||
Вы можете выполнять следующие работы: |
Вы можете выполнять следующие работы: |
||
* создать среду моделирования с роботом и заготовкой |
* создать среду моделирования с роботом и заготовкой |
||
* создать и загрузить траекторию |
* создать и загрузить траекторию |
||
* разложить часть |
* разложить часть детали САПР в траекторию |
||
* имитировать движение робота и его пространственные ограничения |
* имитировать движение робота и его пространственные ограничения |
||
* экспортировать траекторию в программный файл робота |
* экспортировать траекторию в программный файл робота |
||
Начните с [[Robot_tutorial/ru|Учебника по роботам]], и смотрите программный интерфейс в файле примера |
|||
Примеры можно найти здесь: |
|||
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py RobotExample.py]. |
||
{{TOCright}} |
|||
[[Image:Robot_Workbench_example.jpg|500px]] |
|||
== Инструменты == |
== Инструменты == |
||
Line 18: | Line 38: | ||
Инструменты создания и управления 6-осевыми роботами. |
Инструменты создания и управления 6-осевыми роботами. |
||
* [[Image:Robot_CreateRobot. |
* [[Image:Robot_CreateRobot.svg|30px]] [[Robot_CreateRobot/ru|Добавить робота]]: Добавляет нового робота в текущую сцену |
||
* [[Image:Robot_Simulate. |
* [[Image:Robot_Simulate.svg|30px]] [[Robot_Simulate/ru|Воспроизвести движение инструмента по траектории]]: Открывает диалог позволяющий выполнить симуляцию движения рабочего инструмента робота по заданной траектории |
||
* [[Image:Robot_Export. |
* [[Image:Robot_Export.svg|30px]] [[Robot_Export/ru|Экспортировать траекторию]]: Экспортировать траекторию в файл |
||
* [[Image:Robot_SetHomePos. |
* [[Image:Robot_SetHomePos.svg|30px]] [[Robot_SetHomePos/ru|Сохранить текущее положение как исходное]]: Сохранить текущее положение робота как исходное |
||
* [[Image:Robot_RestoreHomePos. |
* [[Image:Robot_RestoreHomePos.svg|30px]] [[Robot_RestoreHomePos/ru|Вернуть в исходное положение]]: Возвращает робота в исходное положение |
||
=== Траектории === |
=== Траектории === |
||
Инструменты для создания и управления траекториями. Траектории могут быть параметрические и непараметрические. |
Инструменты для создания и управления траекториями. Траектории могут быть параметрические и непараметрические. |
||
==== |
==== Не параметрические траектории ==== |
||
* [[Image:Robot_CreateTrajectory. |
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory/ru|Создать траекторию]]: Поместить на сцену новый объект-траекторию |
||
* [[Image:Robot_SetDefaultOrientation. |
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation/ru|Установить ориентацию по умолчанию]]: Создать промежуточные точки-ориентации по умолчанию |
||
* [[Image:Robot_SetDefaultValues. |
* [[Image:Robot_SetDefaultValues.svg|30px]] [[Robot_SetDefaultValues/ru|Установить значения по умолчанию]]: Установить настройки по умолчанию для создания промежуточных точек |
||
* [[Image:Robot_InsertWaypoint. |
* [[Image:Robot_InsertWaypoint.svg|30px]] [[Robot_InsertWaypoint/ru|Вставить в траекторию]]: Вставить в траекторию текущее положение робота |
||
* [[Image:Robot_InsertWaypointPre. |
* [[Image:Robot_InsertWaypointPre.svg|30px]] [[Robot_InsertWaypointPre/ru|Вставить в траекторию предвыбранную]]: Вставить в траекторию точку текущего положения курсора мыши |
||
==== Параметрические траектории ==== |
|||
==== параметрические ==== |
|||
* [[Image:Robot_Edge2Trac. |
* [[Image:Robot_Edge2Trac.svg|30px]] [[Robot_Edge2Trac/ru|Край траектории]]: Поместить новый объект, который раскладывается на ребра для траектории |
||
* [[Image:Robot_TrajectoryDressUp. |
* [[Image:Robot_TrajectoryDressUp.svg|30px]] [[Robot_TrajectoryDressUp/ru|Настройка траектории]]: Изменить одно и более свойств траектории |
||
* [[Image:Robot_TrajectoryCompound. |
* [[Image:Robot_TrajectoryCompound.svg|30px]] [[Robot_TrajectoryCompound/ru|Объединение траекторий]]: Создать объединение из нескольких одиночных траекторий |
||
<span id="Scripting"></span> |
|||
== Написание сценариев == |
|||
== Составление скриптов == |
|||
Этот раздел сформирован из: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
|||
Вы можете, если хотите, использовать этот файл напрямую |
|||
Смотрите на странице [[Robot_API_example/ru|Robot API example]] описания функций, используемых для моделирования расположения робота. |
|||
Пример того как использовать основной класс Robot6Axis который представлен 6-осевым промышленным роботом. Модуль Автоматики зависит от модуля Деталей(Part) но не от остальных модулей. Он работает с основными типами Положений, Векторов и Матрицами. Так что вам нудно только ввести: |
|||
{{Code|code= |
|||
from Robot import * |
|||
from Part import * |
|||
from FreeCAD import * |
|||
}} |
|||
=== Основные взаимодействия с роботом === |
|||
создаем робота. Если вы не укажете другого автоматически установиться Puma 560 |
|||
{{Code|code= |
|||
rob = Robot6Axis() |
|||
print rob |
|||
}} |
|||
получение доступа к осям и Tcp (текущая точка траектории?). Оси бывают от 1 до 6 и значения в них указаны в градусах: |
|||
{{Code|code= |
|||
Start = rob.Tcp |
|||
print Start |
|||
print rob.Axis1 |
|||
}} |
|||
повернуть первую ось робота: |
|||
{{Code|code= |
|||
rob.Axis1 = 5.0 |
|||
}} |
|||
Текущее положение(Tcp) изменилось следующая кинематика(forward kinematic) |
|||
{{Code|code= |
|||
print rob.Tcp |
|||
}} |
|||
вернуть робота на стартовую позицию обратная кинематика(reverse kinematic): |
|||
{{Code|code= |
|||
rob.Tcp = Start |
|||
print rob.Axis1 |
|||
}} |
|||
сделаем тоже самое со второй остю: |
|||
{{Code|code= |
|||
rob.Axis2 = 5.0 |
|||
print rob.Tcp |
|||
rob.Tcp = Start |
|||
print rob.Axis2 |
|||
}} |
|||
Точки траектории: |
|||
{{Code|code= |
|||
w = Waypoint(Placement(),name="Pt",type="LIN") |
|||
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool |
|||
}} |
|||
создадим ещё. траектория всегда автоматически находит уникальное имя для каждой своей точки |
|||
{{Code|code= |
|||
l = [w] |
|||
for i in range(5): |
|||
l.append(Waypoint(Placement(Vector(0,0,i*100),Vector(1,0,0),0),"LIN","Pt")) |
|||
}} |
|||
создадим траекторию |
|||
{{Code|code= |
|||
t = Trajectory(l) |
|||
print t |
|||
for i in range(7): |
|||
t.insertWaypoints(Waypoint(Placement(Vector(0,0,i*100+500),Vector(1,0,0),0),"LIN","Pt")) |
|||
}} |
|||
посмотрим список всех точек траектории: |
|||
{{Code|code= |
|||
print t.Waypoints |
|||
del rob,Start,t,l,w |
|||
}} |
|||
=== Работа с объектами документа === |
|||
== Учебные материалы == |
|||
Работа с объектами в документах роботов: |
|||
сначала создадим робота в активном документе |
|||
{{Code|code= |
|||
if(App.activeDocument() == None):App.newDocument() |
|||
App.activeDocument().addObject("Robot::RobotObject","Robot") |
|||
}} |
|||
Зададим визуальное представление и кинематическую точность (подробнее см. [[Robot_6-Axis/ru|6-ти осевые роботы]] и [[VRML Preparation for Robot Simulation/ru|Подготовка VRML для имитации робота]]) |
|||
{{Code|code= |
|||
App.activeDocument().Robot.RobotVrmlFile = App.getResourceDir()+"Mod/Robot/Lib/Kuka/kr500_1.wrl" |
|||
App.activeDocument().Robot.RobotKinematicFile = App.getResourceDir()+"Mod/Robot/Lib/Kuka/kr500_1.csv" |
|||
}} |
|||
начальная позиция осей (только если отличается от 0) |
|||
{{Code|code= |
|||
App.activeDocument().Robot.Axis2 = -90 |
|||
App.activeDocument().Robot.Axis3 = 90 |
|||
}} |
|||
получаем позицию Tcp |
|||
{{Code|code= |
|||
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp |
|||
}} |
|||
перемещаем робота |
|||
{{Code|code= |
|||
pos.move(App.Vector(-10,0,0)) |
|||
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos |
|||
}} |
|||
создаем "пустую" Траекторию в активном документе |
|||
{{Code|code= |
|||
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory") |
|||
}} |
|||
просматриваем Траекторию |
|||
{{Code|code= |
|||
t = App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
добавляем фактическое положение робота (TCP) к траектории |
|||
{{Code|code= |
|||
StartTcp = App.activeDocument().Robot.Tcp |
|||
t.insertWaypoints(StartTcp) |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
добавляем больше точек к траектории и стартовую точку в конце траектории ещё раз: |
|||
{{Code|code= |
|||
for i in range(7): |
|||
t.insertWaypoints(Waypoint(Placement(Vector(0,1000,i*100+500),Vector(1,0,0),i),"LIN","Pt")) |
|||
t.insertWaypoints(StartTcp) # end point of the trajectory |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
=== Имитация === |
|||
Будет сделано..... |
|||
=== Экспорт траектории === |
|||
Траектория экспортируется с помощью Python. Это означает что для каждого типа управляющей стойки (control cabinet) существует пост-процессорный Python модуль. Здесь подробно описан постпроцессор для Kuka |
|||
{{Code|code= |
|||
from KukaExporter import ExportCompactSub |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
}} |
|||
это делается примерно так: |
|||
{{Code|code= |
|||
for w in App.activeDocument().Trajectory.Trajectory.Waypoints: |
|||
(A,B,C) = (w.Pos.Rotation.toEuler()) |
|||
print ("LIN {X %.3f,Y %.3f,Z %.3f,A %.3f,B %.3f,C %.3f} ; %s"%(w.Pos.Base.x,w.Pos.Base.y,w.Pos.Base.z,A,B,C,w.Name)) |
|||
}} |
|||
== Учебники == |
|||
* [[Robot_6-Axis/ru|6-ти осевой робот]] |
* [[Robot_6-Axis/ru|6-ти осевой робот]] |
||
* [[VRML Preparation for Robot Simulation/ru|Подготовка VRML для имитации робота]] |
* [[VRML Preparation for Robot Simulation/ru|Подготовка VRML для имитации робота]] |
||
{{Docnav/ru |
|||
{{docnav/ru|FEM Module/ru|Standard Menu/ru}} |
|||
|[[Reverse_Engineering_Workbench/ru|Верстак Reverse Engineering]] |
|||
|[[Sketcher_Workbench/ru|Верстак Sketcher]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Sketcher.svg |
|||
}} |
|||
{{Robot Tools navi{{#translation:}}}} |
|||
[[Category:User Documentation/ru]] |
|||
{{Userdocnavi{{#translation:}}}} |
|||
[[Category:Workbenches{{#translation:}}]] |
|||
<languages/> |
Latest revision as of 23:02, 25 February 2023
Верстак Robot в FreeCAD остался без поддержки. Если у Вас есть знания в этом вопросе и интерес к его поддержке, пожалуйста, заявите своё намерение в секции разработчиков на форуме FreeCAD.
Причина, по которой этот верстак все ещё находится в основном исходном коде, заключается в том, что этот верстак запрограммирован на C++. Если бы этот верстак можно было запрограммировать на Python, то его можно было бы сделать внешним верстаком и переместить в отдельный репозиторий.
Введение
Верстак Robot это инструмент для симуляции стандартного 6-ти осевого промышленного робота, такого как Kuka.
Вы можете выполнять следующие работы:
- создать среду моделирования с роботом и заготовкой
- создать и загрузить траекторию
- разложить часть детали САПР в траекторию
- имитировать движение робота и его пространственные ограничения
- экспортировать траекторию в программный файл робота
Начните с Учебника по роботам, и смотрите программный интерфейс в файле примера RobotExample.py.
Инструменты
Основные команды которые можно использовать для настройки робота.
Роботы
Инструменты создания и управления 6-осевыми роботами.
- Добавить робота: Добавляет нового робота в текущую сцену
- Воспроизвести движение инструмента по траектории: Открывает диалог позволяющий выполнить симуляцию движения рабочего инструмента робота по заданной траектории
- Экспортировать траекторию: Экспортировать траекторию в файл
- Сохранить текущее положение как исходное: Сохранить текущее положение робота как исходное
- Вернуть в исходное положение: Возвращает робота в исходное положение
Траектории
Инструменты для создания и управления траекториями. Траектории могут быть параметрические и непараметрические.
Не параметрические траектории
- Создать траекторию: Поместить на сцену новый объект-траекторию
- Установить ориентацию по умолчанию: Создать промежуточные точки-ориентации по умолчанию
- Установить значения по умолчанию: Установить настройки по умолчанию для создания промежуточных точек
- Вставить в траекторию: Вставить в траекторию текущее положение робота
- Вставить в траекторию предвыбранную: Вставить в траекторию точку текущего положения курсора мыши
Параметрические траектории
- Край траектории: Поместить новый объект, который раскладывается на ребра для траектории
- Настройка траектории: Изменить одно и более свойств траектории
- Объединение траекторий: Создать объединение из нескольких одиночных траекторий
Составление скриптов
Смотрите на странице Robot API example описания функций, используемых для моделирования расположения робота.
Учебные материалы
Robot
- Trajectories, non parametric: Create a trajectory, Set default orientation, Set default values, Insert waypoint, Insert waypoint (mouse)
- Trajectories, parametric: Create a trajectory from edges, Dress-up trajectory, Trajectory compound
Документация пользователя
- Начинающим
- Установка: Загрузка, Windows, Linux, Mac, Дополнительных компонентов, Docker, AppImage, Ubuntu Snap
- Базовая: О FreeCAD, Интерфейс, Навигация мыши, Методы выделения, Имя объекта, Настройки, Верстаки, Структура документа, Свойства, Помоги FreeCAD, Пожертвования
- Помощь: Учебники, Видео учебники
- Верстаки: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework