Darwinbots Forum
Code center => Bugs and fixes => Bug reports => Topic started by: Tilthanseco on June 06, 2012, 12:10:32 AM
-
For some reason, I can't get regular ties to form when the bot's vision is disabled. In version 2.45.01
Attached is a save featuring different tie forming bots, none of them will form permanent ties.
-
Are they really linked to vision?
-
That's because the robot must "see" the robot it is trying to tie to. example: If you have six robots around you, you will only tie to one.
i.e. Yes ikke they are.
-
I thought it was a bug because a bot does not necessary need to know there is a bot in front of it to tie to it. I found this while testing my blind bot against the bots posted here: http://forum.darwinbots.com/index.php/topic,3549.0.html (http://forum.darwinbots.com/index.php/topic,3549.0.html) (The blind bot challenge).
The 2 blind bots here work by firing ties randomly and sharing energy. They don't make any reference to eyes so they should be able to work with vision disabled.
In fact, most of the ref values can be used with touch now and still work with vision disabled.
This limitation or bug makes it more difficult for blind bots to evolve with vision disabled because they can't be multy bots or use tie feeding.
Therefore I think it is a bug and should not be by design.
P.S. The ties I am referring to are the ties initiated by bots, not the birth tie. The birth tie does indeed form with vision disabled.
-
That's because the robot must "see" the robot it is trying to tie to. example: If you have six robots around you, you will only tie to one.
i.e. Yes ikke they are.
maybe a fix could be:
While there is a birth tie and vision is disabled, the robot could see it's parent. What do people think?
Okay, this explains why my feeble attempts at creating a multibot didn't work
-
Ok, The Tie is created using lastopp, how about set lastopp to parent on robot birth (will work with or w/o vision disable, the idea is this value will get overwritten when a robot gets a visual hit)?
Or, Forgetaboutit?
-
This lastopp business actually means that a bot is never truly blind when using ties. It always has the default vision system (although for a blind bot we choose not to use it) which sets lastopp. Right?
-
This lastopp business actually means that a bot is never truly blind when using ties.
Yea, that's my idea.
It always has the default vision
The vision system is more complex, but, for tie purposes it only uses "lastopp."
I guess "lastopp" is the last robot that enters the line of vision.
Currently, the way it works is:
If a robot is blind lastopp is always 'nothing'
What I want to implement is when the robot reproduces lastopp is set to parent.
-
Numsgil, it should be one little line of code, should I implement this or not?
-
So disclaimer: I haven't looked at the code and don't know what's going on in there.
That said, it doesn't sound like setting lastopp to the parent will help. Or rather, it will only help creating ties to the parent. But you probably want to be able to make ties to any arbitrary bot.
Probably, if there's no lastopp set, you can just do a query in front of the bot to find the closest bot that the current bot is reasonable pointed to, and tie to that.
-
Or rather, it will only help creating ties to the parent.
Well I guess that's what Tilthanseco wanted to do in the first place. I am only suggesting this because it is very easy to implement and debug. (There is even a possibility it won't even work, I only looked at the logic once) If the robot sees something other then its parent, lastopp will be set to that robot.
-
That's true, but lastopp carries a lot of extra information (and logic) along with it. Would it get cleared the cycle after a robot is born? I could see an argument to be made for a bot to have a pretty full compliment of sensory information about its parent the cycle after it's born. But I'd be careful about side-effects. This is exactly the sort of innocuous change that can turn out to have dramatic and far reaching consequences. (Things like everyone else's birth tie removal genes no longer working, etc.)
-
You are saying lastopp will continuously transmit data on the robot even if the robot is on the other side of the map?
Ok, how about: " If lastopp is nothing , use ParentID to tie? "
-
You are saying lastopp will continuously transmit data on the robot even if the robot is on the other side of the map?
Maybe. I haven't looked at the code, but I know it assumes lastopp is tied to vision. So I'd be careful violating that assumption is all.
Ok, how about: " If lastopp is nothing , use ParentID to tie? "
Well you'd only want to do that during the first cycle of the bot's life, though. But yeah, that's probably the least obtrusive way to fix this exact issue.
-
sorry, still no tie feeding :(
you can make a multibot though :)
Here Tilthanseco, try this:
Just unzip and run, If you already have darwinbots installed just replace the .exe file ;)
-
In fact, most of the ref values can be used with touch now and still work with vision disabled.
Interesting, how does that work? (no wonder my 'bug fix' was never officially approved, I love how I get Caught-up in things and miss the important posts)