Pinned Project Overview Post

Project Overview

Introduction There have been numerous researches conducted for the development of algorithms that can be used for environment exploration an...

Thursday, August 24, 2023

[Post :06] This is my new approach

 I came up with a new approach to exploring the environment without having a leader. Still, the agents will calculate the amount of room they have to move around, but instead of comparing with all the agents in the communication range to find the one who has more freedom, only the value of immediate agents will be compared. If one of them has a higher value, the agent will start following that agent. If not, the agent will calculate the next position to move on its own.

In this approach, there will be no leader who is going to guide or command all other agents. As a matter of fact, the swarm will split into several groups and wander in the environment on their own. Wait what?, Split?. Doesn't that break the swarm apart?. Yeah. Even I had the same question. But in swarm robotics, it's not about how close they are going to be when moving. It's about how they communicate and how they behave on their own. So it is possible not to have a clump of agents at all. Check out this link my supervisor sent me after sending him my previous approach.

The next update is that instead of doing the simulation in 'Webots', I'm doing it on a software named NetLogo. Here is the link to NetLogo home page. Check this link to see a page about flocking simulation using NetLogo (which is also sent to me by my supervisor).

Anyway, This is my new approach to searching for a target in an unknown environment.









Now that this approach has been approved by my supervisor, it is time to implement this using NetLogo. I will post more updates on NetLogo implementation progress as well.

Thursday, August 17, 2023

[Post :05] Here's what I did wrong

After going through many articles I started working on the algorithm itself. I thought of all the steps the swarm agents have to take and even came up with a flow chart to make it easier to understand. Then I showed it to my supervisor to get his opinion. He pointed out what went wrong in my approach. Before pointing out my mistake, I will show you my approach and the flow chart I came up with. (Try to figure out what is wrong here. I'll mention it at the end).











It looks good right?.... right? (no?. 😐 )

Did you spot the issue? (If so you are better than me)

The problem is ....... the "LEADER". There should not be a leader in a swarm. I mean come on. How could I miss that (Somehow I did. duh.). The whole point of swarm robotics is not to have a leader.

Source: https://knowyourmeme.com/memes/my-goodness-why-didnt-i-think-of-that

But let me tell you why I thought this was okay. In this approach, the leader changes all the time. It's not a permanent role. Even in 2 consecutive moves of the swarm, the leader might be two different agents. So I thought this is fine because the role is temporary and anybody can become a leader.

But at the end of the day, the swarm has had a leader at every point in time. So... yeah. I have to redo everything.

Friday, August 11, 2023

[Post :04] Specifications and constraints of the algorithm

First of all, I need to lay out the specifications and constraints to be considered during the development of the algorithm. 

Here is the list of specifications.

  • Agents can communicate only with other agents within a limited local communication range
  • Agents use Infrared emitters and receivers for the communication
  • Agents do not globally localize. Only local localization based on odometry and laser scan matching to have a sense of orientation when moving from one location to another
  • The swarm should be capable of detecting static and dynamic targets

Here is the list of constraints.

  • The environment will be unknown to agents
  • No centralized communication
  • No computationally heavy calculations
  • Limited communication range and bandwidth
In addition to these, some other limitations and features might be introduced in the future during the development. If so, They will be available in the final report which I will post on this blog as the final post.

The next step is to start building the algorithm itself. Of course, I won't be able to finalize all the steps in one go. There will be several iterations to get to the final list of activities in the algorithm. Starting from the next post, I'll create and post the flow charts that I come up with and the problems or required changes in them. By doing so the thought process of the development and the progress of the algorithm can be tracked.