I would like this time to write an entry about a self-reflection concerning public transport within cities. I like to write my ideas thinking that they might inspire someone and help somehow to build or help developing intelligent cities.

The adjective “intelligent”, when used in front of “city”, might refer to those futuristic cities we all have in mind where citizens can interact with city environment and have a great experience. An intelligent city should help and response all kinds of citizens requests and citizens, from locals to tourists, from young generation to old people. This is quite a big challenge since we all have a different technological background and culture, but we engineers should aim to make technology available for everybody.

One of the most important backbones in a city is definitely public transport because it is used by a wide range of different people everyday, that’s the reason why I want to dedicate this entry to it. From now on, I will discuss as well as give some ideas and explaining personal opinions about different elements within public transport service, but I will divide this entry into two parts. The first part is something very general, with no technical details, just the ideas and advantages. The second part will be an approach of developing a little bit this ideas (both technologically and in real life environments, with real disadvantages).

General Ideas

Buses and trams

First element: Geolocation.
What to implement: send geolocation through the Internet every certain period of time (i.e. every second).
1st Idea: If we know where the buses and trams are all the time, many applications might be developed to allow users to know where the vehicles are. This will allow users to know whether they can take the vehicle.
2nd Idea: If we know where the buses/trams and the bus stops/tram stops are, it is possible to make some statistics about how late vehicles are. This is a quite interesting element in a city where certain buses (because of the line) are usually late.

Public transport in London

General Idea: When users have all this information available, the reliability of the company increases. People may trust more, will feel more comfortable and the company will try to educate itself to be more punctual. Additionally, in my opinion, some people may choose to move within the city using this transport and the environment would benefit (as well as company’s incomes).

Second element: Weight sensor.
What to implement: a weight sensor that tries to guess how many people there are inside the bus, and send this information through the Internet.
General Idea: this would definitely benefit end users. Sometimes, when we want to go somewhere, we have many choices because of different bus/tram lines and normally, the user is more comfortable when a transport is not full. In my opinion, if the user can choose between a 90% full bus and a 20% full bus, he will choose the last option, and therefore the user experience will be more satisfying.

Third element: Bus timing display
What to implement: a simple display which will show the minutes left for each bus to arrive.
General Idea: This idea, bind with the first element, approachs to make it available for everybody since not all citizens have a smartphone (even though, it an easier way to know when the bus will arrive). This display is actually in some cities nowadays.


First element: Geolocation.
What to implement: it’s the same as in the previous section, but in case of taxis there is an additional advantage: panic button.
General Idea: In some places taxis might be robbed and a panic button which calls the police and send geolocation information when pressed is very helpful.

Second element: Information about taxi’s/taxi driver’s characteristics.
What to implement: some information about each taxi available on the Internet.
General Idea: Not all taxis are the similar since some of them are specific for disabled people and even some of them are bigger than normal ones (7 seats). Depending on person, one may decide which taxi is more appropiate for his/her needs. Another interesting information detail which is importan is the availability, since a user is only interested in those taxis which are available.

Traditionally this “information” and “geolocation” is being solved by calling to the taxi company and asking for a taxi telling what you need, but I think that people will use more taxi services if it looks more dynamic and available, and they feel closer to the service.

Public Bicycles

First element: Availability counter.
What to implement: a counter (available in the Internet) which tells empty places and available bikes.

Public bike service in Zaragoza

General Idea: It depends on the system the city has to borrow public bikes, but in some places, bikes are directly attached to a special parking place, and a the machine is setting them free when an authenticated user identify himself/herself by an RFID card. This machine would be able to count empty places and available bikes and send that information constantly to the Internet, so this way the user can be sure he will have a bike in the origin of his route and an empty place at the end (even if this information is varying all the time). I think this way the use of bikes will be encouraged.

Second element: QR code for each bike.
What to implement: a QR code sticker in the bike.
General Idea: When users are dissatisfied with a service, they can complain and be answered, but in this case, if something happens to you, there is no information or people that you can complain at. A QR code would allow you to complain about one bike (after authenticated) in case the bike is broken or something is wrong with it. This would enhance the service because is a mutual help between the company and the user. The user feels more satisfied and safe and the company is able to repair the problem as soon as possible.

Developing Ideas

Implementing something on a public service

Words are easy to say/write but actually, implementing those ideas might be problematic from money’s point of view. Cities hire public companies to make some services available to the citizens such as the public transport. They make a contract for some years and that company will be able to do it during that period. However, I think in that contract a section where the company says that it provides last [tech] available facilities to the citizens must be included. This will make the business more competitive and the company will have to make an effort on this.

From the company’s point of view, they might think that if something works is not necessary to fix it, but this thought is quite old and some investment must be done in technology for citizen’s well-being. Anyway, I would be agree even if the city gives some money to the company (less than the 40%) to implement this technology, because it will benefit the citizens, people who use everyday this service.

Geolocation API

Before detailing how could this API be, I would like to say that is not even necessary for the company to develop the application for end users, because if they release freely the API, I’m sure some programmer will do it, but I think it would be better if the own company make the program.

Following API’s description will have a similar structure to the Twitter’s one.

Example 1: Bus details

Request to: webpage.com/api/buses.json. This will retrieve buses details.

  • bus_id: It will retrieve information about this bus
  • bus_stop_id: It will retrieve information about all buses which stop in this bus stop.
  • line_id: It will retrieve information about all buses which belong to this bus line.
  • street: It will retrieve information about all buses which go through this street

Example: webpage.com/api/buses.json?bus_stop_id=3146
[bus_id: 123, line_id: 12, type: 3, disabled_people_facilities: true, bus_stops: {1242,3234,652,1532}]
[bus_id: 236, line_id: 3, type: 1, disabled_people_facilities: true, bus_stops: {536,266,3123,999}]

If the funny weight sensor is implemented, it may be also here.

Example 2: Line details

Request to: webpage.com/api/lines.json. This will retrieve information about a line.

  • bus_stop_id: It will retrieve information about all bus lines whose stop id is given.
  • line_id: It will retrieve information about all bus lines which belong to this line.
  • street: It will retrieve information about all bus lines which go through this street

Example: webpage.com/api/lines.json?street=fake street
[line_id: 2, bus_stops: {1242,3234,652,1532}, bus_id: {123, 432, 12, 432, 532}]
[line_id: 3, bus_stops: {536,266,3123,999}, bus_id: {55, 23, 56, 75}]

More information needed: information about bus stops

Weight sensor

Since I have no idea about mechanics I don’t really know where and how to implement a weight sensor, but I guess it cannot be so difficult since nowadays there are all kind of sensors inside the vehicles.

The information about the weight may be sent to the server, where depending on the type of bus it sent it, it may apply one or another formula, because different types of buses may weight differently. It’s not a difficult calculation: current_weight – normal_weight (when empty) / 70 (average kg per person) and then we have an estimation.

About taxis

An application where users could see where the taxis are would be awesome.
Feature 1: Taxi driver has always control over his visibility, and when he picks somebody up, the visibility will be turned off.
Feature 2: A user can see all available taxis around him, and he can request a taxi to come to his place (got by GPS). The program will randomly warn a near taxi, and the taxi is suppose to go there. If the taxi driver doesn’t want, he can reject the request pressing a button.
Feature 3: When requesting a taxi, the user may include useful information such as seats or some special needs (disabled people).

About bikes

Implementing a counter is not so difficult to do since all bikes are directly attached/connected to the mechanism which set them free or lock them. A QR code is a simple link, which may lead the user to a webpage where he/she can write about encountered problems regarding to the bike in a form.