I have the following setup:
- RC car chassis which can turn, go back and forward; both the turn rate and the acceleration can be controlled smoothly
- Raspberry Pi 3
- Two cameras so that depth map can be calculated on the fly for obstacle avoidance
- Several microphones so that direction of the voice can be determined
- Intertial measurement unit to keep heading at the direction of the voice
- Several infrared distance sensors
What I want to acompilish is a robot that will drive towards me when called. Voice recognition, structure from motion and handling the IMU are not a problem for me because I've done it before. What I find really problematic is how do I actively avoid obstacles, while trying to follow the voice? I assume that I can call the robot multiple times - i.e. when it gets confused. The robot will stop when a face is recognized from one of the cameras, therefore the distance to target is initially unknown. In theory I could try to create a 3d point cloud using structure from motion and determine the robot's location within the pre-built map and use it for navigation, however as far as I know, the determination of robot location within the map is a costly and uncertain computation (especially when its initial position is unknown).
What I would like to learn is - are there some algorithms that allow the robot to stick to given heading while avoiding obstacles, but without a map? I would be very grateful for scientific papers, blog posts or simply algorithm names if there are any avalible.
I recently read about bug algorithms - especially dist bug. This sounds like most promising solution for me so far.