TUM MIRMI — Panda-Base Digital Twin — ROS Noetic / Gazebo Package
ROS Noetic package that provides a Gazebo 11 + RViz digital twin of a Franka Emika Panda mounted on a custom aluminium-profile base. Built as a reusable simulation workspace for URDF/Xacro iteration, controller bring-up, and safe pre-hardware validation. Developed at TUM MIRMI.
1. Overview
panda_base_sim is a ROS Noetic package that launches a Gazebo 11 simulation and RViz visualization for a Franka Emika Panda mounted on a custom aluminium-profile base (including a force-torque sensor placeholder in the model).
The focus of this repository is the ROS package itself: robot description, launch system, controller configuration, and an RViz-based interactive tele-operation workflow—so that most integration work can be iterated in simulation before touching hardware.
2. What the Package Provides
- Gazebo + RViz “one-command” bring-up via
panda_base_sim.launch. - Modular URDF/Xacro robot description:
-
base_panda.urdf.xacroas the main entry point (base + Panda arm + optional hand). -
base_sensor_urdf.urdfas a lightweight, base-only model for fast checks.
-
- ros_control + Franka Gazebo integration (
FrankaHWSim) with controller configs pre-wired. - Interactive marker tele-operation (auto-enabled for the Cartesian impedance example controller) to move an equilibrium pose in RViz and stream it to the controller topic.
3. Repository Structure (Key Folders)
panda_base_sim/
├── config/ # Franka HW sim + controller YAMLs
├── launch/ # Gazebo/RViz launch files
├── robots/ # xacro macros + RViz config
├── meshes/ # STL/DAE visuals (CAD exports)
├── scripts/ # interactive_marker.py
└── urdf/ # base_panda.urdf.xacro + base_sensor_urdf.urdf
4. Launch Files and Runtime Flow
4.1 panda_base_sim.launch (full stack)
This is the main entry point. It:
- Starts Gazebo (GUI or headless; optionally paused).
- Generates
robot_descriptionfromurdf/base_panda.urdf.xacro. - Loads YAML parameters from
config/(hardware sim + controllers). - Spawns the robot into Gazebo via
gazebo_ros/spawn_model. -
Spawns controllers via
controller_manager/spawner:franka_state_controller- one selected example controller (default:
cartesian_impedance_example_controller) - optionally
franka_gripper
- Starts
robot_state_publisher/joint_state_publisher. - Optionally launches RViz with
robots/panda_base_sim.rviz. - Enables the interactive marker node automatically when the Cartesian impedance controller is selected.
Useful arguments exposed by the launch file include:
-
headless,paused,world,rviz -
use_gripper,controller - spawn pose args (
spawn_x/y/z,spawn_roll/pitch/yaw)
4.2 onlybase_gazebo.launch (fast base-only checks)
This launch file is intentionally minimal for quick iteration on the mechanical model:
- Launches an empty Gazebo world
- Spawns
urdf/base_sensor_urdf.urdf(base + sensor placeholder, no arm) - Publishes a static TF
base_link → base_footprint - Publishes
/calibratedastrue(to satisfy nodes that expect calibration gating)
5. Controllers and Interactive Marker Tele-Op
Controller definitions and Franka simulation parameters live in config/ (e.g., hardware sim config, state controller, trajectory controllers, and example controllers).
When using cartesian_impedance_example_controller, the package can run scripts/interactive_marker.py:
- Reads the current end-effector pose
- Lets you drag a 6-DoF marker in RViz
- Publishes the target to the controller topic (equilibrium pose), with workspace bounding for safer interaction
6. Workflow & Usage
-
Clone & build (catkin / Noetic)
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 source devel/setup.bash -
Run the full digital twin
roslaunch panda_base_sim panda_base_sim.launchCommon toggles:
roslaunch panda_base_sim panda_base_sim.launch headless:=true rviz:=false roslaunch panda_base_sim panda_base_sim.launch use_gripper:=false roslaunch panda_base_sim panda_base_sim.launch controller:=joint_position_example_controller -
Spawn only the base model
roslaunch panda_base_sim onlybase_gazebo.launch
7. Visual Gallery