Robot Workbench/ja: Difference between revisions

From FreeCAD Documentation
(Created page with "* 30px ロボットを作成: シーンに新しいロボットを挿入します * 30px...")
(Updating to match new version of source page)
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Docnav
[[Image:KukaKR16FreeCAD.jpg|right|400px]]
|[[Reverse Engineering Workbench|Reverse Engineering Workbench]]
|[[Ship Workbench|Ship Workbench]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Ship.svg
}}

[[Image:Workbench_Robot.svg|240px|center]]
{{Caption|align=center|The FreeCAD Robot Workbench Icon}}
{{VeryImportantMessage|The FreeCAD Robot Workbench is unmaintained. Please mention on the FreeCAD forum if you have an interest in maintaining this workbench.}}

== Introduction ==


<div class="mw-translate-fuzzy">
ロボットワークベンチは[http://kuka.com/ Kuka]のような産業用[[6-Axis Robot/jp|6軸ロボット]]のシミュレートのためのツールです。
ロボットワークベンチは[http://kuka.com/ Kuka]のような産業用[[6-Axis Robot/jp|6軸ロボット]]のシミュレートのためのツールです。
以下の作業を行うことができます:
以下の作業を行うことができます:
Line 9: Line 21:
* ロボットの動作と到達可能範囲のシミュレート
* ロボットの動作と到達可能範囲のシミュレート
* ロボットプログラムファイルへの軌道のエクスポート
* ロボットプログラムファイルへの軌道のエクスポート
</div>


You can do the following tasks:
* Set up a simulation environment with a robot and work pieces.
* Create and fill up movement trajectories.
* Decompose features of a CAD part to a trajectory.
* Simulate the robot movement and reaching distance.
* Export the trajectory to a robot program file.

<div class="mw-translate-fuzzy">


以下で例を見ることができます:
以下で例を見ることができます:
[http://www.freecad-project.de/svn/ExampleData/Examples/RobotSimulation/ サンプルファイル] または [[Robot tutorial/jp|ロボットのチュートリアル]]
[http://www.freecad-project.de/svn/ExampleData/Examples/RobotSimulation/ サンプルファイル] または [[Robot tutorial/jp|ロボットのチュートリアル]]
</div>

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


== ツール ==
== ツール ==
Line 20: Line 45:
6軸ロボットを作成、管理するためのツール
6軸ロボットを作成、管理するためのツール


<div class="mw-translate-fuzzy">
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/jp|ロボットを作成]]: シーンに新しいロボットを挿入します
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/jp|ロボットを作成]]: シーンに新しいロボットを挿入します
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/jp|軌道をシミュレート]]: シミュレーションダイアログを開き、シミュレートを行います
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/jp|軌道をシミュレート]]: シミュレーションダイアログを開き、シミュレートを行います
Line 25: Line 51:
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/jp|定位置を設定]]: ロボットの定位置を設定します
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/jp|定位置を設定]]: ロボットの定位置を設定します
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/jp|定位置に戻す]]: ロボットを定位置に動かします
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/jp|定位置に戻す]]: ロボットを定位置に動かします
</div>


=== Trajectories ===
=== 軌道 ===
軌道を作成し、操作するためのツールです。パラメトリックなものと非パラメトリックなものの二種類があります。
Tools to create and manipulate trajectories. There are two kinds, the parametric and non parametric ones.


<div class="mw-translate-fuzzy">
==== non parametric trajectories ====
==== 非パラメトリック ====
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Inserts a new empty trajectory-object into the scene
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/jp|軌道を作成]]: シーンに新しいロボットを挿入します
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation/jp|デフォルトの方向を設定]]: デフォルトで作成される方位通過点を設定します
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: Set the default values for way-point creation
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues/jp|デフォルトの速度パラメーターを設定]]: 通過点作成時に使用されるデフォルト値を設定します
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Insert a waypoint]]: Insert a way-point from the current robot position into a trajectory
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/jp|通過点を挿入]]: 現在のロボット位置から軌道に通過点を挿入します
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre|Insert a waypoint]]: Insert a way-point from the current mouse position into a trajectory
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/jp|通過点を挿入]]: 現在のマウス位置から軌道に通過点を挿入します
</div>


<div class="mw-translate-fuzzy">
==== parametric trajectories ====
==== パラメトリック ====
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac|Create a trajectory out of edges]]: Insert a new object which decompose edges to a trajectory
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/jp|エッジから軌道を作成]]: エッジを軌道に分解した新しいオブジェクトを挿入します
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Lets you override one or more properties of a trajectory
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/jp|軌道をドレスアップ]]: 軌道の一つ以上のプロパティを上書きします
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Trajectory compound]]: Create a compound out of some single trajectories
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/jp|軌道を合成]]: 複数の単一軌道を合成したものを作成します
</div>


<div class="mw-translate-fuzzy">
== Scripting ==
== スクリプト処理 ==
This section is generated out of: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py
You can use this file directly if you want.


