Robot Workbench/ru: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
(42 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
[[Image:KukaKR16FreeCAD.jpg|right|400px]]


{{Docnav/ru
Инструментарий автоматики имитирует [[Robot_6-Axis/ru|6-ти осевого робота]] промышленного класса, такого как [http://kuka.com/ Kuka].
|[[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].

Вы можете выполнять следующие работы:
Вы можете выполнять следующие работы:
* создать среду моделирования с роботом и заготовкой
* создать среду моделирования с роботом и заготовкой
* создать и загрузить траекторию
* создать и загрузить траекторию
* разложить часть CAD детали в траекторию
* разложить часть детали САПР в траекторию
* имитировать движение робота и его пространственные ограничения
* имитировать движение робота и его пространственные ограничения
* экспортировать траекторию в программный файл робота
* экспортировать траекторию в программный файл робота


Начните с [[Robot_tutorial/ru|Учебника по роботам]], и смотрите программный интерфейс в файле примера
Примеры можно найти здесь:
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Файлы с примерами] или см. [[Robot tutorial/ru|Руководство по инструментарию Автоматики]].
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py RobotExample.py].

{{TOCright}}
[[Image:Robot_Workbench_example.jpg|500px]]


== Инструменты ==
== Инструменты ==
Line 19: Line 38:
Инструменты создания и управления 6-осевыми роботами.
Инструменты создания и управления 6-осевыми роботами.


* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/ru|Создать робота]]: Поместить нового робота на сцену
* [[Image:Robot_CreateRobot.svg|30px]] [[Robot_CreateRobot/ru|Добавить робота]]: Добавляет нового робота в текущую сцену
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/ru|Имитировать траекторию]]: Открыть диалог имитации позволяющий выполнить имитацию
* [[Image:Robot_Simulate.svg|30px]] [[Robot_Simulate/ru|Воспроизвести движение инструмента по траектории]]: Открывает диалог позволяющий выполнить симуляцию движения рабочего инструмента робота по заданной траектории
* [[Image:Robot_Export.png|30px]] [[Robot_Export/ru|Экспортировать траекторию]]: Экспортировать в программный файл робота
* [[Image:Robot_Export.svg|30px]] [[Robot_Export/ru|Экспортировать траекторию]]: Экспортировать траекторию в файл
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/ru|Установить стартовую позицию]]: Установить стартовое положение робота
* [[Image:Robot_SetHomePos.svg|30px]] [[Robot_SetHomePos/ru|Сохранить текущее положение как исходное]]: Сохранить текущее положение робота как исходное
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/ru|Восстановить на исходную]]: Переместить робота в стартовое положение
* [[Image:Robot_RestoreHomePos.svg|30px]] [[Robot_RestoreHomePos/ru|Вернуть в исходное положение]]: Возвращает робота в исходное положение


=== Траектории ===
=== Траектории ===
Инструменты для создания и управления траекториями. Траектории могут быть параметрические и непараметрические.
Инструменты для создания и управления траекториями. Траектории могут быть параметрические и непараметрические.


==== не параметрические ====
==== Не параметрические траектории ====
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/ru|Создать траекторию]]: Поместить на сцену новый объект-траекторию
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory/ru|Создать траекторию]]: Поместить на сцену новый объект-траекторию
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation/ru|Установить ориентацию по умолчанию]]: Создать промежуточные точки-ориентации по умолчанию
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation/ru|Установить ориентацию по умолчанию]]: Создать промежуточные точки-ориентации по умолчанию
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues/ru|Установить значения по умолчанию]]: Установить настройки по умолчанию для создания промежуточных точек
* [[Image:Robot_SetDefaultValues.svg|30px]] [[Robot_SetDefaultValues/ru|Установить значения по умолчанию]]: Установить настройки по умолчанию для создания промежуточных точек
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/ru|Вставить в траекторию]]: Вставить в траекторию текущее положение робота
* [[Image:Robot_InsertWaypoint.svg|30px]] [[Robot_InsertWaypoint/ru|Вставить в траекторию]]: Вставить в траекторию текущее положение робота
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/ru|Вставить в траекторию]]: Вставить в траекторию точку текущего положения курсора мыши
* [[Image:Robot_InsertWaypointPre.svg|30px]] [[Robot_InsertWaypointPre/ru|Вставить в траекторию предвыбранную]]: Вставить в траекторию точку текущего положения курсора мыши


==== Параметрические траектории ====
==== параметрические ====
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/ru|Край траектории]]: Поместить новый объект, который раскладывается на ребра для траектории
* [[Image:Robot_Edge2Trac.svg|30px]] [[Robot_Edge2Trac/ru|Край траектории]]: Поместить новый объект, который раскладывается на ребра для траектории
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/ru|Настройка траектории]]: Изменить одно и более свойств траектории
* [[Image:Robot_TrajectoryDressUp.svg|30px]] [[Robot_TrajectoryDressUp/ru|Настройка траектории]]: Изменить одно и более свойств траектории
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/ru|Объединение траекторий]]: Создать объединение из нескольких одиночных траекторий
* [[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:}}]]

Latest revision as of 23:02, 25 February 2023

Верстак Robot в FreeCAD остался без поддержки. Если у Вас есть знания в этом вопросе и интерес к его поддержке, пожалуйста, заявите своё намерение в секции разработчиков на форуме FreeCAD.
Причина, по которой этот верстак все ещё находится в основном исходном коде, заключается в том, что этот верстак запрограммирован на C++. Если бы этот верстак можно было запрограммировать на Python, то его можно было бы сделать внешним верстаком и переместить в отдельный репозиторий.

Введение

Логотип верстака Robot

Верстак Robot это инструмент для симуляции стандартного 6-ти осевого промышленного робота, такого как Kuka.

Вы можете выполнять следующие работы:

  • создать среду моделирования с роботом и заготовкой
  • создать и загрузить траекторию
  • разложить часть детали САПР в траекторию
  • имитировать движение робота и его пространственные ограничения
  • экспортировать траекторию в программный файл робота

Начните с Учебника по роботам, и смотрите программный интерфейс в файле примера RobotExample.py.

Инструменты

Основные команды которые можно использовать для настройки робота.

Роботы

Инструменты создания и управления 6-осевыми роботами.

Траектории

Инструменты для создания и управления траекториями. Траектории могут быть параметрические и непараметрические.

Не параметрические траектории

Параметрические траектории

Составление скриптов

Смотрите на странице Robot API example описания функций, используемых для моделирования расположения робота.

Учебные материалы