# 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. DDS has no authentication and the # camera and recognised names travel on it: set ROBOT_ROS_DISCOVERY=SUBNET only to # reach it from a host over the USB link (the firewall drops DDS ports on every other interface) 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 a ${VAR:-default} on the ROS variable would never apply export ROS_AUTOMATIC_DISCOVERY_RANGE="${ROBOT_ROS_DISCOVERY:-LOCALHOST}"