diff --git a/scripts/dev/start-ros-receiver.sh b/scripts/dev/start-ros-receiver.sh index 2c17850..4c28c51 100755 --- a/scripts/dev/start-ros-receiver.sh +++ b/scripts/dev/start-ros-receiver.sh @@ -17,14 +17,26 @@ source_with_nounset_off "/opt/ros/${ROS_DISTRO}/setup.bash" cd "${ROS_CONTROL_PY_DIR}" source_with_nounset_off "install/setup.bash" -exec ros2 launch udp_teleop_bridge robot_udp_receiver.launch.py \ - "transport:=${ROBOT_RECEIVER_TRANSPORT}" \ - "server_addr:=${ROBOT_RECEIVER_SERVER_ADDR}" \ - "relay_via:=${ROBOT_RECEIVER_RELAY_VIA}" \ - "peer_id:=${ROBOT_RECEIVER_PEER_ID}" \ - "expected_sender:=${ROBOT_RECEIVER_EXPECTED_SENDER}" \ - "local_socket_path:=${ROBOT_RECEIVER_LOCAL_SOCKET_PATH}" \ - "output_topic:=${ROBOT_RECEIVER_OUTPUT_TOPIC}" \ - "frame_id:=${ROBOT_RECEIVER_FRAME_ID}" \ - "watchdog_timeout:=${ROBOT_RECEIVER_WATCHDOG_TIMEOUT}" \ +launch_args=( + "transport:=${ROBOT_RECEIVER_TRANSPORT}" + "peer_id:=${ROBOT_RECEIVER_PEER_ID}" + "local_socket_path:=${ROBOT_RECEIVER_LOCAL_SOCKET_PATH}" + "output_topic:=${ROBOT_RECEIVER_OUTPUT_TOPIC}" + "frame_id:=${ROBOT_RECEIVER_FRAME_ID}" + "watchdog_timeout:=${ROBOT_RECEIVER_WATCHDOG_TIMEOUT}" "publish_rate_hz:=${ROBOT_RECEIVER_PUBLISH_RATE_HZ}" +) + +if [[ -n "${ROBOT_RECEIVER_SERVER_ADDR}" ]]; then + launch_args+=("server_addr:=${ROBOT_RECEIVER_SERVER_ADDR}") +fi + +if [[ -n "${ROBOT_RECEIVER_RELAY_VIA}" ]]; then + launch_args+=("relay_via:=${ROBOT_RECEIVER_RELAY_VIA}") +fi + +if [[ -n "${ROBOT_RECEIVER_EXPECTED_SENDER}" ]]; then + launch_args+=("expected_sender:=${ROBOT_RECEIVER_EXPECTED_SENDER}") +fi + +exec ros2 launch udp_teleop_bridge robot_udp_receiver.launch.py "${launch_args[@]}"