Posted by @ptientho:
Hi,
I’m running a system to use RMF with Zenoh router.
My system is
- Ubuntu 22.04 LTS
- ROS2 Humble
- Open RMF (Humble distro)
- RMF_IMPLEMENTATION = rmw_cyclonedds_cpp
My goal is to use RMF with Nav2 in Humble, and I already implemented and tested RobotAPI and RobotCommandHandle and they work fine with Zenoh (able to send navigation goal in the api). Once I tested with RMF system by running the common launch file, including
- rmf_traffic_schedule
- building_map_server
- etc.
I got error which is related to zenoh - I assumed - on the last line.
[rmf_traffic_schedule-1] 2025-05-08 20:25:08.862 [RTPS_READER_HISTORY Error] Change payload size of '40' bytes is larger than the history payload size of '27' bytes and cannot be resized. -> Function can_change_be_added_nts
ros2 launch fastbot_rmf_sim rmf_common.launch.py
[INFO] [launch]: All log files can be found below /home/peera/.ros/log/2025-05-08-20-24-54-601315-peera-Aspire-A315-24PT-57036
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rmf_traffic_schedule-1]: process started with pid [57037]
[INFO] [rmf_traffic_blockade-2]: process started with pid [57039]
[INFO] [building_map_server-3]: process started with pid [57041]
[INFO] [fastbot_warehouse_rmf.rviz-4]: process started with pid [57043]
[INFO] [door_supervisor-5]: process started with pid [57045]
[INFO] [lift_supervisor-6]: process started with pid [57047]
[INFO] [rmf_task_dispatcher-7]: process started with pid [57050]
[rmf_task_dispatcher-7] ~Initializing Dispatcher Node~
[rmf_traffic_schedule-1] [INFO] [1746750294.849518174] [rmf_traffic_schedule_primary]: Successfully loaded logfile .rmf_schedule_node.yaml
[rmf_traffic_schedule-1] [INFO] [1746750294.869880141] [rmf_traffic_schedule_primary]: Set up heartbeat on /rmf_traffic/heartbeat with liveliness lease duration of 10000 ms and deadline of 10000 ms
[rmf_task_dispatcher-7] [INFO] [1746750294.872401121] [rmf_dispatcher_node]: Declared Time Window Param as: 2.000000 secs
[rmf_task_dispatcher-7] [INFO] [1746750294.872659897] [rmf_dispatcher_node]: Declared Terminated Tasks Max Size Param as: 100
[rmf_task_dispatcher-7] [INFO] [1746750294.872684523] [rmf_dispatcher_node]: Declared publish_active_tasks_period as: 2 secs
[rmf_task_dispatcher-7] [INFO] [1746750294.872707656] [rmf_dispatcher_node]: Use timestamp with task_id: false
[rmf_traffic_blockade-2] [INFO] [1746750294.900425836] [rmf_traffic_blockade_node]: Beginning traffic blockade node
[rmf_task_dispatcher-7] [INFO] [1746750294.955713907] [rmf_dispatcher_node]: Starting task dispatcher node
[rmf_traffic_schedule-1] [INFO] [1746750294.973901755] [rmf_traffic_schedule_primary]: Beginning traffic schedule node
[building_map_server-3] [INFO] [1746750296.017030790] [building_map_server]: loading map path: /home/peera/ros2_ws/install/andino_rmf_maps/share/andino_rmf_maps/maps/andino_office/andino_office.building.yaml
[building_map_server-3] [INFO] [1746750296.160769799] [building_map_server]: opening: /home/peera/ros2_ws/install/andino_rmf_maps/share/andino_rmf_maps/maps/andino_office/andino_office.png
[building_map_server-3] [INFO] [1746750296.170621976] [building_map_server]: read 35230 byte image
[building_map_server-3] [INFO] [1746750296.186847781] [building_map_server]: unable to generate GeoJSON for this map.
[building_map_server-3] [INFO] [1746750296.238417546] [building_map_server]: publishing map...
[building_map_server-3] [INFO] [1746750296.255193153] [building_map_server]: ready to serve map: "andino_office" Ctrl+C to exit...
[rmf_traffic_schedule-1] [INFO] [1746750296.300421459] [rmf_traffic_schedule_primary]: Registered new query [1]
[rmf_traffic_schedule-1] [INFO] [1746750296.353989453] [rmf_traffic_schedule_primary]: [ScheduleNode::update_mirrors] Sending remedial update starting from the beginning going to 5 for query 1
[rmf_traffic_schedule-1] 2025-05-08 20:25:08.862 [RTPS_READER_HISTORY Error] Change payload size of '40' bytes is larger than the history payload size of '27' bytes and cannot be resized. -> Function can_change_be_added_nts
Please confirm me if I’m correct, and guide me on how to fix this issue.
Thank you!
Chosen answer
Answer chosen by @ptientho at 2025-05-09T04:04:54Z.
Answered by @aaronchongth:
@ptientho since this is for rmf_traffic_schedule
, I believe Zenoh is not involved, since Zenoh is only used between the fleet adapter and robot. This should just be the ROS 2 network between all the RMF nodes.
Since it explicitly mentions RTPS
, I’m going to assume you’re running the default RMW implementation, which is rmw_fastrtps_cpp
, can you confirm that?
Although it works in general, we have had issues with deployments in the past on Humble using the default RMW implementation. The possible quick fix would be to use rmw_cyclonedds_cpp
. Working with multiple ROS 2 middleware implementations — ROS 2 Documentation: Humble documentation
sudo apt install ros-humble-rmw-cyclonedds-cpp -y
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# continue to run RMF
Remember to run the export command for all the terminals you intend to launch or run nodes in
if for some reason you’d like to stick to the default RMW implementation, quite unlikely it is related, but I found some folks mentioning this same error upstream, RTPS_READER_HISTORY Error · Issue #3047 · eProsima/Fast-DDS · GitHub, you can probably dig around the issues for fixes or configuration changes.