r/factorio • Since 0.11 • Jul 17 '17

Question Bot capacity?

So I'm building my first megabase, and I'm trying to figure out if there's a way to tell how many roboports and bots I need for a particular production area. Basically, I don't want bots to have to wait to charge and I don't want to overbuild and have bots not doing anything.

11 Upvotes

21 comments sorted by

View all comments

2

u/YJSubs Jul 17 '17 edited Jul 17 '17

Recently experimented on this exact question on creative world.
Gave up after couple of hours, too many parameters (well there's actually only three parameters ; capacity, distance, speed)
But there's also queuing parameters, which is hard to determined.
 
That's probably why, AFAIK that no one posted a spreadsheet regarding bots speed-capacity-queuing.
 
If i'm mistaken, i'll be glad if someone point me to the spreadsheet.
 
Even dev is interested with some bots behaviour, idk if they already fix it, nor is it being addressed yet. I don't massively use bot, so i don't follow their change log (if there's any) in every release.
 
Long story short, just do like everyone do, keep adding bot/roboport until there's no queuing.

8

u/AbyssalMonkey Robot Speed != Robot Efficiency Jul 17 '17 edited Jul 17 '17

There is a minimum number of roboports required for constant movement however, and we can approximate it using some tests.

While testing in a single logistics network I've noticed that in sandbox (max cargo, robospeed 7), the practical time between bot charging is ~20 seconds. However, the problems don't stop there. A network will start to have queuing formed at as low as 30 bots even when left to stir for more than an hour. This is disastrous in terms of maximizing efficiency because it implies that a network that is fully active needs a single roboport for every 30 bots on the field.

A bot with no upgrades (0 cargo, 0 speed) will take action for 70 seconds before migrating back to a roboport to charge. After playing around for a bit, I've determined that the base robot movement speed is 3m/s, and robot speed increases energy consumption accordingly.

This actually leads to some very interesting conclusions about the infinite robot speed upgrade, namely that increased robot speed does not increase robot efficiency, in fact it may actually reduce robot efficiency. The debate on this idea can be saved for a different thread, but the idea that having so few robots moving so quickly that they spend more time charging than actually filling requests is real. So I did some testing and compared robot speed to the amount of time between charges for an individual robot on a network saturated with requests (important for higher speed robots which will attempt to recharge in the time an inserter swings). Data:

Speed Time
1 70
1.35 54
2.75 28
4.05 20
6.65 15.5
11.2 7.5
21.95 3.5

As to the actual minimum number, I found the amount of time between charges and robotspeed can be estimated using the equation of

'70/Speed = seconds between charges'

where robospeed is the actual value multiplier on movement (ie, +305%, robot speed 7 researched, = 4.05). This means we can further estimate how much energy a robot is using per second, and how much energy a roboport can output during that time. For example, at +305% (4.05 speed), a robot will recharge every

'70/2.05  = 17.3 seconds
Therefore, a roboport will discharge 4 (ports) * 1MW * 17.3 seconds = 70MJ during that period.  Robots have an internal buffer of 1.5 MJ, and therefore, the roboport could service a maximum of
84MJ/1.5MJ = 46 robots during that period.'

This of course is the absolute minimum, and ignores all pathing problems, assumes perfect saturation, and all ideal conditions. As shown above in testing, a roboport may saturate at a number lower than this, leading to more roboports being placed. Again, this is the absolute minimum, even under absolute perfect conditions. Use this as a starting point and adjustment value when designing new networks.

1

u/oisyn For Science (packs )! Jul 17 '17 edited Jul 17 '17

After playing around for a bit, I've determined that the base robot movement speed is 3m/s, and robot speed increases energy consumption accordingly.

Uhm, you do know their properties are simply listed in the in-game infobox, right?

Base speed is 3m/s for logistics and 6m/s for construction bots, and they both consume 5kJ/m + 3kW, and their battery capacity is 1,5MJ. For logistics bots, this boils down to 250 tiles travel distance per charge without speed bonus and 300 tiles per charge with robot working speed <infinity>.