Robot Workbench/ja: Difference between revisions

From FreeCAD Documentation
(Created page with "=== 基本的なロボット処理 === ロボットを作成。異なるキネマティックを指定しない限りはPuma560になります。 rob = Robot6Axis() print rob")
(Updating to match new version of source page)
(12 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>


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


<div class="mw-translate-fuzzy">
==== 非パラメトリック ====
==== 非パラメトリック ====
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/jp|軌道を作成]]: シーンに新しいロボットを挿入します
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/jp|軌道を作成]]: シーンに新しいロボットを挿入します
Line 35: Line 63:
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/jp|通過点を挿入]]: 現在のロボット位置から軌道に通過点を挿入します
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/jp|通過点を挿入]]: 現在のロボット位置から軌道に通過点を挿入します
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/jp|通過点を挿入]]: 現在のマウス位置から軌道に通過点を挿入します
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/jp|通過点を挿入]]: 現在のマウス位置から軌道に通過点を挿入します
</div>


<div class="mw-translate-fuzzy">
==== パラメトリック ====
==== パラメトリック ====
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/jp|エッジから軌道を作成]]: エッジを軌道に分解した新しいオブジェクトを挿入します
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/jp|エッジから軌道を作成]]: エッジを軌道に分解した新しいオブジェクトを挿入します
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/jp|軌道をドレスアップ]]: 軌道の一つ以上のプロパティを上書きします
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/jp|軌道をドレスアップ]]: 軌道の一つ以上のプロパティを上書きします
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/jp|軌道を合成]]: 複数の単一軌道を合成したものを作成します
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/jp|軌道を合成]]: 複数の単一軌道を合成したものを作成します
</div>


<div class="mw-translate-fuzzy">
== スクリプト処理 ==
== スクリプト処理 ==


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


See the [[Robot API example|Robot API example]] for a description of the functions used to model the robot displacements.
6軸産業用ロボットを表す基本ロボットクラスRobot6Axisの使用例です。
ロボットモジュールはパートモジュールにのみ依存します。
その動作にはほとんどの場合は基本的な型であるPlacement、Vector、Matrixで事足ります。
従って必要なのは以下のモジュールだけです:
from Robot import *
from Part import *
from FreeCAD import *
{{Code|code=
from Robot import *
from Part import *
from FreeCAD import *
}}
=== 基本的なロボット処理 ===
ロボットを作成。異なるキネマティックを指定しない限りはPuma560になります。
rob = Robot6Axis()
print rob
{{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 ===


==チュートリアル==
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