From Research Code to Running Systems                  
                                                                                                              
                                   Cross-Platform Robotics and ML Workflows                                   
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                Tobias Fischer                                                
                                                 Peter Corke                                                  
                                                                                                              
                                                                                                              
                                                                                                              
                  From Research Code to Running Systems                  
                                                                                                              
                                                                                                              
                                                                                                              
         Robotics papers increasingly depend on full software stacks                                          
                                                                                                              
         Bucket list:                                                                                         
                                                                                                              
               ◦  ROS, Python, C++, CUDA, simulators, ML tooling, and data                                    
               ◦  Cross-platform robotics and ML workflows (Linux + Windows + MacOS + ...)                    
               ◦  Support for many programming languages: Python, C++, Rust, R, ...                           
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   2 / 64 
                                                                                                              
                                                                                                              
                  From Research Code to Running Systems                  
                                                                                                              
                                                                                                              
                                                                                                              
         Robotics papers increasingly depend on full software stacks                                          
                                                                                                              
         Bucket list:                                                                                         
                                                                                                              
               ◦  ROS, Python, C++, CUDA, simulators, ML tooling, and data                                    
               ◦  Cross-platform robotics and ML workflows (Linux + Windows + MacOS + ...)                    
               ◦  Support for many programming languages: Python, C++, Rust, R, ...                           
                                                                                                              
         Today: make those systems runnable, repeatable, and portable.                                        
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   3 / 64 
                                                                                                              
                                                                                                              
         The Problem: Research Code Becomes                                 
                                                                                                              
                                         Infrastructure                                         
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Hands up if you have lost time to...                                                             
                                                                                                              
            •  a missing dependency                                                                           
            •  a mystery dataset or model download                                                            
            •  "works on my machine"                                                                          
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   4 / 64 
                                                                                                              
                                                                                                              
         The Problem: Research Code Becomes                                 
                                                                                                              
                                         Infrastructure                                         
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Hands up if you have lost time to...                                                             
                                                                                                              
            •  a missing dependency                                                                           
            •  a mystery dataset or model download                                                            
            •  "works on my machine"                                                                          
                                                                                                              
         ▓▓▓ The thesis                                                                                       
                                                                                                              
         Tooling is part of how research is shared, reused, and extended. Developing and sharing              
         should be a single workflow, not separated.                                                          
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   5 / 64 
                                                                                                              
                                                                                                              
              The Reality of Many Research Repositories              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                               git clone https://github.com/some_repo/project                                 
                                                                                                              
                               # Ubuntu 20.04 only                                                            
                               sudo apt install ...                                                           
                                                                                                              
                               pip install torch==1.12                                                        
                               pip install some_package                                                       
                                                                                                              
                               # Compile custom OpenCV                                                        
                                                                                                              
                               # Download model manually:                                                     
                               https://drive.google.com/...                                                   
                                                                                                              
                               # Tested on my machine :)                                                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   6 / 64 
                                                                                                              
                                                                                                              
              The Reality of Many Research Repositories              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                               git clone https://github.com/some_repo/project                                 
                                                                                                              
                               # Ubuntu 20.04 only                                                            
                               sudo apt install ...                                                           
                                                                                                              
                               pip install torch==1.12                                                        
                               pip install some_package                                                       
                                                                                                              
                               # Compile custom OpenCV                                                        
                                                                                                              
                               # Download model manually:                                                     
                               https://drive.google.com/...                                                   
                                                                                                              
                               # Tested on my machine :)                                                      
                                                                                                              
                                                                                                              
                        ██ What if the README had one command?                                                
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   7 / 64 
                                                                                                              
                                                                                                              
                                This Talk Is Executable                                
                                                                                                              
                                                                                                              
                                                                                                              
         The slides are also the demo environment.                                                            
                                                                                                              
         ▓▓▓ During the talk                                                                                  
                                                                                                              
            •  arrows: navigate                                                                               
         control + e: run code                                                                          
         control + r: reset slide                                                                       
         ?: show keybindings                                                                            
         esc or control + c: exit                                                                       
                                                                                                              
         ▓▓▓ Running it yourself                                                                              
                                                                                                              
         Use a terminal and raw git clone (avoid GitHub Web or GitHub Desktop):                               
                                                                                                              
                                                                                                              
                                git clone https://github.com/petercorke/                                      
                                          ICRA2026-modern-software-tools.git                                  
                                cd ICRA2026-modern-software-tools                                             
                                pixi run presentation                                                         
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   8 / 64 
                                                                                                              
                                                                                                              
                                This Talk Is Executable                                
                                                                                                              
                                                                                                              
                                                                                                              
         The slides are also the demo environment.                                                            
                                                                                                              
         ▓▓▓ During the talk                                                                                  
                                                                                                              
            •  arrows: navigate                                                                               
         control + e: run code                                                                          
         control + r: reset slide                                                                       
         ?: show keybindings                                                                            
         esc or control + c: exit                                                                       
                                                                                                              
         ▓▓▓ Running it yourself                                                                              
                                                                                                              
         Use a terminal and raw git clone (avoid GitHub Web or GitHub Desktop):                               
                                                                                                              
                                                                                                              
                                git clone https://github.com/petercorke/                                      
                                          ICRA2026-modern-software-tools.git                                  
                                cd ICRA2026-modern-software-tools                                             
                                pixi run presentation                                                         
                                                                                                              
                                                                                                              
         Only run executable snippets from presentations you trust!                                           
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                   9 / 64 
                                                                                                              
                                                                                                              
                Pixi: From Instructions to Artifacts ⚡                  
                                                                                                              
                                                                                                              
                                                                                                              
         Pixi is a fast project manager built on the conda-forge ecosystem.                                   
                                                                                                              
         Think: conda packages, modern project workflow.                                                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  10 / 64 
                                                                                                              
                                                                                                              
                Pixi: From Instructions to Artifacts ⚡                  
                                                                                                              
                                                                                                              
                                                                                                              
         Pixi is a fast project manager built on the conda-forge ecosystem.                                   
                                                                                                              
         Think: conda packages, modern project workflow.                                                      
                                                                                                              
         ▓▓▓ The old way: Instructions                     ▓▓▓ Now: shared artifacts                          
                                                                                                              
            •  README.md                                   pixi.toml                                    
            •  shell scripts                               pixi.lock                                    
            •  oral tradition                              pixi run <task>                              
            •  "ask the previous student"                     •  CI-friendly commands                         
                                                                                                              
                                                                                                              
         The shift is from instructions to runnable artifacts.                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  11 / 64 
                                                                                                              
         ██ Start a Project                                                                                   
                                                                                                              
                                                                                                              
                                pixi init                                                                     
                                                                                                              
                                                                                                              
                              ——————————————————— [finished] ———————————————————                              
                                                                                                              
                                                                                                              
                   ✔ Created                                                                                  
                   /home/runner/work/ICRA2026-modern-software-tools/ICRA2026-modern-softwar                   
                   e-tools/tobi/pixi.toml                                                                     
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  12 / 64 
                                                                                                              
         ██ Start a Project                                                                                   
                                                                                                              
                                                                                                              
                                pixi init                                                                     
                                                                                                              
                                                                                                              
                              ——————————————————— [finished] ———————————————————                              
                                                                                                              
                                                                                                              
                   ✔ Created                                                                                  
                   /home/runner/work/ICRA2026-modern-software-tools/ICRA2026-modern-softwar                   
                   e-tools/tobi/pixi.toml                                                                     
                                                                                                              
                                                                                                              
         ██ Add PyTorch                                                                                       
                                                                                                              
                                                                                                              
                                pixi add python pytorch torchvision                                           
                                                                                                              
                                                                                                              
                              ——————————————————— [finished] ———————————————————                              
                                                                                                              
                                                                                                              
                                ✔ Added python >=3.14.5,<3.15                                                 
                                ✔ Added pytorch >=2.11.0,<3                                                   
                                ✔ Added torchvision >=0.26.0,<0.27                                            
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  13 / 64 
                                                                                                              
                                                                                                              
                   Fast Environments Change Behavior ⚡                     
                                                                                                              
                                                                                                              
                                                                                                              
         If changing environments takes minutes, people avoid changing environments.                          
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  14 / 64 
                                                                                                              
                                                                                                              
                   Fast Environments Change Behavior ⚡                     
                                                                                                              
                                                                                                              
                                                                                                              
         If changing environments takes minutes, people avoid changing environments.                          
                                                                                                              
         If it takes seconds, environments become part of iteration.                                          
                                                                                                              
         ██ Environment Solve Time                                                                            
                                                                                                              
                                                                                                              
                               microenv                                                                       
                               ▓▓▓▓                     🟩 Pixi         0.07s                                  
                               ▒▒▒▒▒▒▒▒▒▒               🟦 Micromamba   2.54s                                  
                               ████████████████         🟧 conda        4.08s                                  
                                                                                                              
                                                                                                              
                               stressenv                                                                      
                               ▓▓▓▓                     🟩 Pixi         4.54s                                  
                               ▒▒▒▒▒▒▒▒▒▒               🟦 Micromamba  12.58s                                  
                               ████████████████████████ 🟧 conda       29.84s                                  
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  15 / 64 
                                                                                                              
         ██ train.py                                                                                          
                                                                                                              
                                                                                                              
                    import torch                                                                              
                    import torch.nn.functional as F                                                           
                                                                                                              
                    print("PyTorch version:", torch.__version__)                                              
                    print("CUDA available:", torch.cuda.is_available())                                       
                    print("MPS available:", torch.backends.mps.is_available())                                
                                                                                                              
                    y = torch.tensor([1.0]); x = torch.tensor([1.1])  # target and input                      
                    w = torch.tensor([2.2], requires_grad=True)                                               
                    b = torch.tensor([0.0], requires_grad=True)                                               
                                                                                                              
                    z = x * w + b; a = torch.sigmoid(z)                                                       
                    loss = F.binary_cross_entropy(a, y)                                                       
                    loss.backward()                                                                           
                                                                                                              
                    print("loss:", loss.item())                                                               
                                                                                                              
                                                                                                              
                  —————————————————————————————— [finished] ———————————————————————————————                   
                                                                                                              
                                                                                                              
                    PyTorch version: 2.11.0                                                                   
                    CUDA available: False                                                                     
                    MPS available: False                                                                      
                    loss: 0.0851878821849823                                                                  
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  16 / 64 
                                                                                                              
                                                                                                              
                     Tasks Turn Commands into Workflows                     
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up: who has a command in their lab that nobody wants to type from memory?                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  17 / 64 
                                                                                                              
                                                                                                              
                     Tasks Turn Commands into Workflows                     
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up: who has a command in their lab that nobody wants to type from memory?                      
                                                                                                              
         ▓▓▓ Define the workflow                                                                              
                                                                                                              
                                                                                                              
           pixi task add start "python train.py"                                                              
           --depends-on download-mnist                                                                        
                                                                                                              
                                                                                                              
         ——————————————————— [finished] ————————————————————                                                  
                                                                                                              
                                                                                                              
           ✔ Added task `start`: python train.py,                                                             
           depends-on = 'download-mnist'                                                                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  18 / 64 
                                                                                                              
                                                                                                              
                     Tasks Turn Commands into Workflows                     
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up: who has a command in their lab that nobody wants to type from memory?                      
                                                                                                              
         ▓▓▓ Define the workflow                                                                              
                                                                                                              
                                                                                                              
           pixi task add start "python train.py"                                                              
           --depends-on download-mnist                                                                        
                                                                                                              
                                                                                                              
         ——————————————————— [finished] ————————————————————                                                  
                                                                                                              
                                                                                                              
           ✔ Added task `start`: python train.py,                                                             
           depends-on = 'download-mnist'                                                                      
                                                                                                              
                                                                                                              
                                                                                                              
           [tasks]                                                                                            
           ...                                                                                                
           download-mnist = {                                                                                 
             cmd = "python -c                                                                                 
           'torchvision.datasets.MNIST("data",                                                                
           download=True)'",                                                                                  
             outputs = ["data/MNIST"]                                                                         
           }                                                                                                  
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  19 / 64 
                                                                                                              
                                                                                                              
                     Tasks Turn Commands into Workflows                     
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up: who has a command in their lab that nobody wants to type from memory?                      
                                                                                                              
         ▓▓▓ Define the workflow                                    ▓▓▓ Run it                                
                                                                                                              
                                                                                                              
           pixi task add start "python train.py"                      pixi run start                          
           --depends-on download-mnist                                                                        
                                                                                                              
                                                                    —————————— [finished] ——————————          
         ——————————————————— [finished] ————————————————————                                                  
                                                                                                              
                                                                      ✨ Pixi task                             
           ✔ Added task `start`: python train.py,                     (download-mnist): python -c             
           depends-on = 'download-mnist'                              'from torchvision.datasets              
                                                                      import MNIST; MNIST("data",             
                                                                      download=True)' 2>/dev/null             
                                                                                                              
           [tasks]                                                    ✨ Pixi task (start): python             
           ...                                                        train.py                                
           download-mnist = {                                         PyTorch version: 2.11.0                 
             cmd = "python -c                                                                                 
           'torchvision.datasets.MNIST("data",                                                                
           download=True)'",                                                                                  
             outputs = ["data/MNIST"]                                                                         
           }                                                                                                  
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  20 / 64 
                                                                                                              
                                                                                                              
                     Tasks Turn Commands into Workflows                     
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up: who has a command in their lab that nobody wants to type from memory?                      
                                                                                                              
         ▓▓▓ Define the workflow                                    ▓▓▓ Run it                                
                                                                                                              
                                                                                                              
           pixi task add start "python train.py"                      pixi run start                          
           --depends-on download-mnist                                                                        
                                                                                                              
                                                                    —————————— [finished] ——————————          
         ——————————————————— [finished] ————————————————————                                                  
                                                                                                              
                                                                      ✨ Pixi task                             
           ✔ Added task `start`: python train.py,                     (download-mnist): python -c             
           depends-on = 'download-mnist'                              'from torchvision.datasets              
                                                                      import MNIST; MNIST("data",             
                                                                      download=True)' 2>/dev/null             
                                                                                                              
           [tasks]                                                    ✨ Pixi task (start): python             
           ...                                                        train.py                                
           download-mnist = {                                         PyTorch version: 2.11.0                 
             cmd = "python -c                                                                                 
           'torchvision.datasets.MNIST("data",                                                                
           download=True)'",                                        ▓▓▓ Run it again                          
             outputs = ["data/MNIST"]                                                                         
           }                                                                                                  
                                                                      pixi run start                          
                                                                                                              
                                                                                                              
                                                                    —————————— [finished] ——————————          
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  21 / 64 
                                                                                                              
         ██ Mixing Ecosystems                                                                                 
                                                                                                              
         Modern robotics often needs:                                                                         
                                                                                                              
         ▓▓▓ Robotics stack                                                                                   
                                                                                                              
            •  ROS                                                                                            
            •  OpenCV                                                                                         
            •  CUDA                                                                                           
            •  native libraries                                                                               
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  22 / 64 
                                                                                                              
         ██ Mixing Ecosystems                                                                                 
                                                                                                              
         Modern robotics often needs:                                                                         
                                                                                                              
         ▓▓▓ Robotics stack                                ▓▓▓ ML stack                                       
                                                                                                              
            •  ROS                                            •  PyTorch                                      
            •  OpenCV                                         •  Transformers                                 
            •  CUDA                                           •  experiment tools                             
            •  native libraries                               •  Python packages                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  23 / 64 
                                                                                                              
         ██ Mixing Ecosystems                                                                                 
                                                                                                              
         Modern robotics often needs:                                                                         
                                                                                                              
         ▓▓▓ Robotics stack                                ▓▓▓ ML stack                                       
                                                                                                              
            •  ROS                                            •  PyTorch                                      
            •  OpenCV                                         •  Transformers                                 
            •  CUDA                                           •  experiment tools                             
            •  native libraries                               •  Python packages                              
                                                                                                              
                                                                                                              
         ██ Conda-forge + PyPI Together                                                                       
                                                                                                              
                                                                                                              
                                [dependencies]                                                                
                                python = "3.11"                                                               
                                pytorch = "*"                                                                 
                                                                                                              
                                [pypi-dependencies]                                                           
                                transformers = "*"                                                            
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  24 / 64 
                                                                                                              
         ██ Mixing Ecosystems                                                                                 
                                                                                                              
         Modern robotics often needs:                                                                         
                                                                                                              
         ▓▓▓ Robotics stack                                ▓▓▓ ML stack                                       
                                                                                                              
            •  ROS                                            •  PyTorch                                      
            •  OpenCV                                         •  Transformers                                 
            •  CUDA                                           •  experiment tools                             
            •  native libraries                               •  Python packages                              
                                                                                                              
                                                                                                              
         ██ Conda-forge + PyPI Together                                                                       
                                                                                                              
                                                                                                              
                                [dependencies]                                                                
                                python = "3.11"                                                               
                                pytorch = "*"                                                                 
                                                                                                              
                                [pypi-dependencies]                                                           
                                transformers = "*"                                                            
                                                                                                              
                                                                                                              
         ██ No boundary between ecosystems ✨                                                                  
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  25 / 64 
                                                                                                              
                                                                                                              
                           Robotics Meets ML: RoboStack                           
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up if you have ever installed a VM or old Ubuntu just to get ROS running.                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  26 / 64 
                                                                                                              
                                                                                                              
                           Robotics Meets ML: RoboStack                           
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up if you have ever installed a VM or old Ubuntu just to get ROS running.                      
                                                                                                              
         RoboStack enables ROS on:                                                                            
                                                                                                              
            •  Linux                                                                                          
            •  macOS                                                                                          
            •  Windows                                                                                        
                                                                                                              
         through the conda-forge ecosystem.                                                                   
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  27 / 64 
                                                                                                              
                                                                                                              
                           Robotics Meets ML: RoboStack                           
                                                                                                              
                                                                                                              
                                                                                                              
         Hands up if you have ever installed a VM or old Ubuntu just to get ROS running.                      
                                                                                                              
         RoboStack enables ROS on:                                                                            
                                                                                                              
            •  Linux                                                                                          
            •  macOS                                                                                          
            •  Windows                                                                                        
                                                                                                              
         through the conda-forge ecosystem.                                                                   
                                                                                                              
                                                                                                              
                       pixi workspace channel add https://prefix.dev/robostack-rolling                        
                       pixi add ros-rolling-desktop                                                           
                                                                                                              
                                                                                                              
                     ———————————————————————————— [finished] ————————————————————————————                     
                                                                                                              
                                                                                                              
                   ✔ Added https://prefix.dev/robostack-rolling                                               
                    WARN Skipped running the post-link scripts because                                        
                   `run-post-link-scripts` = `false`                                                          
                       - bin/.librsvg-pre-unlink.sh                                                           
                                                                                                              
                   To enable them, run:                                                                       
                       pixi config set --local run-post-link-scripts insecure                                 
                                                                                                              
                   More info:                                                                                 
                                                                                                              
                   https://pixi.sh/latest/reference/pixi_configuration/#run-post-link-scrip                   
                   ts                                                                                         
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  28 / 64 
                                                                                                              
                                                                                                              
              ROS Desktop App from a Locked Environment              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                pixi run ros2 run turtlesim turtlesim_node                                    
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  29 / 64 
                                                                                                              
                                                                                                              
              ROS Desktop App from a Locked Environment              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                pixi run ros2 run turtlesim turtlesim_node                                    
                                                                                                              
                                                                                                              
                                                                                                              
                                pixi run ros2 topic pub /turtle1/cmd_vel \                                    
                                  geometry_msgs/msg/Twist \                                                   
                                  "{linear: {x: 2.0}, angular: {z: 1.8}}"                                     
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  30 / 64 
                                                                                                              
                                                                                                              
              ROS Desktop App from a Locked Environment              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                pixi run ros2 run turtlesim turtlesim_node                                    
                                                                                                              
                                                                                                              
                                                                                                              
                                pixi run ros2 topic pub /turtle1/cmd_vel \                                    
                                  geometry_msgs/msg/Twist \                                                   
                                  "{linear: {x: 2.0}, angular: {z: 1.8}}"                                     
                                                                                                              
                                                                                                              
         Start with a tiny demo. Then scale the same idea to real stacks.                                     
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  31 / 64 
                                                                                                              
         ██ One Environment                                                                                   
                                                                                                              
                                                                                                              
                                ROS + PyTorch + OpenCV                                                        
                                + Transformers + custom research code                                         
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  32 / 64 
                                                                                                              
         ██ One Environment                                                                                   
                                                                                                              
                                                                                                              
                                ROS + PyTorch + OpenCV                                                        
                                + Transformers + custom research code                                         
                                                                                                              
                                                                                                              
         ██ One lockfile.                                                                                     
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  33 / 64 
                                                                                                              
         ██ One Environment                                                                                   
                                                                                                              
                                                                                                              
                                ROS + PyTorch + OpenCV                                                        
                                + Transformers + custom research code                                         
                                                                                                              
                                                                                                              
         ██ One lockfile.                                                                                     
                                                                                                              
         ██ One Machine, Multiple ROS Distros                                                                 
                                                                                                              
                                                                                                              
                       # Add another ROS distro                                                               
                       pixi workspace channel add https://prefix.dev/robostack-humble                         
                       pixi add --feature humble ros-humble-desktop                                           
                                                                                                              
                       # Run different environments                                                           
                       pixi run -e humble   ros2 run turtlesim turtlesim_node                                 
                       pixi run -e rolling  ros2 run rviz2 rviz2                                              
                                                                                                              
                       # We still support ROS1 Noetic :)                                                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  34 / 64 
                                                                                                              
                                                                                                              
             Build Your Own ROS / C++ / Python Packages             
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Create a ROS package                                                                             
                                                                                                              
                                                                                                              
           pixi run ros2 pkg create \                                                                         
             --build-type ament_cmake \                                                                       
             --node-name icra_node \                                                                          
             icra_ros_package                                                                                 
                                                                                                              
                                                                                                              
         ——————————————————— [finished] ———————————————————                                                   
                                                                                                              
                                                                                                              
           going to create a new package                                                                      
           package name: icra_ros_package                                                                     
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  35 / 64 
                                                                                                              
                                                                                                              
             Build Your Own ROS / C++ / Python Packages             
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Create a ROS package                                                                             
                                                                                                              
                                                                                                              
           pixi run ros2 pkg create \                                                                         
             --build-type ament_cmake \                                                                       
             --node-name icra_node \                                                                          
             icra_ros_package                                                                                 
                                                                                                              
                                                                                                              
         ——————————————————— [finished] ———————————————————                                                   
                                                                                                              
                                                                                                              
           going to create a new package                                                                      
           package name: icra_ros_package                                                                     
                                                                                                              
                                                                                                              
         ▓▓▓ Add it to Pixi                                                                                   
                                                                                                              
                                                                                                              
           [workspace]                                                                                        
           preview = ["pixi-build"]                                                                           
                                                                                                              
           [dependencies]                                                                                     
           ros-rolling-icra-ros-package = { path = "                                                          
           icra_ros_package/package.xml" }                                                                    
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  36 / 64 
                                                                                                              
                                                                                                              
             Build Your Own ROS / C++ / Python Packages             
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Create a ROS package                                   ▓▓▓ Build the package                     
                                                                                                              
                                                                                                              
           pixi run ros2 pkg create \                                 # The equivalent to colcon              
             --build-type ament_cmake \                               build!                                  
             --node-name icra_node \                                  pixi install                            
             icra_ros_package                                                                                 
                                                                                                              
                                                                    —————————— [finished] ——————————          
         ——————————————————— [finished] ———————————————————                                                   
                                                                                                              
                                                                                                              
           going to create a new package                               ╭─ Running build for                   
           package name: icra_ros_package                             recipe:                                 
                                                                      ros-rolling-icra-ros-package            
                                                                      -0.0.0-hb0f4dca_0                       
         ▓▓▓ Add it to Pixi                                                                                   
                                                                                                              
                                                                                                              
           [workspace]                                                                                        
           preview = ["pixi-build"]                                                                           
                                                                                                              
           [dependencies]                                                                                     
           ros-rolling-icra-ros-package = { path = "                                                          
           icra_ros_package/package.xml" }                                                                    
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  37 / 64 
                                                                                                              
                                                                                                              
             Build Your Own ROS / C++ / Python Packages             
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Create a ROS package                                   ▓▓▓ Build the package                     
                                                                                                              
                                                                                                              
           pixi run ros2 pkg create \                                 # The equivalent to colcon              
             --build-type ament_cmake \                               build!                                  
             --node-name icra_node \                                  pixi install                            
             icra_ros_package                                                                                 
                                                                                                              
                                                                    —————————— [finished] ——————————          
         ——————————————————— [finished] ———————————————————                                                   
                                                                                                              
                                                                                                              
           going to create a new package                               ╭─ Running build for                   
           package name: icra_ros_package                             recipe:                                 
                                                                      ros-rolling-icra-ros-package            
                                                                      -0.0.0-hb0f4dca_0                       
         ▓▓▓ Add it to Pixi                                                                                   
                                                                                                              
                                                                    ▓▓▓ Does it work?                         
           [workspace]                                                                                        
           preview = ["pixi-build"]                                                                           
                                                                      pixi run ros2 run                       
           [dependencies]                                             icra_ros_package icra_node              
           ros-rolling-icra-ros-package = { path = "                                                          
           icra_ros_package/package.xml" }                                                                    
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  38 / 64 
                                                                                                              
                                                                                                              
             Build Your Own ROS / C++ / Python Packages             
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Create a ROS package                                   ▓▓▓ Build the package                     
                                                                                                              
                                                                                                              
           pixi run ros2 pkg create \                                 # The equivalent to colcon              
             --build-type ament_cmake \                               build!                                  
             --node-name icra_node \                                  pixi install                            
             icra_ros_package                                                                                 
                                                                                                              
                                                                    —————————— [finished] ——————————          
         ——————————————————— [finished] ———————————————————                                                   
                                                                                                              
                                                                                                              
           going to create a new package                               ╭─ Running build for                   
           package name: icra_ros_package                             recipe:                                 
                                                                      ros-rolling-icra-ros-package            
                                                                      -0.0.0-hb0f4dca_0                       
         ▓▓▓ Add it to Pixi                                                                                   
                                                                                                              
                                                                    ▓▓▓ Does it work?                         
           [workspace]                                                                                        
           preview = ["pixi-build"]                                                                           
                                                                      pixi run ros2 run                       
           [dependencies]                                             icra_ros_package icra_node              
           ros-rolling-icra-ros-package = { path = "                                                          
           icra_ros_package/package.xml" }                                                                    
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  39 / 64 
                                                                                                              
                                                                                                              
                                             Beyond ROS                                             
                                                                                                              
                                                                                                              
                                                                                                              
            •  pure CMake projects                                                                            
            •  Python packages                                                                                
            •  Rust crates                                                                                    
            •  git repositories                                                                               
                                                                                                              
         Research code becomes installable, shareable infrastructure.                                       
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  40 / 64 
                                                                                                              
                                                                                                              
                         Cross Platform Reproducibility                         
                                                                                                              
                                                                                                              
                                                                                                              
            •  Same repository                                                                                
            •  Same lockfile                                                                                  
            •  Same command                                                                                   
            •  Different machine                                                                              
            •  Different OS - note: no root required!                                                         
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  41 / 64 
                                                                                                              
                                                                                                              
                         Cross Platform Reproducibility                         
                                                                                                              
                                                                                                              
                                                                                                              
            •  Same repository                                                                                
            •  Same lockfile                                                                                  
            •  Same command                                                                                   
            •  Different machine                                                                              
            •  Different OS - note: no root required!                                                         
                                                                                                              
         ██ macOS → Linux → HPC                                                                               
                                                                                                              
                                                                                                              
                                # Add other platforms                                                         
                                pixi workspace platform add linux-64 win-64                                   
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  42 / 64 
                                                                                                              
                                                                                                              
                         Cross Platform Reproducibility                         
                                                                                                              
                                                                                                              
                                                                                                              
            •  Same repository                                                                                
            •  Same lockfile                                                                                  
            •  Same command                                                                                   
            •  Different machine                                                                              
            •  Different OS - note: no root required!                                                         
                                                                                                              
         ██ macOS → Linux → HPC                                                                               
                                                                                                              
                                                                                                              
                                # Add other platforms                                                         
                                pixi workspace platform add linux-64 win-64                                   
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                              # Copy this demo to Linux/HPC via ssh/scp                                       
                              # Runs ssh/scp only when ICRA_REMOTE_HOST is set                                
                              python scripts/remote_demo.py prepare                                           
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  43 / 64 
                                                                                                              
                                                                                                              
                      # Optional presenter remote: run the same Pixi task on Linux/HPC                        
                      # Prints each remote command before executing it                                        
                      python scripts/remote_demo.py run                                                       
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  44 / 64 
                                                                                                              
                                                                                                              
                                  Case Study: VSLAM-Lab                                  
                                                                                                              
                                                                                                              
                                                                                                              
         Large-scale visual SLAM framework for benchmarking, composability, reproducibility, and easy         
         onboarding.                                                                                          
                                                                                                              
         ▓▓▓ Before 😬                                                                                         
                                                                                                              
                                                                                                              
           README.md                                                                                          
                                                                                                              
           1. Install ROS, ...                                                                                
           2. Build OpenCV, ...                                                                               
           3. Download models                                                                                 
           4. Download datasets                                                                               
           5. Configure CUDA                                                                                  
           6. Build dependencies                                                                              
           7. Pray                                                                                            
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  45 / 64 
                                                                                                              
                                                                                                              
                                  Case Study: VSLAM-Lab                                  
                                                                                                              
                                                                                                              
                                                                                                              
         Large-scale visual SLAM framework for benchmarking, composability, reproducibility, and easy         
         onboarding.                                                                                          
                                                                                                              
         ▓▓▓ Before 😬                                      ▓▓▓ After ✨                                        
                                                                                                              
                                                                                                              
           README.md                                         git clone                                        
                                                             https://github.com/VSLAM-LAB/VSLAM-LAB           
           1. Install ROS, ...                               .git > /dev/null 2>&1                            
           2. Build OpenCV, ...                              pixi run -m ./VSLAM-LAB/pixi.toml demo           
           3. Download models                                orbslam2 eth table_3 mono                        
           4. Download datasets                                                                               
           5. Configure CUDA                                                                                  
           6. Build dependencies                                                                              
           7. Pray                                                                                            
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  46 / 64 
                                                                                                              
                                                                                                              
                                  Case Study: VSLAM-Lab                                  
                                                                                                              
                                                                                                              
                                                                                                              
         Large-scale visual SLAM framework for benchmarking, composability, reproducibility, and easy         
         onboarding.                                                                                          
                                                                                                              
         ▓▓▓ Before 😬                                      ▓▓▓ After ✨                                        
                                                                                                              
                                                                                                              
           README.md                                         git clone                                        
                                                             https://github.com/VSLAM-LAB/VSLAM-LAB           
           1. Install ROS, ...                               .git > /dev/null 2>&1                            
           2. Build OpenCV, ...                              pixi run -m ./VSLAM-LAB/pixi.toml demo           
           3. Download models                                orbslam2 eth table_3 mono                        
           4. Download datasets                                                                               
           5. Configure CUDA                                                                                  
           6. Build dependencies                                                                              
           7. Pray                                                                                            
                                                                                                              
                                                                                                              
                                                                                                              
         Multi-page setup instructions become executable workflows!                                         
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  47 / 64 
                                                                                                              
                                                                                                              
                              Why Pixi for Robotics? ⚙️                              
                                                                                                              
                                                                                                              
                                                                                                              
         Built-in project feature │ Pixi │ Conda     │ Pip │ Poetry │ uv                                      
         ─────────────────────────┼──────┼───────────┼─────┼────────┼───                                      
         Installs Python          │ ✅   │ ✅        │ ❌  │ ❌     │ ✅                                           
         Native libraries         │ ✅   │ ✅        │ ❌  │ ❌     │ ❌                                           
         Lockfiles                │ ✅   │ via tools │ ❌  │ ✅     │ ✅                                          
         Task runner              │ ✅   │ ❌        │ ❌  │ ❌     │ ❌                                           
         Workspace management     │ ✅   │ ❌        │ ❌  │ ✅     │ ✅                                           
         Fast solver              │ ✅   │ slower    │ n/a │ ❌     │ ✅                                         
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  48 / 64 
                                                                                                              
                                                                                                              
                              Why Pixi for Robotics? ⚙️                              
                                                                                                              
                                                                                                              
                                                                                                              
         Built-in project feature │ Pixi │ Conda     │ Pip │ Poetry │ uv                                      
         ─────────────────────────┼──────┼───────────┼─────┼────────┼───                                      
         Installs Python          │ ✅   │ ✅        │ ❌  │ ❌     │ ✅                                           
         Native libraries         │ ✅   │ ✅        │ ❌  │ ❌     │ ❌                                           
         Lockfiles                │ ✅   │ via tools │ ❌  │ ✅     │ ✅                                          
         Task runner              │ ✅   │ ❌        │ ❌  │ ❌     │ ❌                                           
         Workspace management     │ ✅   │ ❌        │ ❌  │ ✅     │ ✅                                           
         Fast solver              │ ✅   │ slower    │ n/a │ ❌     │ ✅                                         
                                                                                                              
         The point is not one feature.                                                                      
                                                                                                              
         The point is having the right combination for robotics.                                            
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  49 / 64 
                                                                                                              
                                                                                                              
                                     Why Not Docker? 🧱                                       
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Containers are excellent for                                                                     
                                                                                                              
            •  deployment                                                                                     
            •  cloud workflows                                                                                
            •  CI/CD                                                                                          
            •  reproducible services                                                                          
            •  production isolation                                                                           
                                                                                                              
                                                                                                              
           Dockerfile                                                                                         
           apt-get                                                                                            
           pip install                                                                                        
           CUDA setup                                                                                         
           X11 forwarding                                                                                     
           volume mounts                                                                                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  50 / 64 
                                                                                                              
                                                                                                              
                                     Why Not Docker? 🧱                                       
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Containers are excellent for                  ▓▓▓ But robotics research often needs              
                                                                                                              
            •  deployment                                     •  native GUI applications                      
            •  cloud workflows                                •  low-friction hardware access                 
            •  CI/CD                                          •  host networking and shared memory            
            •  reproducible services                             behavior                                     
            •  production isolation                           •  ROS + ML composability                       
                                                              •  rapid iteration across repositories          
                                                              •  cross-platform desktop workflows             
           Dockerfile                                                                                         
           apt-get                                                                                            
           pip install                                       pixi.toml                                        
           CUDA setup                                        pixi.lock                                        
           X11 forwarding                                    pixi run start                                   
           volume mounts                                                                                      
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  51 / 64 
                                                                                                              
                                                                                                              
                                     Why Not Docker? 🧱                                       
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Containers are excellent for                  ▓▓▓ But robotics research often needs              
                                                                                                              
            •  deployment                                     •  native GUI applications                      
            •  cloud workflows                                •  low-friction hardware access                 
            •  CI/CD                                          •  host networking and shared memory            
            •  reproducible services                             behavior                                     
            •  production isolation                           •  ROS + ML composability                       
                                                              •  rapid iteration across repositories          
                                                              •  cross-platform desktop workflows             
           Dockerfile                                                                                         
           apt-get                                                                                            
           pip install                                       pixi.toml                                        
           CUDA setup                                        pixi.lock                                        
           X11 forwarding                                    pixi run start                                   
           volume mounts                                                                                      
                                                                                                              
                                                                                                              
                                                                                                              
         ▓▓▓ Our goal                                                                                         
                                                                                                              
         Native, reproducible workflows with minimal setup friction.                                          
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  52 / 64 
                                                                                                              
                                                                                                              
                             Limitations and Trade-offs                             
                                                                                                              
                                                                                                              
                                                                                                              
         Reproducible does not mean effortless. It means the effort is captured instead of                    
         rediscovered.                                                                                        
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  53 / 64 
                                                                                                              
                                                                                                              
                             Limitations and Trade-offs                             
                                                                                                              
                                                                                                              
                                                                                                              
         Reproducible does not mean effortless. It means the effort is captured instead of                    
         rediscovered.                                                                                        
                                                                                                              
            1. Some robotics software is still Linux-first. Drivers, GUIs, middleware, and hardware           
               access need testing.                                                                           
            2. Packaging moves work earlier. Old libraries and unusual builds likely need patches             
               (our RoboStack builds have 100s!).                                                             
            3. Pixi is one layer. Docker, HPC modules, and embedded toolchains still matter.                  
            4. Lockfiles capture complexity. They do not make complex systems simple.                         
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  54 / 64 
                                                                                                              
                                                                                                              
                             Limitations and Trade-offs                             
                                                                                                              
                                                                                                              
                                                                                                              
         Reproducible does not mean effortless. It means the effort is captured instead of                    
         rediscovered.                                                                                        
                                                                                                              
            1. Some robotics software is still Linux-first. Drivers, GUIs, middleware, and hardware           
               access need testing.                                                                           
            2. Packaging moves work earlier. Old libraries and unusual builds likely need patches             
               (our RoboStack builds have 100s!).                                                             
            3. Pixi is one layer. Docker, HPC modules, and embedded toolchains still matter.                  
            4. Lockfiles capture complexity. They do not make complex systems simple.                         
                                                                                                              
         The win is not zero setup.                                                                         
         The win is setup you can inspect, share, and rerun.                                                
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  55 / 64 
                                                                                                              
                                                                                                              
                                                Teasers                                                
                                                                                                              
                                                                                                              
                                                                                                              
            1. Browser-native ROS via ROS2WASM (https://ros2wasm.dev/)                                        
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  56 / 64 
                                                                                                              
                                                                                                              
                                                Teasers                                                
                                                                                                              
                                                                                                              
                                                                                                              
            1. Browser-native ROS via ROS2WASM (https://ros2wasm.dev/)                                        
                                                                                                              
            2. Pack environments for another machine: pixi pack                                               
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  57 / 64 
                                                                                                              
                                                                                                              
                                                Teasers                                                
                                                                                                              
                                                                                                              
                                                                                                              
            1. Browser-native ROS via ROS2WASM (https://ros2wasm.dev/)                                        
                                                                                                              
            2. Pack environments for another machine: pixi pack                                               
                                                                                                              
            3. Cross-platform CI (https://github.com/ruben-arts/ros-example)                                  
                                                                                                              
                                                                                                              
                               jobs:                                                                          
                                 strategy:                                                                    
                                   matrix:                                                                    
                                     os: [ubuntu, windows, macos]                                             
                                 steps:                                                                       
                                   - name: Setup Pixi and install environment                                 
                                     uses: prefix-dev/setup-pixi                                              
                                                                                                              
                                   - name: Run ROS node                                                       
                                     run: pixi run ros2 pkg list                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  58 / 64 
                                                                                                              
                                                                                                              
                                                Teasers                                                
                                                                                                              
                                                                                                              
                                                                                                              
            1. Browser-native ROS via ROS2WASM (https://ros2wasm.dev/)                                        
                                                                                                              
            2. Pack environments for another machine: pixi pack                                               
                                                                                                              
            3. Cross-platform CI (https://github.com/ruben-arts/ros-example)                                  
                                                                                                              
                                                                                                              
                               jobs:                                                                          
                                 strategy:                                                                    
                                   matrix:                                                                    
                                     os: [ubuntu, windows, macos]                                             
                                 steps:                                                                       
                                   - name: Setup Pixi and install environment                                 
                                     uses: prefix-dev/setup-pixi                                              
                                                                                                              
                                   - name: Run ROS node                                                       
                                     run: pixi run ros2 pkg list                                              
                                                                                                              
                                                                                                              
            4. Package missing dependencies (if it blocks your research, it blocks someone else's             
               research, too!): rattler-build generate-recipe pypi some-package                               
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  59 / 64 
                                                                                                              
                                                                                                              
                                                Teasers                                                
                                                                                                              
                                                                                                              
                                                                                                              
            1. Browser-native ROS via ROS2WASM (https://ros2wasm.dev/)                                        
                                                                                                              
            2. Pack environments for another machine: pixi pack                                               
                                                                                                              
            3. Cross-platform CI (https://github.com/ruben-arts/ros-example)                                  
                                                                                                              
                                                                                                              
                               jobs:                                                                          
                                 strategy:                                                                    
                                   matrix:                                                                    
                                     os: [ubuntu, windows, macos]                                             
                                 steps:                                                                       
                                   - name: Setup Pixi and install environment                                 
                                     uses: prefix-dev/setup-pixi                                              
                                                                                                              
                                   - name: Run ROS node                                                       
                                     run: pixi run ros2 pkg list                                              
                                                                                                              
                                                                                                              
            4. Package missing dependencies (if it blocks your research, it blocks someone else's             
               research, too!): rattler-build generate-recipe pypi some-package                               
                                                                                                              
            5. Package AI/ML models as versioned, cached dependencies:                                        
               https://prefix.dev/blog/packaging-ai-ml-models-as-conda-packages                               
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  60 / 64 
                                                                                                              
                                                                                                              
                                           Key Insights                                           
                                                                                                              
                                                                                                              
                                                                                                              
            1. Environments are part of the method.                                                           
                                                                                                              
            2. Tasks and lockfiles make projects runnable.                                                    
                                                                                                              
            3. Packaging turns local code into shared infrastructure.                                         
                                                                                                              
            4. Research software is part of the contribution.                                                 
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  61 / 64 
                                                                                                              
                                                                                                              
                                           Key Insights                                           
                                                                                                              
                                                                                                              
                                                                                                              
            1. Environments are part of the method.                                                           
                                                                                                              
            2. Tasks and lockfiles make projects runnable.                                                    
                                                                                                              
            3. Packaging turns local code into shared infrastructure.                                         
                                                                                                              
            4. Research software is part of the contribution.                                                 
                                                                                                              
                                                                                                              
         Build systems that others can run, trust, extend, and build upon.                                  
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  62 / 64 
                                                                                                              
                                                                                                              
                                           Key Insights                                           
                                                                                                              
                                                                                                              
                                                                                                              
            1. Environments are part of the method.                                                           
                                                                                                              
            2. Tasks and lockfiles make projects runnable.                                                    
                                                                                                              
            3. Packaging turns local code into shared infrastructure.                                         
                                                                                                              
            4. Research software is part of the contribution.                                                 
                                                                                                              
                                                                                                              
         Build systems that others can run, trust, extend, and build upon.                                  
                                                                                                              
         ▓▓▓ Thank you                                                                                        
                                                                                                              
         Tobias.Fischer@qut.edu.au & Peter.Corke@qut.edu.au                                                   
                                                                                                              
         QUT Centre for Robotics                                                                              
                                                                                                              
         Thanks to the prefix.dev team for creating Pixi, Silvio Traversaro, Alejandro Fontan,                
         Nicolas Marticorena, Margaux Edwards, my co-authors, open-source contributors, and the               
         Australian Research Council.                                                                         
                                                                                                              
         ██ Questions?                                                                                        
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  63 / 64 
                                                                                                              
                                                                                                              
                                   References and Links                                   
                                                                                                              
                                                                                                              
                                                                                                              
         pixi.sh (https://pixi.sh)                                                                      
                                                                                                              
         A RoboStack Tutorial: Using the Robot Operating System Alongside the Conda and Jupyter         
               Data Science Ecosystems (https://doi.org/10.1109/MRA.2021.3128367), IEEE Robotics &            
               Automation Magazine, vol. 29, no. 2, June 2022                                                 
                                                                                                              
         Pixi: Unified Software Development and Distribution for Robotics and AI (                      
               https://arxiv.org/abs/2511.04827), arXiv:2511.04827                                            
                                                                                                              
         ROS2WASM: Bringing the Robot Operating System to the Web (                                     
               https://doi.org/10.1109/ICRA55743.2025.11127821), IEEE International Conference on             
               Robotics and Automation (ICRA) 2025                                                            
                                                                                                              
         VSLAM-LAB: A Comprehensive Framework for Visual SLAM Methods and Datasets (                    
               https://arxiv.org/abs/2504.04457), IEEE/RSJ International Conference on Intelligent            
               Robots and Systems (IROS) 2025                                                                 
                                                                                                              
         rattler.build (https://rattler.build)                                                          
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
 Tobias Fischer & Peter Corke: From Research Code to Running Systems                                  64 / 64