このセクションは以下のスクリプトから生成されています: http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Robot/RobotExample.py?view=markup
Example how to use the basic robot class Robot6Axis which represents a 6-axis
必要であればこのファイルを直接使用することもできます。
industrial robot. The Robot module is dependent on Part but not on other modules.
</div>
It works mostly with the basic types Placement, Vector and Matrix. So we need
only:
{{Code|code=
from Robot import *
from Part import *
from FreeCAD import *
}}
=== Basic robot stuff ===
create the robot. If you do not specify another kinematic it becomes a Puma 560
{{Code|code=
rob = Robot6Axis()
print rob
}}
accessing the axis and the Tcp. Axes go from 1-6 and are in degree:
{{Code|code=
Start = rob.Tcp
print Start
print rob.Axis1
}}
move the first axis of the robot:
{{Code|code=
rob.Axis1 = 5.0
}}
the Tcp has changed (forward kinematic)
{{Code|code=
print rob.Tcp
}}
move the robot back to start position (reverse kinematic):
{{Code|code=
rob.Tcp = Start
print rob.Axis1
}}
the same with axis 2:
{{Code|code=
rob.Axis2 = 5.0
print rob.Tcp
rob.Tcp = Start
print rob.Axis2
}}
Waypoints:
{{Code|code=
w = Waypoint(Placement(),name="Pt",type="LIN")
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool
}}
generate more. The trajectory always finds automatically a unique name for the waypoints
{{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"))
}}
create a trajectory
{{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"))
}}
see a list of all waypoints:
{{Code|code=
print t.Waypoints
del rob,Start,t,l,w
}}
=== Working with the document objects ===


See the [[Robot API example|Robot API example]] for a description of the functions used to model the robot displacements.
Working with the robot document objects:
first create a robot in the active document
{{Code|code=
if(App.activeDocument() == None):App.newDocument()
App.activeDocument().addObject("Robot::RobotObject","Robot")
}}
Define the visual representation and the kinematic definition (see [[Robot_6-Axis|Robot 6-Axis]] and [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]] for details about that)
{{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"
}}
start positon of the Axis (only that which differ from 0)
{{Code|code=
App.activeDocument().Robot.Axis2 = -90
App.activeDocument().Robot.Axis3 = 90
}}
retrieve the Tcp position
{{Code|code=
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
}}
move the robot
{{Code|code=
pos.move(App.Vector(-10,0,0))
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos
}}
create an empty Trajectory object in the active document
{{Code|code=
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
}}
get the Trajectory
{{Code|code=
t = App.activeDocument().Trajectory.Trajectory
}}
add the actual TCP position of the robot to the trajectory
{{Code|code=
StartTcp = App.activeDocument().Robot.Tcp
t.insertWaypoints(StartTcp)
App.activeDocument().Trajectory.Trajectory = t
print App.activeDocument().Trajectory.Trajectory
}}
insert some more Waypoints and the start point at the end again:
{{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
}}

=== Simulation ===
To be done.....
=== Exporting the trajectory ===
The trajectory is exported by Python. That means for every control cabinet type there is a post-processor
Python module. Here is in detail the Kuka post-processor described
{{Code|code=
from KukaExporter import ExportCompactSub

ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src')
}}
and that's kind of how it's done:
{{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))

}}
== Tutorials ==
* [[Robot 6-Axis|Robot 6-Axis]]
* [[Robot 6-Axis|Robot 6-Axis]]
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]]
*[[VRML Preparation for Robot Simulation|VRMLのロボットシミュレーション準備]]



<div class="mw-translate-fuzzy">
{{docnav|FEM Module|Standard Menu}}
{{docnav|FEM Module|Standard Menu}}
{{docnav/jp|Drawing Module/jp|Raytracing Module/jp}}
</div>


{{Robot Tools navi{{#translation:}}}}
[[Category:User Documentation]]
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Revision as of 18:11, 21 February 2020

The FreeCAD Robot Workbench Icon

The FreeCAD Robot Workbench is unmaintained. Please mention on the FreeCAD forum if you have an interest in maintaining this workbench.

Introduction

ロボットワークベンチはKukaのような産業用6軸ロボットのシミュレートのためのツールです。 以下の作業を行うことができます:

  • ロボット、加工物とシミュレーション環境のセットアップ
  • 軌道の作成と書き込み
  • CAD部品形状を軌道に分解
  • ロボットの動作と到達可能範囲のシミュレート
  • ロボットプログラムファイルへの軌道のエクスポート

You can do the following tasks:

  • Set up a simulation environment with a robot and work pieces.
  • Create and fill up movement trajectories.
  • Decompose features of a CAD part to a trajectory.
  • Simulate the robot movement and reaching distance.
  • Export the trajectory to a robot program file.

以下で例を見ることができます: サンプルファイル または ロボットのチュートリアル

ツール

ロボット設定を作成するのに使う主要なコマンドです。

ロボット

6軸ロボットを作成、管理するためのツール

軌道

軌道を作成し、操作するためのツールです。パラメトリックなものと非パラメトリックなものの二種類があります。

非パラメトリック

パラメトリック

スクリプト処理

このセクションは以下のスクリプトから生成されています: http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Robot/RobotExample.py?view=markup 必要であればこのファイルを直接使用することもできます。

See the Robot API example for a description of the functions used to model the robot displacements.

チュートリアル

FEM Module
Standard Menu

Template:Docnav/jp