When trying to move to a navigation goal in FUNMAP, the robot almost always throws Obstacle detected near the front of the robot, so not starting to move forward. (and subsequently Failed to reach forward motion goal.) This is happening in a space that is almost entirely empty, and the nearest obstacle to the base of the robot is almost 3 meters away.
Is there a way to disable or turn down the obstacle detection threshold when using FUNMAP navigation? Or could this possibly be a hardware error?
(Stretch RE1, Ubuntu 20.04, ROS Noetic by the way)
Thanks
Hi @nzhao, you can disable FUNMAP’s forward motion obstacle detector by passing detect_obstacles=False to the MoveBase.forward() and MoveBase.backward() methods. So if you’re using the FUNMAP node, you can modify the file directly, or if you’re calling MoveBase in your own code, you can modify it there.
I’d also recommend creating an instance of the obstacle detector, a class called ForwardMotionObstacleDetector and investigating why you’re getting false positives in an almost entirely empty space.
Thanks!
I’ve been experiencing another separate but related issue when trying to run the SIRA hat pickup demo.
When trying to run rosservice call /grasp_off_floor/trigger_grasp_marker "{}" I get this error: Exception while adding obstacle to MHI. I suspect this has something to do with adding a virtual obstacle while obstacle detection is off? Or maybe an issue with funmap itself?
I can try git pulling stretch funmap and compiling Cython though I’m not sure that will help.
I believe they modified the FUNMAP node to add a ROS service called /funmap/trigger_add_obstacle. The exception is probably indicating that you’re missing the service. You’ll need to be using their fork of FUNMAP for sira to work correctly.