ROS2 standard tooling can do quite a bit with traditional non or low ML algorithms. Mine is an outdoor focused sentry bot designed to roam my property and detect interlopers. It's a 4 wheel skid steer base (pioneer 3 AT) with a surround sonar array, 3D look-forward hemisphere lidar and a depth camera on the arm's end effector.
It uses Nav2 with robot_localization working from odometry+imu+rtk gps outdoors with very good accuracy when I have a good rtk fix. I have a different nav stack for indoor operations and am working on auto-detecting transitions between the environments.
I also have an AI voice interface which uses the Gemini API - so it relies on-cloud resources. This interface is called By Your Command - and is my attempt to simultaneously support AI based goal generation simultaneously with general chat capability. But this only works when I have a low latency internet connection. My high quality rtk solution also requires internet - my usual source of correction data comes from rtk2go - though I could switch to a local base station over LORA with a bit more work.
I'm just using an Intel NUC box as my onboard compute. This is a problem - I'm already near the limit with standard navigation and object avoidance. The minute I delve into more complex point cloud or depth frame processing (safe ground modelling, face recognition, etc) my update rate starts to suffer significantly.