With harsh winters, drivers who constantly switch lanes, traffic jams and occasional crashes, the Russian capital of Moscow provides a challenging setting for testing autonomous cars.
"In Moscow, the guys behind you honk the horn even before the traffic lights turn green," says Dmitry Polishchuk, head of Yandex's driverless car project.
Polishchuk is taking me on a ride along Moscow's busy streets to show me how far the company's self-driving technology has evolved in the year and a half since it was officially announced.
Since local legislation does not allow unmanned cars on public roads, one of his colleagues, Alex, is sitting behind the wheel hoping not to have to touch it. In the past 24 hours, I've seen no fewer than three car crashes on the city's crazy roads.
It's almost noon, and the streets of Moscow are busy with cars driving close to each other, bikes, and pedestrians. Yandex's self-driving technology, installed in a Toyota Prius nicknamed Teddy, hits the road heading towards Bolshaya Pirogovskaya Street, where Mikhail Bulgakov wrote his novel The Master and Margarita.
The car is driving at a little over 40km/h, or 25mph. There are three parks nearby, and kids with kick scooters are eager to cross the street, regardless of the traffic lights.
On a computer screen that I'm not allowed to film, Polishchuk shows me how the self-driving car perceives the environment. It classifies objects such as vehicles, pedestrians or bikers using data from different kinds of sensors, video cameras and lidar -- a technology that measures the distance to targets using lasers.
Between the lidar measurements, the car uses odometry, calculating how much the wheels have turned and in which direction, Polishchuk says. Yandex overlaps this information on its detailed maps of the city, which contain all the lanes and restrictions such as speed limits.
"We have something that's called localization," he says.
"The number one task: the car should know where it is located on the map with centimeter precision, and it should know the direction [in which it's heading]."
Then, it should understand what's around, detecting other vehicles, pedestrians, traffic lights, road marking, and road signs, and comparing them with the objects on the preloaded map.
"Next is prediction: once you know what's around you, you should know what happens next," Polishchuk says. The following stage is planning: the car decides what to do and executes the plan.
"[In traffic] the hardest thing to know is intention, because no one is actually following the rules, everyone is breaking the traffic rules a bit," Polishchuk tells me.
In this neighborhood of Moscow, one cannot drive without getting close to other vehicles. Sometimes, passing cars miss us by no more than 15cm or 20cm, six to eight inches.
"The car is not scared of getting close to other cars," the Yandex engineer said. When it encounters pedestrians, it's programmed to stop.
When the laser beam fails to work, the system uses the Global Navigation Satellite System, but GNSS is not very reliable in the Russian capital.
"In Moscow, there are certain areas where they spoof the satellite signal. We're not afraid of that, we know the place," Polishchuk says.
He's especially proud about the map his team created, which can be used regardless of changes in the environment: "We had a snow map, when we tested [the car] in winter, and when we drove after the snow melted, it was still very reliable."
Conditions like snow and rain are difficult for the lidar because there's a lot of noise, but Yandex uses algorithms to clean it up. On the race track located on the outskirts of Moscow, the car reaches up to 70km/h, or 44mph.
Video: Yandex shows off it self-driving car in winter tests. Source: Yandex/YouTube
A girl just in front of us begins to cross the street but stops after taking a step and goes back. The car halts, waiting for her decision. Other drivers in Moscow would have gone straight ahead.
"We cannot break the traffic rules," Polishchuk says. During one of the tests, annoyed that the automobile was following every rule, someone told Polishchuk: "Your car drives like my mother."
At a junction, drivers have to negotiate who goes first. The engineer says it's a difficult scenario for an autonomous car because it involves human interaction: "A human driver waves his hand or shakes his head. You should wait for someone to let you go."
For now, Yandex plans to address the local market, where it believes it could do a better job than international giants such as Waymo. The Russian engineers think they are can create better maps and have a superior understanding of local conditions.
These advantages should allow them to "be better in terms of disengagements than the competitors," Polishchuk says. However, the company's long-term goal is to build technology that is competitive anywhere in the world.
The Yandex self-driving car disengaged twice during our 20-minute ride through the city, obliging our human driver Alex to intervene. He switched lanes once, and applied the brakes the second time, although the car looked like it was slowing down.
However, Polishchuk is not worried. Numbers are not that relevant, he says, since automotive companies don't report disengagements accurately.
He knows he and his 100 colleagues from the self-driving project still have to catch up with Waymo, but he's not too troubled about it. He says they've accomplished a lot in the past year.
He dreams that one day, there will be a fleet of autonomous cars in Moscow built on top of Yandex.taxi, the joint-venture with Uber. By then, passengers will no longer get cold feet when it comes to driverless vehicles.
To achieve a level 5 driverless car, when the steering wheel is optional, the Moscow-based company is constantly looking for talented people, and education is a big part of its HR strategy.
Yandex has developed masters programs and courses with Russian universities, aiming to offer real-life experiences to developers. Many classes take place inside the company's offices, but some of the courses are available online on Coursera.
Graduates get to work on different kinds of projects, including the autonomous car and the new Yandex.Station, a device resembling the Amazon Echo. It was announced on May 29 during the company's annual conference for the Russian market, YAC 2018.
The Yandex.Station is priced at 9,990 rubles (€140, $160), and it can play songs, take vocal commands even from toddlers, and stream videos and movies on TV sets it connects to using an HDMI cable.
One of the things Yandex says it plans to do differently is pay more attention to privacy than its competitors. Once pushed, the Station's Mute button cuts the power to all of the seven microphones.
"We don't constantly listen to people and we don't share their data with anyone," Mikhail Parakhin, CTO at Yandex, said after the conference. "We are extremely paranoid about sharing data."
When it comes to offering information to the Russian government, Andrey Sebrant, chief marketing officer at Yandex, tells me the company is listed on NASDAQ and can't afford to make mistakes that would alienate its customers.
"We are very careful that we cooperate with the state extremely within our local legal framework," he says.
"If someone demonstrates that we have some under-the-table cooperation with state institutions, that's the end of us as a business, because it's a question of trust."
Andrada Fiscutean traveled to Moscow as a guest of Yandex.