Posted by @cwrx777:
Hi,
We are using humble python fleet adapter.
We have more than 30 robots in a fleet, but for some (8) robots in the fleet, the _updater_inserter didn’t get called.
We have confirmed for all affected robots, the StartSet
can be computed, charger waypoints are correct, and RobotCommandHandle
object is initialized.
For the affected robots, Added a robot named [] with participant ID []
didn’t get printed out. We didnt see any other error.
In rmf_traffic_schedule
node, i can see Registered participant [] named [] owned by []
for all robots in the fleet, including the affected robots.
What could be the possible cause of this issue?
Is it safe to call add_robot
again for the same robot, using the existing (intialized) RobotCommandHandle
again if _updater_inserter
is not called after some timeout?
Update 21 Apr 2025:
The ready_callback of async_make_participant didnt get called for the affected robots.
Question added on 23 Apr 2025:
what is the chance the following code here in Registration register_participant
will enter an infinite loop and never exit:
while (future.wait_for(100ms) != std::future_status::ready)
{
if (!rclcpp::ok(context))
{
// *INDENT-OFF*
throw std::runtime_error(
"[rmf_traffic_ros2::schedule::Writer] Tearing down while waiting "
"for a schedule participant to finish registering");
// *INDENT-ON*
}
//TODO: add timeout checking and throw error?
}
Edited by @cwrx777 at 2025-04-23T09:19:45Z