Week 15 - The 'breadcrumb' strategy



For this next post, where multiple autonomous agents collaborate to find victims, efficient navigation is paramount. One intriguing strategy employed by these robotic swarms is the "Follow Memorized Path" behavior, akin to leaving breadcrumbs to find one's way back home or the odometry of ants- path integration and dead reckoning. In this blog post, we delve into the intricacies of this behavior and its significance in the context of swarm robotics.

The 'breadcrumb' strategy demo:

Imagine a scenario where a swarm of robots is tasked with exploring an unknown environment and returning to a designated base. In this demonstration video, I showcase the mesmerizing pattern of these robots as they navigate through obstacles, communicate with each other, and seamlessly follow a memorized path back to their home base. Let's take a closer look at how this bio-inspired behavior unfolds.
 


Explanation:

The Follow Memorized Path behavior, also known as the breadcrumb strategy, is a fundamental technique employed by robots to retrace their steps and navigate back to a previously visited location. Here's a breakdown of the process:

Path Memorization: 

As the robot traverses its environment, it continuously stores its previous positions along the path it has taken. These positions serve as virtual breadcrumbs, creating a trail that the robot can follow later.

Navigation: 

When the robot needs to return to a specific location, it consults its memorized path. By sequentially moving towards each recorded position, the robot retraces its steps back to the target location.

Adaptation: 

The Follow Memorized Path behavior is not static; it adapts to changes in the environment and the robot's surroundings. If obstacles obstruct the original path, the robot dynamically adjusts its route, either by circumventing obstacles or finding alternative paths suggested by the Queen of the swarm.




Code:

HTML
      	def follow_memorized_path(self):
        
        pos, _ = self.getPose()
        if operator.lt(self.distance(pos, self.memorized_path[self.memorized_path_index]), 0.05):
            if operator.lt(self.memorized_path_index + 1, len(self.memorized_path)):
                self.memorized_path_index += 1
            else:
                self.isTargetReached = False
                self.memorized_path_index = 0
                if self.victim_found == True:
                    self.path_library.append([len(self.memorized_path), self.getConsecutivePathDist(self.memorized_path), self.memorized_path, "found", "not_investigated"])
                else:
                    self.path_library.append([len(self.memorized_path), self.getConsecutivePathDist(self.memorized_path), self.memorized_path, "failed", "not_investigated"])
                
                
                self.victim_found = False
                self.memorized_path = []
                #self.path_library = []
                self.memorized_path.append(BASE)
                self.stop()
        try:
            self.move_to_point(self.memorized_path[self.memorized_path_index], 0.05)
        except:
            pass

Conclusion of the Blog Post: 

In conclusion, the Follow Memorized Path behavior exemplifies the ingenuity and adaptability of swarm robotics systems. By leveraging the breadcrumb strategy, robots can autonomously navigate through dynamic environments, overcome obstacles, and accomplish their objectives with remarkable efficiency. As we continue to explore the realms of robotics, behaviors like these pave the way for innovative applications in fields such as search and rescue.

Comments

Popular Posts