GithubHelp home page GithubHelp logo

cpfa-ros's People

Contributors

akilandrews avatar antonio-griego avatar gmfricke avatar jchjones avatar jhecker avatar jjakenichol avatar jschlind411 avatar kelseygeiger avatar kristiana-rendon avatar lukey11 avatar lukey11-zz avatar manuelmeraz avatar mike-matera avatar togunyale26 avatar wfvining avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cpfa-ros's Issues

Following site fidelity correctly

The locations of site fidelity should be checked.
The site fidelity only last in current foraging round. It should be used only once.

Rovers Are Not Selecting a Phermone

When a rover switches to SearchLocationType PHEROMONE, it is expected that it will select one of the pheromones from the pheromone list. However, instead the rovers are failing to select any pheromone. Because of this, while users may see that the rostopic echo stream states that the rover is using PHEROMONES, in actuality it is using its old target location.

This error is obvious when a rover leaves the nest in PHEROMONE mode but fails to go to any actual cluster location. The robot that lays the pheromone appears to be using the correct pheromone location but is actually using its last target location.

This can be verified using a print statement after the for loop in the setPheromones function in CPFASearchController.

If rover starts searching close to the edge of the arena, goal location can be set to outside arena

After observing the rover in a travel state using a random heading, it reached the edge of the arena. We had programmed it to iterating through the CPFA state machine call through the CPFA search controller, which would eventually trigger the rover to switch to an uninformed search. I then realized that this means that the rover would inevitably switch to an uninformed search, it was just a matter of time before it switches while running into the wall. We might as well just have the rover switch to an uninformed search as soon as it hits the edge of the wall because in a sense, we are just delaying this inevitability.

After observing the rover in an uninformed search state at the edge of the arena, I noticed that it kept trying to travel into the wall. This logically means that it set a goal location outside of the wall.

Solution: As soon as the rover's current location + the search step size is equivalent to the edge of the arena, then we can just switch to uninformed search state.

Counting Resources within the Collection Zone

As the rover transitions from a travel state and starts to search near the collection zone and the blocks in the collection zone are visible to the rover and it will start to count them.

We want to avoid the rover counting the blocks in the collection zone because it will set the blocks in the center as a target location that will trigger site fidelity or even insert it as a pheromone.

The solution will be to ignore targets (april tags with a 0 ID) as resources while it's in a search state near the collection zone.

Rover collision while in a travel state

At the beginning of the simulation when all the rovers enter a travel state, if the direction that the rovers travel at leads to a collision due a vector intersection, then the rovers will trigger the obstacle avoidance handler in mobility.

If the rover happens to be in the collection zone during this case, then as soon as the rover exits continue interrupted search then it will stay stuck in the nest trying to avoid the nest.

We can solve this by having the rovers avoid traveling in a way where their velocity vectors will intersect as well as having the rovers not calculate a random heading that leads to them driving into the nest.

Stuck in Nest

While in a travel state the rover will ignore tags, meaning that if the rover is traveling and happens to be in the collection zone it can transition into a search state inside the collection zone. If the rover is a in a search state, then it stops ignoring tags , meaning that it will start to push out blocks in the collection zone and get stuck.

We need to calculate all travel paths to avoid the collection zone.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.