Error running service on Funmap

Hi,

I have a Stretch RE2 and am currently on the dev/noetic branch. I was running into an issue where Funmap was throwing an error saying that there was no connection between ‘map’ and ‘base_link’ frames. I’ve linked the error below. Particularly, I am trying to make a service call to the align with surface method in Funmap. Was wondering if anyone was privy to any solutions on remedying this. Thanks.

Traceback (most recent call last):
File “replication_controller.py”, line 287, in
node.main()
File “replication_controller.py”, line 280, in main
self.tableCommand()
File “replication_controller.py”, line 87, in tableCommand
self.align_to_surface()
File “replication_controller.py”, line 82, in align_to_surface
trigger_result = self.trigger_align_with_nearest_cliff_service(trigger_request)
File “/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py”, line 442, in call
return self.call(*args, **kwds)
File “/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py”, line 523, in call
responses = transport.receive_once()
File “/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py”, line 742, in receive_once
p.read_messages(b, msg_queue, sock)
File “/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py”, line 360, in read_messages
self._read_ok_byte(b, sock)
File “/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py”, line 343, in _read_ok_byte
raise ServiceException(“service [%s] responded with an error: %s”%(self.resolved_name, str))
rospy.service.ServiceException: service [/funmap/trigger_align_with_nearest_cliff] responded with an error: b"error processing request: Could not find a connection between ‘map’ and ‘base_link’ because they are not part of the same tree.Tf has two or more unconnected trees."

Hey @nwagwu, I can take a look at the align to surface method to see whether it works for me. I haven’t run it in a while, so I’ll let you know how it goes running it on my robot. Have you tried using rqt_tf_tree to see if the map to base_link path is in the TF tree?

Hello @nwagwu,

I apologize for the delayed response to this thread. Are you still facing this error?

I tried recreating this issue on a Stretch RE1 but was unsuccessful while simply using the stretch_funmap mapping.launch file. However, this issue is indicative of a missing odom frame which is likely stemming from a failed rplidar launch or a missing laser_scan_matcher node. Please ensure that the /laser_scan_matcher_node and /lidar_node are present when you do a rosnode list.

If the above is in order, it would be helpful to check that the RPlidar is functioning as expected by executing the following command:

stretch_rplidar_jog.py --health

this should return a message that reads

[INFO] [rplidar]: Asking for health
('Good', 0)
[INFO] [rplidar]: Stoping motor

Please let me know how it goes.

Best,
Chintan Desai

Hello @nwagwu,

Please let me know if this issue is resolved or if you would like further assistance with it.

Best,
Chintan