# Source this before running robot nodes on the Pi: source ~/robot-env.sh # - ROS Jazzy, then the overlay workspaces (camera_ros built against the fork; hermes_* packages) # - the Raspberry Pi libcamera fork ahead of ROS's own copy (same soname, but ROS's crashes in the # Pi image plugin: see CONTEXT.md) # - ~/venv's site-packages first: Blinka/Adafruit for the display, OpenCV 4.10 for YuNet # - a fixed ROS domain (42), discovery on this machine only. ROS never leaves the robot: DDS has # no authentication and carries the camera and recognised names, so the firewall drops its ports # on every interface but loopback. hermes_mcp is the only bridge to the outside world. source /opt/ros/jazzy/setup.bash [ -f "$HOME/camera_ws/install/setup.bash" ] && source "$HOME/camera_ws/install/setup.bash" [ -f "$HOME/ros_ws/install/setup.bash" ] && source "$HOME/ros_ws/install/setup.bash" export LD_LIBRARY_PATH="/opt/libcamera-rpi/lib/aarch64-linux-gnu:${LD_LIBRARY_PATH:-}" export PYTHONPATH="$HOME/venv/lib/python3.12/site-packages:${PYTHONPATH:-}" export ROS_DOMAIN_ID="${ROS_DOMAIN_ID:-42}" # ROS's own setup script exports SUBNET, so this must be assigned, not defaulted export ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST