Obstacle avoidance using LiDAR
Hi,
I have right now a quadcopter with LiDAR
attached to it in Gazebo
simulator. I've written some PID
controllers generating attitude of quadcopter and throttle of motors to move it to given location (simple form of autopilot).
Now what I want to achieve is instead of moving directly towards my goal location use data from LiDAR
, detect if there're some obstacles along the way and generate another heading so that the quadcopter can avoid those obstacles (form of a local planner). When there's no longer any obstacle along the way, fly directly towards goal location.
I don't want a global planner since I have no information about the environment yet and also I want the quadcopter to be able to avoid obstacles in dynamic environment. I know it's used mostly with combination of a global planner and a local one, but for now I just need the local one for dynamic obstacle avoidance.
For now it can be described as a 2D problem since I'm holding the same altitude. But I'm quite lost when to even begin. It seems that there's a lot of going on. Obstacle detection and further clustering, obstacle shape representation, collision detection between quadcopter and obstacles along the way. And I just need to point at some direction to begin with. And perhaps some simple algorithms to implement would be great as well.
Thank you for any advice.
Edit: I found out Smooth nearness diagram navigation (SND navigation)
which is form of a reactive navigation algorithm using only data from LiDAR and doesn't require any collision checks or other things which I mentioned earlier and it looks like it just adjusts the heading of robot to be able to move through free areas.
Should I use this algorithm or is there something similar to this? Or is it even a good solution to my problem described above?