15 ms·
I recently had a discussion about how hard it would be to have a system inside a bus to announce the next stop. Sounds like a weekend project right? Think a bi
by systemtest 10y ago
I recently had a discussion about how hard it would be to have a system inside a bus to announce the next stop. Sounds like a weekend project right?
Think a bit further:
- Hardware needs to be resistant to harsh diesel engine vibrations
- 3G/4G connectivity
- Need a mobile data contract with local ISP
- Software needs to be able to handle network disconnections
- GPS needs to be able to pin-point at which stop the bus is currently stopped, even with bad GPS coverage in larger cities
- If the bus skips a stop because of a detour, the software should be able to detect it and announce the next stop
- The announcement should be bi-lingual for Airport busses
- The announcement should work for people with hearing aids
- Server needs to know all bus-stops
- Server needs to know different stop types, such as bus terminals, intersection stops, regular stops, hand-over stops, virtual stops
- Server needs to be able both work of a yearly bus schedule and real-time update
- Server needs to output in an understandable JSON/XML because the government subsidies demand an open-data format
- Server needs to publish data to an open-data server because of the subsidies
- Because the bus-company is sponsored by European Union money the control interface should be translated to German/French/English/Spanish
And now this weekend project takes a team of 10 engineers working for a year.
- manyxcxi 10y agoThe GPS and mobile data are overthinking it. The routes are known so simply trigger on door open/close (with some logic for denounce/etc) and cycle through. For maximal accuracy simply have an electronic beacon of any sort broadcasting an ID that corresponds to the stop and you've got it solved. And the entire data set for the route should be able to live offline onboard the bus. Changing bus/numbers routes should include the step for updating route data.
- oarsinsync 10y agoExcept that quickly becomes inaccurate if the bus driver decides to re-open the doors for an incoming passenger, or due to traffic conditions, opens the bus doors further from the stop than the beacon reaches. Or skips a stop due to road conditions.
- relate 10y ago1. Set a minimum time until next stop can be announced 2. Add a button to skip a stop
- oarsinsync 10y agoAnd then when the driver accidentally hits the button and needs to go back? Notice how we're now adding more complexity now anyway though...
- Frenchgeek 10y agoRFID like chips on bus stops too, maybe?
- Natanael_L 10y agoWhile active RFID is possible, other radio tech designed to work as beacons is more likely
- vidarh 10y agoConsider a bus stuck in traffic. It is not unusual, at least in London, for a driver to open/close the door multiple times between stops when traffic moves slowly enough, often with longer intervals in between than there usually would be between stops.
- ncallaway 10y ago> Set a minimum time until next stop can be announced This feels like a dangerous hack that will come back to bite you in any number of unexpected scenarios that probably occur frequently during an average bus driver's day.
- mkagenius 10y agoBluetooth beacon (estimote?) at stops would help.
- RealityVoid 10y agoFor an robust system I would use multiple data streams including bust status data/beacons/GPS. I've seen busses with offset stations. 3G is necessary for live ETA, if you want to get fancy. All these complications, in my view, are worth it if you want a system that works 24/7 and serves thousands of people daily. The HW and SW dev costs are acceptable, but it does need a decent team, depending on what the starting point is and the ability of the team members.
- PunchTornado 10y agochanging bus/numbers routes manually is not feasible. in complex networks this happens daily a hundred times.
- aninhumer 10y agoI'm confused, are you suggesting there are places where bus routes change hundreds of times a day? I can't imagine many reasons a route would have to change on short notice (accident blocking a road?), and in those situations the announcements not quite being right would not be the end of the world.
- jeromegv 10y agoBuses are often assigned to a route and then leave that route unexpectedly in the middle of the day to service another route (accident, other bus broke down, traffic, subway shutdown etc) , often not starting at the beginning of that route.
- aninhumer 10y agoOh right, that makes more sense. I guess you could just keep a record of all the different routes in every bus though? And skip to the right spot manually as needed.
- walshemj 10y agoThen the bus changes its route number - certainly in the UK I see the drivers punching in the route details when they take over a bus.
- deleted 10y ago[deleted]
- cpitman 10y agoI've worked in transit. This is not only feasible, it is how it is done.
- 10y ago
- madeofpalk 10y ago> For maximal accuracy simply have an electronic beacon of any sort broadcasting an ID that corresponds to the stop and you've got it solved. Yeah, and now we need to install and manage thousands of beacons in bus stops in pretty hospitable conditions. Of course, GPS isnt perfect either. It tends to fail in CBD areas.
- vidarh 10y agoThis has all kind of usability issues (now you're expecting the driver to pay attention to and correct mistakes), while providing less accurate data (buss pulls away from stop, gets stuck in traffic; estimates at next stop are based on the bus having pulled away and average times; customers gets angry) and less ability to do traffic management (e.g. spacing out buses by slowing down later buses slightly) without having drivers guessing and reporting data back. > For maximal accuracy simply have an electronic beacon of any sort broadcasting an ID that corresponds to the stop and you've got it solved. That's not remotely accurate for the reason above. > And the entire data set for the route should be able to live offline onboard the bus. Changing bus/numbers routes should include the step for updating route data. It can. E.g. the old London system used odometers. But that was sufficient only for showing "next stop ..." and for reporting very rough estimates. Today it uses odometers, gps, rate gyros and turn rate sensors to be able to more accurately position the buses along a route, and they still regularly "give up" and take a bus off the schedule when traffic conditions means the uncertainty is too high.
- miguelrochefort 10y ago> And now this weekend project takes a team of 10 engineers working for a year. More like 2 guys working for a month.
- cJ0th 10y agoI'd say ~ 5 Engineers working for ~ 3.5 months (I calculated the geometric mean of the numbers both of you have given, in case you're wondering ;) )
- vidarh 10y agoGenerallly my approach if engineers disagree significantly on a timeline is to multiply the worst case estimate by a large factor, on the assumption that odds are good it means neither one has a clue what the actual complexity is if they don't manage to get to rough agreement...
- wott 10y agoAbsolutely impossible. There is hardware involved. I'd say something like 3 people for 6 months to 1 year (not all 3 being needed 100% of the time).
- solvedit 10y agoYou've just described a cellphone running apps that already exist.
- pjc50 10y agoFar more useful is the system which tells you, at the bus stop, what the ETA of the next bus(es) is. And that really does need the whole GPS+data system, along with physically robust signs. But on the other hand, that can still be done by a small company - I know there's one here in Edinburgh but I can neither remember their name nor find them in a search. You can do quite a lot with a small local company. It's global reach that's expensive, as soon as you start needing any kind of high-touch sales.
- askmike 10y agoI don't think anyone would have assumed that you can build such a system in a weekend. Half of your points assume that current transportation companies don't have any digital data about bus stops and reroutes. Anyway I haven't been in a bus that doesn't have such a system for at least for a few years (in western Europe and China).
- wolfgke 10y ago> Half of your points assume that current transportation companies don't have any digital data about bus stops and reroutes. The question is what is more work: Using the existing data that is stored in some obscure format for which you first have to write an importer/converter or just recreating the data. Add the fact that the existing data might need some cleanup/additions (e.g. times on timetable are only stored with minute precision and you want second precision for more accuracy).
- emodendroket 10y agoAlternatively, you could have the driver press a button.
- ZanyProgrammer 10y agoThis seems like a problem that has been solved many times in the Western world.
- betimsl 10y agoYou can do this with a RPi and a RFID reader. Every station would have a tag, when bus stops tag is read and your script just announces the station.
- dagw 10y agoYou generally want to make the announcement before the bus stops so that people can be ready to get off when the bus stops. Also buses don't always stop at every station on it's route so have to deal with what happens when stop is skipped.
- TheOtherHobbes 10y agoYou can certainly do it with an RPi - although you might have to keep rebooting it every hour or so. :) GPS and 3G/4G are trivial add-ons. There are stacks for mobile data. RFID doesn't have the reliable range, so that won't work as a solution. It's not really a hard problem for a competent small engineering team with a mix of embedded hardware and software skills. It's not quite a trivial problem, because there are some interesting edge cases, mostly when a bus is diverted. But there is absolutely zero rocket science required. You could hack something unreliable together in a weekend, but it would take up to six months to get all the bugs out, do the production engineering for a bullet-proof solution, standardise the installation process (if retrofitted), and so on. Double that if management is poor. :) Those last parts often get forgotten in software. Hacking something together that kind of works if you don't look at it with a visible frown is hobby coding, not engineering. Engineering is the boring work that happens after that, to build something with a quantifiable many-9s uptime that meets or exceeds a standard spec with comprehensive test cases.
- amelius 10y agoThat sounds expensive.
- egypturnash 10y agoUsually the announcement is not "we have stopped at Foo and Main". The announcement is "Next stop Foo and Main" while you're on the way to it, so you have time to sling your bag back over your shoulder, get your coat back on, and make your way towards the door. Depending on the density of stops along the route this can come anywhere from 1-7 blocks ahead of the stop. Source: I don't drive,and ride the bus a lot.
- gaius 10y agoBut nobody wants that. They want conductors back. This is not a problem with a technological solution.
- richmarr 10y ago> They want conductors back That's just faster horses though. Conductors aren't a solution to a problem in themselves, they're a means to solve a problem. So what's the actual problem? WHY do they want conductors back?
- rasz_pl 10y agoMove to China, every bus in Shenzhen has a lady conductor.
- coldtea 10y ago>- Hardware needs to be resistant to harsh diesel engine vibrations That's a non-issue. >- 3G/4G connectivity, need a mobile data contract with local ISP This is a duh! >- The announcement should be bi-lingual for Airport busses It can always not be. How would that be worse than NOT having the announcement at all? Besides what would the other language be? French, German? That would still be useless to 90% of foreign visitors...
- amelius 10y ago> Besides what would the other language be? French, German? I guess the names of the stops are untranslatable anyway :)
- Raphmedia 10y agoCanada. Here it would need to be bilingual by law.
- parthdesai 10y agoumm I travel in GO and DRT everyday. Neither have bilingual announcement. Same with Mi-way.
- Raphmedia 10y agoSorry, meant Montréal.
- deleted 10y ago[deleted]
- raverbashing 10y agoThis exists in offline versions. I think it just counts the number of stops and has some input from the driver
- Finnucane 10y agoBut, adding the wireless connections and the servers and the technical staff to code and maintain, would save the driver the labor of pressing the button. That's what technology is for.
- engineer819 10y agoA skilled engineer weighs the costs and benefits of a system before architecting it. Is it more economical to pay for constant cellular connectivity across 1,000 buses, support IT staff for when the system fails or needs upgrades, etc. or to have the guy you're already paying $15/hr press a button after each stop?
- hawski 10y agoIt could just use the open the doors button with some hysteresis for opening/closing doors few times in a row in some short time.
- Jaruzel 10y agoKISS applies here. By keeping the 'driver presses a button' interaction, the complexity is reduced by at least a factor of 5, and the TCO ends up being much less. Sometimes, a doorbell just needs to be a doorbell.
- grogenaut 10y agoSure but if I add all the above complications then I get automated bus tracking system where everyone on their phone can see where the bus is and when it's arriving, I can track and automatically detect issues with traffic, with the bus, with the driver. Sure you can do the simple announce but the even easier one is to just have the driver talk over a mic, he needs one anyway. There I one upp'd you on KISS. But there is a reason not to KISS.
- ljf 10y agoOr... microphone and speakers for the driver to announce the stop. If you'd like visual indicator too (accessibility FTW!) plenty of low tech and/or cheap solutions that would meet the requirements.
- creshal 10y ago> Or... microphone and speakers for the driver to announce the stop. Breaks down quickly if you need bi- or tri-lingual announcements, which is the norm in many popular tourist destinations.
- clarkmoody 10y agoLaminated card in the cab with phonetic spellings for the other languages. Aside: I'm impressed with the amount of bike-shedding for this one. Though I'm part of the problem, too :-)
- ljf 10y agoHa, indeed. Just thought of another - even lower tech - a printed list of all stops, visible to passengers on the bus, then clear signage for each stop. If the bus stops every stop by default, then this is simpler, if not then the passenger needs to be able to see this on the approach, with another time to signal that they want to get off. Can this get even lower tech?
- ljf 10y agoReally? Either it's a location 'Piccadilly Circus' or its a place type 'Airport' - any of those can easily be learnt by the driver. Or writen on a printed sheet that they can easily see. Don't jump to making it more complex than it needs to be.
- creshal 10y agoI see you have never tried it in practice. Train conductors in Austria/Czechia/Germany – which tend to be more trained and less busy than bus drivers – tend to stumble around for half a minute for each unintelligibly badly pronounced sentence. Even the pre-recorded messages in buses are of so bad quality that tourists prefer asking other passengers rather than trying to figure them out.
- orf 10y agoAll London buses do this. I don't think you need a server, 3G/4G connectivity or even GPS really. You might be over thinking it.
- masklinn 10y agoOn the other hand, the overthinking in question (which is probably true for bare-bones next stop indication) provides the base for my personal bus bug: know if/when a bus is reaching a stop from outside the bus in question, especially with geofencing, in order to know whether the bus I want to take is running early/late/not.
- orf 10y agoThey actually do this as well (and many have live updating signs), so the buses do have GPS linked to a server of some kind. It's normally absolutely fine, but on the couple of occasions for me where it broke it seems that the server doesn't conduct the bus in any way and kind of hopes the bus is on the right route. That's all speculation though.
- masklinn 10y ago> They actually do this as well (and many have live updating signs) I don't know about London, I've seen some systems where the stops had "live-updating signs" but only provided the time of the next official passage. And while I wasn't clear, my bug is not just stop signage but phone access as well (that's most useful when e.g. it's raining cats and dogs and you want to avoid waiting in the rain at uncovered bus stops)
- deecewan 10y agoThere's a standard by Google for transit timings, and Translink, the public transport authority in my state, outputs these times. They're live. Apps like 'Transit' also (accurately) show the current GPS location of the bus as it approaches, and it updated every minute (I believe)
- 10y ago
- reacweb 10y agoOne of my "fights" at work is prototypes. A prototype can be build very quickly (cheaply) and can exhibit many problems that may be overseen by the "heavy design process". A prototype is a marvelous way to get feedback from users very early in the projects.
- jobigoud 10y agoThe only downside to prototypes is that then the managers don't understand why the actual project takes so much longer and end up asking to just go with the prototype for production.
- madeofpalk 10y agoGet better managers. I've never had this problem.
- luxpir 10y agoCheck out APRS[0]. Solves most of the above already by centralizing data-collection. Would just need a beacon on every vehicle. No need for internet connectivity. Receiving stations can be scaled up as required. Logging of course not an issue as can be logged on-board and/or externally. The on-board display can overlay a map and call the next stop based on proximity. Not a weekend project, I'll admit, but many existing moving parts available off the shelf. Hams play with this stuff... a lot. [0] https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_Sys...
- rasz_pl 10y agoYou are massively overthinking the problem. The very first system of this type I saw didnt even have a microcontroller. Just an eprom for driving LED array, bunch of TTL logic and two inputs. One linked with 'open doors' switch, the other going to undo switch. And it worked fine for couple of years in a >million city.
- deleted 10y ago[deleted]
- b34r 10y agoComplicated, but not that bad... just need to optimize for the worst case and the best case will purr along happily. Some sort of near-field beacon on the stops might be more durable than relying on GPS, but it won't help with missed stops.