I’m trying to run an autonomous robot using the global map created from the gmapping codelets. When I run my code, I see my robot on the world map, on the local view, and I can move the robot using the joystick codelet. However, I don’t see a target on the map, even if I set the map waypoint manually in Sight. I realize this is kind of a vague post, but I was hoping that someone might be able to give me pointers as to where to look. The only error I ever see in the logs is this one when the code initializes:
2020-11-17 13:01:19.630 DEBUG engine/alice/backend/node_backend.cpp@325: Starting node ‘goals.pose_as_goal’
2020-11-17 13:01:19.630 DEBUG engine/alice/backend/codelet_backend.cpp@61: Starting codelet ‘goals.pose_as_goal/isaac.navigation.PoseAsGoal’ …
2020-11-17 13:01:19.630 DEBUG engine/alice/backend/codelet_backend.cpp@72: Starting codelet ‘goals.pose_as_goal/isaac.navigation.PoseAsGoal’ DONE
2020-11-17 13:01:19.630 DEBUG engine/alice/backend/codelet_backend.cpp@287: Starting job for codelet ‘goals.pose_as_goal/isaac.navigation.PoseAsGoal’
2020-11-17 13:01:19.630 DEBUG engine/alice/backend/codelet_backend.cpp@61: Starting codelet ‘goals.pose_as_goal/pose_as_goal_frame’ …
2020-11-17 13:01:19.630 ERROR packages/navigation/PoseAsGoal.cpp@47: Could not read pose ‘world’T’pose_as_goal’.
My thought on this is that the robot can’t determine where it is on the world map, so pose_as_goal is failing. However, I do see it properly positioned on the local and world map, I see the reference blue notch in front of it indicating its pose, and the lines of the lidar hits showing showing red dots where it’s hitting an obstacle and this all looks good in reference to its actual physical position in the world. Anyone have any thoughts on this?
Your thought sounds reasonable. The error there means that the codelet could not query the pose2 for “world_T_pose_as_goal” from the frame graph at the tick time and that is probably because it wasn’t published or could not be interpolated. That would seem like the robot isn’t localized yet, but that could just be an initial issue that resolved itself shortly afterwards. Do you see this error appearing again during operation? Perhaps you could share with us an image of what Sight is showing you? I’m not sure yet whether this is an issue with Sight or the target pose not getting set.
Thanks for the response. I only see the error once when I first bring the code up; even when I change the waypoint I don’t see the error again. I’ll put up a screen shot and hopefully make it clearer what I’m seeing.
Okay, here’s the image that I’m seeing in the local and global maps. I also added in my pose tree (which looks fine) and my very busy app map. One of the things I noticed is that the node navigation.localization.global_localization is always stopped. Also sometimes, but not always, I get the following error on initialization:
“2020-12-03 12:11:44.940 ERROR packages/map/WaypointMapLayer.cpp@81: Could not parse waypoints from JSON object for ‘map/waypoints’”
map/waypoints starts out as null, which is maybe why it get this. Setting the value in Sight doesn’t seem to change anything. By the way, what it the proper format for this in the .json file? I can set it to [x,y] in Sight, but doing this in the json file gives me a configuration error. Is it perhaps supposed to be quoted or something?
I was able to figure out the issue with setting the waypoint in the application .json file. I still can’t seem to get this to move. The only thing I can see that’s an issue is that node navigation.localization.global_localization never runs. I’ve looked at the application json file and I see nothing wrong with the application graph. The other issue is that I still get the error about map/waypoints if I set the waypoint to null or a tuple.
You are correct in that world_T_pose_as_goal appears to just be a random publishing issue. Sometimes I see it, sometimes not.