Category talk:Perceptual Bots

From Robowiki
Jump to navigation Jump to search

Contents

Thread titleRepliesLast modified
Perceptual melee radar510:26, 12 May 2012

Perceptual melee radar

I tried building a perceptual bot a while ago. The hardest problem I found was how to make a melee radar without storing any data and without accessing getScannedRobotEvents().

A second radar event in the same tick overrides the first and the bot keeps changing targets. Didn´t find how to overcome this problem yet.

MN19:00, 11 May 2012

Not sure if this is what you are looking for, but you can use clearAllEvents() within the onScannedRobot(..) function. This clears all remaining scan events.

Wompi19:57, 11 May 2012
 

The problem is the last radar event overrides the others. With clearAllEvents() the first radar event overrides the others. In practice, both make perceptual bots change targets every tick in melee, and the performance is awful.

I was looking for something to lock onto the same target for many scans.

MN20:52, 11 May 2012
 

Hmm. Not sure if this is within the rules but you can try to combine a gunlock radar with distance. Lets say you set your radar to turn 4*360degree and the distance check to 200 if you have no target increase the distance by 200 if you turned 360degree and so on until radar is 0 or you have found a target within the distance. If you find a target within the distance you lock it with the getGunHeat() or until it leaves the current distance. Hmm, just a quick thought and not well indicated by me, but you should get the idear :).

Wompi22:15, 11 May 2012
 

With perceptual bots you have to fit all the logic inside a single scan event. So, "if you have no target" is quite hard to calculate, if not impossible, since you need to combine data from many scan events together.

The problem lies in scanning multiple bots in a single tick, resulting in many scan events, being triggered not in the order you want. Watch BotCatcher in melee and you will understand what is the problem I´m trying to solve.

Maybe I´ll try something like a width lock. The thinner the scan arc, the more likely the radar will scan the same bot, and only that bot, each tick.

MN23:07, 11 May 2012
 

Hmm, scan events are always ordered by distance (closest first) if you clear the remaining events you should end up with the closest target. Or do you need some other order for your scanned targets? By watching BotCatcher it turned out he is mostly going for the farthest target if he scan multiple opponents. I thought your goal was to find the closest target and lock it.

Wompi10:26, 12 May 2012