# tonyrobotics/gauss architecture

> Architecture diagram of the GitHub repository tonyrobotics/gauss, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tonyrobotics/gauss
- Repository: https://github.com/tonyrobotics/gauss

## Overview

Gauss6500 is a ROS-based robotic-arm platform. Its user-to-motion workflow spans user/API or sequence commands, robot motion planning and inverse kinematics, ROS hardware control, and motor communications. The repository also contains Raspberry Pi services, tool control, camera support, and a Dynamixel Workbench. The README confirms the arm and Gazebo/RViz simulations, but sampled implementation evidence is sparse; dashed edges mark plausible runtime connections that could not be verified from the excerpts. Solid edges are limited to source-index references.

Main entry points: [`gauss_commander/scripts/arm_commander.py`](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/arm_commander.py) (Arm commander), [`gauss_commander/scripts/robot_commander.py`](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/robot_commander.py) (Robot commander), [`gauss_commander/src/gauss_commander/move_group_arm.py`](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/src/gauss_commander/move_group_arm.py) (MoveIt arm motion), [`gauss_driver/src/hw_interface/gauss_hardware_interface.cpp`](https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/hw_interface/gauss_hardware_interface.cpp) (Hardware interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_command["Commands and UI"]
  node_python_api["Python API<br/>[gauss_api.py]"]
  node_commander["Robot commander<br/>[robot_commander.py]"]
  node_arm_commander["Arm commander<br/>[arm_commander.py]"]
  node_position["Saved positions"]
  node_trajectory["Saved trajectories"]
  node_sequence["Sequences"]
  node_sequence_ui["Sequence interface"]
  node_blockly["Blockly generator"]
end

subgraph group_motion["Motion planning"]
  node_moveit["MoveIt arm motion<br/>[move_group_arm.py]"]
  node_ik_server["IK service<br/>[gauss_IK_server.py]"]
  node_ik_plugin["IK solver plugin"]
  node_ik_solver["IKFast solver"]
  node_ikfast_header["IKFast interface<br/>[ikfast.h]"]
end

subgraph group_hardware["Robot hardware"]
  node_driver_node["ROS driver"]
  node_hardware_interface["Hardware interface"]
  node_dxl_comm["Dynamixel communications"]
  node_can_comm["CAN communications"]
  node_sdk["Dynamixel SDK"]
end

subgraph group_support["Robot services"]
  node_rpi_services["Raspberry Pi services<br/>[gauss_rpi_node.py]"]
  node_wifi["Wi-Fi management<br/>[network_manager.py]"]
  node_tools["Tool control<br/>[tool_controller.py]"]
  node_camera["USB camera<br/>[usb_cam_node.cpp]"]
end

subgraph group_devices["Device tooling"]
  node_workbench_gui["Dynamixel GUI<br/>[main.cpp]"]
  node_workbench_manager["Single motor manager"]
  node_workbench_items["Motor item model<br/>[dynamixel_item.cpp]"]
end

node_user(("Robot user"))

node_user -.->|"submits commands"| node_python_api
node_user -.->|"authors sequences"| node_sequence_ui
node_sequence_ui -.->|"stores sequences"| node_sequence
node_blockly -.->|"generates code"| node_sequence
node_python_api -.->|"sends commands"| node_commander
node_commander -.->|"dispatches motion"| node_arm_commander
node_arm_commander -.->|"loads positions"| node_position
node_arm_commander -.->|"loads trajectories"| node_trajectory
node_arm_commander -.->|"requests planning"| node_moveit
node_ik_server -.->|"requests solutions"| node_ik_plugin
node_ik_plugin -.->|"uses solver"| node_ik_solver
node_ik_solver -->|"implements interface"| node_ikfast_header
node_moveit -.->|"loads solver"| node_ik_plugin
node_moveit -.->|"sends motion"| node_driver_node
node_driver_node -.->|"uses interface"| node_hardware_interface
node_hardware_interface -.->|"commands motors"| node_dxl_comm
node_hardware_interface -.->|"commands steppers"| node_can_comm
node_dxl_comm -->|"uses SDK"| node_sdk
node_rpi_services -.->|"manages network"| node_wifi
node_commander -.->|"controls tools"| node_tools
node_workbench_gui -.->|"manages motor"| node_workbench_manager
node_workbench_gui -.->|"uses motor model"| node_workbench_items

click node_python_api "https://github.com/tonyrobotics/gauss/blob/master/gauss_python_api/src/gauss_python_api/gauss_api.py"
click node_commander "https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/robot_commander.py"
click node_arm_commander "https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/arm_commander.py"
click node_position "https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/src/gauss_commander/position/position_file_handler.py"
click node_trajectory "https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/src/gauss_commander/trajectory/trajectory_file_handler.py"
click node_sequence "https://github.com/tonyrobotics/gauss/blob/master/gauss_user_interface/src/gauss_user_interface/sequences/sequence_file_handler.py"
click node_sequence_ui "https://github.com/tonyrobotics/gauss/blob/master/gauss_user_interface/scripts/sequence_manager.py"
click node_blockly "https://github.com/tonyrobotics/gauss/blob/master/gauss_user_interface/blockly_code_generator/gauss_python_generators.js"
click node_moveit "https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/src/gauss_commander/move_group_arm.py"
click node_ik_server "https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/gauss_IK_server.py"
click node_ik_plugin "https://github.com/tonyrobotics/gauss/blob/master/gauss_ikfast_gauss_arm_plugin/src/gauss_gauss_arm_ikfast_moveit_plugin.cpp"
click node_ik_solver "https://github.com/tonyrobotics/gauss/blob/master/gauss_ikfast_gauss_arm_plugin/src/gauss_gauss_arm_ikfast_solver.cpp"
click node_ikfast_header "https://github.com/tonyrobotics/gauss/blob/master/gauss_ikfast_gauss_arm_plugin/include/ikfast.h"
click node_driver_node "https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/gauss_driver_node.cpp"
click node_hardware_interface "https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/hw_interface/gauss_hardware_interface.cpp"
click node_dxl_comm "https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/communication/dxl_communication.cpp"
click node_can_comm "https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/communication/can_communication.cpp"
click node_sdk "https://github.com/tonyrobotics/gauss/blob/master/dynamixel_sdk/src/protocol2_packet_handler.cpp"
click node_rpi_services "https://github.com/tonyrobotics/gauss/blob/master/gauss_rpi/scripts/gauss_rpi_node.py"
click node_wifi "https://github.com/tonyrobotics/gauss/blob/master/gauss_rpi/src/gauss_rpi/wifi/network_manager.py"
click node_tools "https://github.com/tonyrobotics/gauss/blob/master/gauss_tools/scripts/tool_controller.py"
click node_camera "https://github.com/tonyrobotics/gauss/blob/master/usb_cam/nodes/usb_cam_node.cpp"
click node_workbench_gui "https://github.com/tonyrobotics/gauss/blob/master/dynamixel-workbench/dynamixel_workbench_single_manager_gui/src/main.cpp"
click node_workbench_manager "https://github.com/tonyrobotics/gauss/blob/master/dynamixel-workbench/dynamixel_workbench_single_manager/src/single_dynamixel_controller.cpp"
click node_workbench_items "https://github.com/tonyrobotics/gauss/blob/master/dynamixel-workbench/dynamixel_workbench_toolbox/src/dynamixel_workbench_toolbox/dynamixel_item.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_python_api,node_commander,node_arm_commander,node_position,node_trajectory,node_sequence,node_sequence_ui,node_blockly,node_user toneBlue
class node_moveit,node_ik_server,node_ik_plugin,node_ik_solver,node_ikfast_header toneAmber
class node_driver_node,node_hardware_interface,node_dxl_comm,node_can_comm,node_sdk toneMint
class node_rpi_services,node_wifi,node_tools,node_camera toneRose
class node_workbench_gui,node_workbench_manager,node_workbench_items toneIndigo
```

## Components

### Commands and UI

- [Python API](https://github.com/tonyrobotics/gauss/blob/master/gauss_python_api/src/gauss_python_api/gauss_api.py): `gauss_python_api/src/gauss_python_api/gauss_api.py`
- [Robot commander](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/robot_commander.py): `gauss_commander/scripts/robot_commander.py`
- [Arm commander](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/arm_commander.py): `gauss_commander/scripts/arm_commander.py`
- [Saved positions](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/src/gauss_commander/position/position_file_handler.py): `gauss_commander/src/gauss_commander/position/position_file_handler.py`
- [Saved trajectories](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/src/gauss_commander/trajectory/trajectory_file_handler.py): `gauss_commander/src/gauss_commander/trajectory/trajectory_file_handler.py`
- [Sequences](https://github.com/tonyrobotics/gauss/blob/master/gauss_user_interface/src/gauss_user_interface/sequences/sequence_file_handler.py): `gauss_user_interface/src/gauss_user_interface/sequences/sequence_file_handler.py`
- [Sequence interface](https://github.com/tonyrobotics/gauss/blob/master/gauss_user_interface/scripts/sequence_manager.py): `gauss_user_interface/scripts/sequence_manager.py`
- [Blockly generator](https://github.com/tonyrobotics/gauss/blob/master/gauss_user_interface/blockly_code_generator/gauss_python_generators.js): `gauss_user_interface/blockly_code_generator/gauss_python_generators.js`

### Motion planning

- [MoveIt arm motion](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/src/gauss_commander/move_group_arm.py): `gauss_commander/src/gauss_commander/move_group_arm.py`
- [IK service](https://github.com/tonyrobotics/gauss/blob/master/gauss_commander/scripts/gauss_IK_server.py): `gauss_commander/scripts/gauss_IK_server.py`
- [IK solver plugin](https://github.com/tonyrobotics/gauss/blob/master/gauss_ikfast_gauss_arm_plugin/src/gauss_gauss_arm_ikfast_moveit_plugin.cpp): `gauss_ikfast_gauss_arm_plugin/src/gauss_gauss_arm_ikfast_moveit_plugin.cpp`
- [IKFast solver](https://github.com/tonyrobotics/gauss/blob/master/gauss_ikfast_gauss_arm_plugin/src/gauss_gauss_arm_ikfast_solver.cpp): `gauss_ikfast_gauss_arm_plugin/src/gauss_gauss_arm_ikfast_solver.cpp`
- [IKFast interface](https://github.com/tonyrobotics/gauss/blob/master/gauss_ikfast_gauss_arm_plugin/include/ikfast.h): `gauss_ikfast_gauss_arm_plugin/include/ikfast.h`

### Robot hardware

- [ROS driver](https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/gauss_driver_node.cpp): `gauss_driver/src/gauss_driver_node.cpp`
- [Hardware interface](https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/hw_interface/gauss_hardware_interface.cpp): `gauss_driver/src/hw_interface/gauss_hardware_interface.cpp`
- [Dynamixel communications](https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/communication/dxl_communication.cpp): `gauss_driver/src/communication/dxl_communication.cpp`
- [CAN communications](https://github.com/tonyrobotics/gauss/blob/master/gauss_driver/src/communication/can_communication.cpp): `gauss_driver/src/communication/can_communication.cpp`
- [Dynamixel SDK](https://github.com/tonyrobotics/gauss/blob/master/dynamixel_sdk/src/protocol2_packet_handler.cpp): `dynamixel_sdk/src/protocol2_packet_handler.cpp`

### Robot services

- [Raspberry Pi services](https://github.com/tonyrobotics/gauss/blob/master/gauss_rpi/scripts/gauss_rpi_node.py): `gauss_rpi/scripts/gauss_rpi_node.py`
- [Wi-Fi management](https://github.com/tonyrobotics/gauss/blob/master/gauss_rpi/src/gauss_rpi/wifi/network_manager.py): `gauss_rpi/src/gauss_rpi/wifi/network_manager.py`
- [Tool control](https://github.com/tonyrobotics/gauss/blob/master/gauss_tools/scripts/tool_controller.py): `gauss_tools/scripts/tool_controller.py`
- [USB camera](https://github.com/tonyrobotics/gauss/blob/master/usb_cam/nodes/usb_cam_node.cpp): `usb_cam/nodes/usb_cam_node.cpp`

### Device tooling

- [Dynamixel GUI](https://github.com/tonyrobotics/gauss/blob/master/dynamixel-workbench/dynamixel_workbench_single_manager_gui/src/main.cpp): `dynamixel-workbench/dynamixel_workbench_single_manager_gui/src/main.cpp`
- [Single motor manager](https://github.com/tonyrobotics/gauss/blob/master/dynamixel-workbench/dynamixel_workbench_single_manager/src/single_dynamixel_controller.cpp): `dynamixel-workbench/dynamixel_workbench_single_manager/src/single_dynamixel_controller.cpp`
- [Motor item model](https://github.com/tonyrobotics/gauss/blob/master/dynamixel-workbench/dynamixel_workbench_toolbox/src/dynamixel_workbench_toolbox/dynamixel_item.cpp): `dynamixel-workbench/dynamixel_workbench_toolbox/src/dynamixel_workbench_toolbox/dynamixel_item.cpp`

### Other components

- **Robot user**

## Connections

- Robot user → Python API: submits commands
- Robot user → Sequence interface: authors sequences
- Sequence interface → Sequences: stores sequences
- Blockly generator → Sequences: generates code
- Python API → Robot commander: sends commands
- Robot commander → Arm commander: dispatches motion
- Arm commander → Saved positions: loads positions
- Arm commander → Saved trajectories: loads trajectories
- Arm commander → MoveIt arm motion: requests planning
- IK service → IK solver plugin: requests solutions
- IK solver plugin → IKFast solver: uses solver
- IKFast solver → IKFast interface: implements interface (evidence: `gauss_ikfast_gauss_arm_plugin/src/gauss_gauss_arm_ikfast_solver.cpp`)
- MoveIt arm motion → IK solver plugin: loads solver
- MoveIt arm motion → ROS driver: sends motion
- ROS driver → Hardware interface: uses interface
- Hardware interface → Dynamixel communications: commands motors
- Hardware interface → CAN communications: commands steppers
- Dynamixel communications → Dynamixel SDK: uses SDK
- Raspberry Pi services → Wi-Fi management: manages network
- Robot commander → Tool control: controls tools
- Dynamixel GUI → Single motor manager: manages motor
- Dynamixel GUI → Motor item model: uses motor model
