Asked — Edited

Better Navigator Obstacle Avoidance.

Hi,

I am currently using a Roomba, an RPLidar A1, and an Odyssey X86J4105 computer as my robot platform. When I utilize the Better Navigator in Synthiam ARC, the mapping and navigation is highly accurate. However, I've noticed that when a new obstacle is introduced into the navigation path, the robot does not recalculate a new route to avoid it. Is there a specific setting or configuration that I need to adjust to enable dynamic path recalculation in response to new obstacles?

Thanks.


Related Hardware Roomba
Related Control The Better Navigator

ARC Pro

Upgrade to ARC Pro

Become a Synthiam ARC Pro subscriber to unleash the power of easy and powerful robot programming

PRO
Canada
#1  

To enable dynamic path recalculation in response to new obstacles with The Better Navigator in Synthiam ARC, you need to ensure that your setup is correctly configured to handle real-time obstacle detection and path planning. Here are some steps and settings you can check and adjust:

  1. Ensure Proper Sensor Configuration:

    • Make sure your RPLidar A1 is correctly set up and providing real-time obstacle data to the Navigation Messaging System (NMS). This is crucial for detecting new obstacles.
  2. Pause Navigation Settings:

    • In The Better Navigator's configuration, navigate to the Config - Navigation tab.
    • Check the Pause Navigation Distance setting. This setting determines the distance at which the robot will pause navigation when an obstacle is detected. Ensure this is set to a reasonable value that allows the robot to detect obstacles in time.
    • Adjust the Pause Navigation Degrees to specify the range of detection. A wider range will allow the robot to detect obstacles from more angles.
  3. Enable Dynamic Path Recalculation:

    • Ensure that the Enable Dynamic Turning option is checked in the Config - Movement tab. This allows the robot to adjust its path dynamically.
    • Set appropriate values for Dynamic Min Max Speed and Dynamic Turn Degrees to ensure smooth and responsive turning when obstacles are detected.
  4. Scripts for Obstacle Handling:

    • Utilize the Pause script in the Config - Scripts tab. This script can be used to handle what the robot should do when an obstacle is detected and navigation is paused. You can add logic here to attempt a new path or notify the user.
  5. Check Sensor Data:

    • Ensure that the RPLidar A1 is providing accurate and timely data. You can verify this by checking the sensor data in real-time to see if obstacles are being detected as expected.
  6. Test and Adjust:

    • Test the robot in a controlled environment with known obstacles to see how it reacts. Adjust the settings as needed based on the robot's performance.

By ensuring these settings and configurations are correctly set, your robot should be able to dynamically recalculate its path in response to new obstacles. If you continue to experience issues, consider reviewing the sensor data and ensuring that all components are functioning as expected. If you need further assistance, feel free to ask!


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
PRO
Synthiam
#2  

There’s a setting I think for that. Check the settings of the better navigator robot skill. It recalculates the path every X scans or something.

PRO
Synthiam
#3  

This setting. I’m not sure if there’s other stuff to enable. I’m not near a computer to check atm

User-inserted image

PRO
Synthiam
#5  

There’s a lot of configuration thats unique to an application for this kind of navigation. Everything from computing speed to movement speed can affect various parameters. Path planning is something that you don’t want recalculated too often but at the same time not too rarely. There’s a middle ground for all the settings.

the only advice I’ve noticed is slower robots means more accurate navigation. As onboard computers get more powerful, I think we’ll see speed improvements. Not all our robots can be equipped with several gpus:D

PRO
Portugal
#6  

I would like to know when and how many times the Lidar data is sent to NMS and to the better navigator.

Did notice that the RPLidar plugin refreches the map almost instantly and detects any changes to the map. In comparrison the Better Navigator map display does not, even when moving. It would be nice to have an option to choose the refresh rate of data transfer beween the Lidar, NMS and the better navigator.

PRO
Synthiam
#7   — Edited

The Lidar sends its data to the NMS, which sends it to the better navigator. The NMS is the communication layer between sensors and navigators. There are absolutely zero skipped frames, as every frame from the Lidar (or any level 3 sensor) is sent to the NMS, which is sent to the navigator.

User-inserted image

Sometimes, the navigator does not update its display because of how SLAM works. It requires several scans to ensure an object has been detected by removing false positives. SLAM is a significantly complicated system, and the one implemented in The Better Navigator is Hector Slam, one of the most reliable algorithms.

Watch my video to see how the system works when all connected - as what you're doing. You will see how the better navigator updates the path planning as objects are in the way. However, you may also need to determine how high the Lidar is from the ground because it can only see objects directly parallel to the laser. Lastly, ensure the Lidar is mounted flat and level; otherwise, a small degree of difference will end up being several inches offset a few feet from the origin.

PRO
Synthiam
#8  

Oh hey - are you using the roomba's NMS option as well? I would disable the roomba NMS and use the Fake NMS from the lidar. You should not use both.

To clarify... the Roomba will submit NMS pose positions. The Lidar can fake the NMS pose positions. Either can be enabled or disabled. They should not both be enabled. Only one should be enabled. Either use Roomba NMS or Lidar fake pose. I would recommend using Lidar fake pose over the roomba NMS.

  1. check fake pose in lidar robot skill configuration
  2. uncheck NMS option in roomba robot skill configuration
PRO
Portugal
#9  

I dont use roombas NMS. It is to unstable. Will play around some more. Thank you @DJ.