Panda-Base Digital Twin — Modular Simulation of a High-Moment Manipulation Setup
Modular Gazebo-based digital twin of a Franka Emika Panda arm mounted on a custom aluminium-profile base. Developed during a TUM-MIRMI research internship, it enables controller tuning and moment-load evaluation entirely in simulation.
GitHub Repo Final Report (PDF)
1. Overview & Objective
Panda-Base Digital Twin is a Gazebo/RViz simulation that mirrors a Franka Emika Panda arm mounted on a custom aluminium-profile base used at TUM-MIRMI. The goal is to validate high-moment manipulation controllers and sensor placements entirely in software—eliminating risky, time-consuming on-robot trials while achieving real-time performance.
2. Features & Design Highlights
- Full-physics Gazebo 11 world of base + Panda arm + FTE-Omega-160-IP60 SI-1000-120 6-DoF force-torque sensor stub with accurate inertias and collision geometry.
 -  Modular Xacro/URDF stack—
common,base,arm,sensor—for rapid reuse or hardware redesign. - Pre-tuned controller suite (joint-position, effort, trajectory, Cartesian-impedance) with gains matched to the twin’s dynamics.
 -  Interactive RViz tele-operation via 
interactive_marker.py; streams a 6-DOF equilibrium-pose marker at 200 Hz and clamps motion inside safe limits. -  One-command startup: 
roslaunch panda_base_sim panda_base_sim.launchlaunches Gazebo, controllers, RViz, and the marker node. - Comprehensive documentation & MIT license make it an open template for Panda manipulation research.
 
3. Architecture & Pipeline
Package structure
panda_base_sim/
├── config/      # controller & hardware YAMLs
├── launch/      # Gazebo / RViz launch files
├── robots/      # Xacro macros: common, base, arm, sensor
├── meshes/      # STL / DAE visuals from SolidWorks
├── scripts/     # interactive_marker.py
└── urdf/        # generated URDFs & CAD-export variants
Launch flow
-  
panda_base_sim.launch- Loads Gazebo (headless or GUI).
 - Generates 
robot_descriptionfromurdf/base_panda.urdf.xacro. - Pushes controller parameters from 
config/*.yaml. - Spawns the robot model into Gazebo at preset joint angles.
 - Starts 
controller_managerspawners (state, trajectory, Cartesian-impedance). - Optionally launches RViz with 
robots/panda_base_sim.rviz. - Runs interactive marker node for live equilibrium-pose commands.
 
 -  
onlybase_gazebo.launch- Spawns the static base + arm without controllers/RViz for quick visualization.
 
 
The force-torque sensor placeholder matches the real FTE-Omega-160-IP60 SI-1000-120 unit used in hardware tests, ensuring mass and inertia fidelity.
Interactive marker pipeline
Gazebo ←→ controller_manager ←→ cartesian_impedance_example_controller
                                       ↑
              equilibrium_pose  (geometry_msgs/PoseStamped)
                                       ↑
                          interactive_marker.py
The Python node reads the current Panda end-effector pose, enforces XYZ bounds, and publishes updates at 200 Hz, enabling smooth, safe tele-op inside RViz.
4. Technologies Used
-  ROS Noetic (
gazebo_ros,controller_manager,franka_ros,interactive_markers) - Gazebo 11 physics engine
 -  Franka Gazebo plugin (
FrankaHWSim) for realistic dynamics - RViz with saved display config for live visualization
 - SolidWorks for CAD design and inertia extraction of the aluminium base
 - Xacro ⁄ URDF for parameterised robot descriptions
 -  Python 3 (+ 
rospy) for the interactive marker node - CMake / catkin build system for ROS packaging
 
5. Workflow & Usage
-  
Clone & build
cd ~/catkin_ws/src git clone https://github.com/yunusdanabas/panda_base_sim.git cd ~/catkin_ws rosdep install --from-paths src --ignore-src -r -y catkin_make # or: colcon build source devel/setup.bash -  
Run the full twin
roslaunch panda_base_sim panda_base_sim.launchThis single command starts Gazebo + controllers + RViz and spawns a 6-DOF interactive marker for Cartesian-impedance control.
 -  
Minimal spawn
roslaunch panda_base_sim onlybase_gazebo.launchSpawns the static base-arm pair in Gazebo without controllers or RViz—ideal for quick visual checks.
 -  
Tele-operate
- Drag the Equilibrium Pose marker in RViz for real-time impedance control (clamped workspace).
 - Or publish your own poses:
 
rostopic pub /equilibrium_pose geometry_msgs/PoseStamped ... 
6. Results & Impact
- Zero on-robot risk – 100 % of controller tuning and load-case checks completed in simulation.
 - Real-time performance – ≈ 1 × wall-clock speed (≥ 60 FPS) on a mid-tier desktop with the full controller stack active.
 - Adopted by peers – 3 MIRMI researchers now use this twin as a baseline for force-torque sensor scaling studies.
 - Open resource – MIT-licensed code released on GitHub for the robotics community.
 
7. Visual Gallery