Repository navigation
Architecture
Nishendra Singh edited this page Sep 16, 2026
·
4 revisions
For developers. Paths are relative to the Python package freecad/robotics/.
- A robot is a standard Assembly-workbench assembly in a
RobotFeaturePython wrapper ("Robot_FPO"). TheRobotclass is inApp/rbt_robot.py. The ViewProvider is inGui/vp_rbt_robot.py. - The model is single-document: the parts, the
Robot_Assembly, theRobotobject, and the joints all live in the active document. The wizard merges part files into it withmergeProject. - The Define Robot task panel (
Gui/taskpanel_rbt_creator.py) contains no FreeCAD mutation logic. It sends all document changes to the UI-freeRobotCreatorcore:App/rbt_creator.pyplusrbt_creator_asm.py,rbt_creator_jnt.py,rbt_creator_geom.py. - The base/ground and placement-sync logic is in
App/rbt_placement.py. Each robot roots at an editableBaseFramecoordinate system. See Joint Model. - The toolbar is a global custom toolbar.
init_gui.pymakes it from parameters. There is no separate workbench class. The commands live inGui/rbt_commands.py.
| Path | Content |
|---|---|
init_gui.py |
Registers the commands, makes the global toolbar |
rbt_locator.py |
Resource locator (package root) |
App/rbt_api.py |
Public scripting API. See [[Scripting API |
App/rbt_robot.py |
Robot FPO class, is_robot, all_robots
|
App/rbt_creator*.py |
UI-free robot construction core |
App/rbt_placement.py |
BaseFrame, grounding, placement sync, base_link, chain_root
|
App/rbt_kine*.py, backends/
|
Kinematics. See Kinematics |
App/rbt_tool.py |
Tool FPO with TCP |
App/rbt_traj.py, App/rbt_traj_types.py
|
Trajectory FPO, waypoint types |
App/rbt_global_constants.py |
Constants (DEFAULT_KIN_LIB, PIP_HINTS, names) |
App/rbt_helpers_log.py |
Log helpers |
App/rbt_helpers_math.py, App/rbt_helpers_frames.py
|
Math and frame helpers |
Gui/rbt_commands.py |
Toolbar command classes (RBT_*) |
Gui/taskpanel_rbt_creator.py |
Define Robot wizard |
Gui/taskpanel_rbt_animate.py |
Joint-jog panel (AnimationController = logic, AnimationTaskPanel = Qt UI) |
Gui/taskpanel_rbt_multicontrol.py |
Multi-robot panel (uses the same jog widget) |
Gui/taskpanel_rbt_tool.py |
Tool and TCP panel |
Gui/g_rbt_traj_*.py |
Trajectory panel, waypoint table, players, ViewProvider |
Gui/rbt_helpers_ui.py |
UI helpers |
Gui/rbt_fc_observer.py |
Document and selection observers |
resources/ui, resources/icons
|
Qt .ui forms and SVG icons |
Each panel opens a document transaction at the start. OK commits the transaction. Cancel discards it. A canceled wizard makes no change to the document.