Darwinbots Forum
Bots and Simulations => DNA - General => Topic started by: MrMound on April 18, 2005, 12:35:51 AM
-
I was wondering if theis would be considered a multibot :blink:
-
I'm none too sure. Technically anytime you let the ties harden the bot's a multibot. I think we need some sort of firmer rule distinguishing a bot using ties in some manner to feed and a bot that delibratly ties to family inorder to form a shape or perform some action(50% sharing, cost reduction, etc.). I think the MB league already has some rules about what constitutes a MB.
Just checked, it says the bot is not allowed to feed while in SB form. Now it's anyone's guess on wether or not that includes a bot using unhardened/hardened ties to feed, but not tied to another family member, is a MB or not. :(
By all rights every strictly share feeder/TF(and SF when tied) would have to be included as a MB.
Endy B)
-
I was wondering if this would be considered a multibot :blink:
I would say no, it should be tied to a member of the same species before it can feed, but perhaps the rules need some clarification
-
I would say no also.
A multibot must have some kind of formalized structure to really be considered an MB.
That is not to say that a mat of tied bots all sharing with each other could not be considered an MB though.
The definition is a little loose admittedly. It wil need to be formalized by the new MB moderator. :D
-
thanks for the imformation, but how would I get it to take a shape every time? :)
-
You can use *.fixang and *.fixlen to permanantly fix the angle and length of a tie, then you need a series of genes to instruct the bot on how to form a multibot, this can be quite complicated depending on the number of bots involved and the shape. Do you have a specific shape in mind and how many bots?
-
I was thinking maybe a simple shape for starters. a square 4 bots :)
-
:blink: okay that is about as complex as multibots have gotten so far, you sure know how to throw yourself in at the deep end. You could try taking a look at Helios it has that sort of shape. You also need to develop a way so that each cell in the multibot knows which one it is, that way you can then specify particular genes to each cell, such as turning by a set amount and firing ties etc.
-
would a line 2 bots be a lot easier :blink:
-
yes, generally the less bots the easier it is, less bots to co-ordinate and stuff, I just wouldn't recomend it as a first attempt at a multibot, but if you really want to try 4 bots, I will try and help you as much as possible
-
I think I will try a two bot line first. I have already tried more than 2 bot and I think 2 bots will be pleanty for starters :)
-
1 thing how do you get all the bots in your multi bot to go the same direction. mine die because they all try do go differant directions
-
Okay if you want both bots in a 2 cell multibot to be in the same direction, you want something like this
' Child ties to parent
cond
*.robage 0 =
*.eye5 70 >
start
1 .tie store
3 950 store
stop
' Lone bot reproduces
cond
*.numties 0 =
*.eye5 40 <
*.nrg 500 >
start
50 .repro store
2 950 store
stop
' Child aligns as LHS
cond
*950 3 =
start
1 .tienum store
314 .fixang store
240 .fixlen store
35 .stifftie store
1 950 store
stop
' Parent aligns as RHS
cond
*.multi 1 =
*950 2 =
start
1 .tienum store
-314 .fixang store
0 950 store
stop
with this you can also identify each bot as the LHS has 0 in 950 and the RHS has 1, this allows you to tailor genes to a specific bot. But with both bots facing forward you have to decide how they will turn and move.
An alternative that is common is replacing
314 .fixang store in genes 3 + 4
with
614 .fixang store
This will make it so that both bots are facing away from each other, then have one bot doing all the moving, draging the other bot behind it.
-
Check out Hexagonis (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=103)
I think it is probably the most complex consistently forming MB that has been made to date. I managed to get it to form a perfect hexagon with all the robots facing outwards.
-
One thing to always aim for is to define one robot as the "head".
Just use a custom variable or something.
def head 50
would work. Then use conditions with head to make sure that only the real head is able to move.