Windows 11 has put a big NO sign in front of anyone wanting to use Windows Subsystem For Linux (WSL 2) and ROS 2 (Robotics Operating System) in their robot, but I just found a work-around!
WSL is a great tool for running linux programs, and in Windows 11 it lets you run GUI tools out of the box. This means that anyone can easily run ROS on their Windows 11 computer.
The problem is that Windows does some funny things with routing network packets to its internal WSL 2 system, which messes up ROS 2. ROS 2 uses a type of networking called UDP (User Datagram Protocol), which lets ROS have a much more reliable network connection. This is important because when your operating a robot, some data simply should not get dropped, like the location of an obstacle. Whereas in the normal internet, if your video misses a frame, its annoying, but not going to crash anything.
By blocking UDP packets reaching WSL 2, Windows 11 prevents anyone using WSL 2 and ROS 2 from communicating with a ROS 2 robot on another computer. Which is highly frustrating!
The work-around I've found is in a tiny open source app called DDS router. It works basically like a networking wormhole, letting UDP packets in my WSL 2 system get warped into the network of my external robot.
I'm quite excited, as this is the last piece I needed to be able to use Windows 11 to drive a physical robot.
WOOOO!