Pedometr v mobilních aplikacích: co to je, jak funguje a kde se používá

Autor: IT Sectr Publikováno: 2026-03-25 Doba čtení: 8 min

Pedometr (krokoměr) v mobilních aplikacích je softwarově-hardwarový mechanismus pro počítání kroků uživatele na základě dat z akcelerometru a gyroskopu. Moderní chytré telefony používají algoritmy strojového učení v kombinaci se senzory pro přesné určování chůze, běhu a dalších druhů fyzické aktivity. Podle údajů Apple HealthKit Documentation, 2025 dosahuje přesnost počítání kroků na moderních zařízeních při normální chůzi 95–97%.

Hlavní body

  • Pedometr (krokoměr) — funkce pro počítání kroků na základě analýzy dat z akcelerometru, gyroskopu a algoritmů strojového učení.
  • Moderní algoritmy krokoměru dokáží rozlišovat chůzi, běh a chůzi do schodů, automaticky určující typ aktivity uživatele.
  • Hlavním senzorem pro počítání kroků je akcelerometr, který zaznamenává zrychlení ve třech osách při každém kroku.
  • Na iOS vývojáři získávají přístup ke krokoměru přes CMPedometer z Core Motion, na Androidu — přes Sensor API s TYPE_STEP_COUNTER.
  • Přesnost počítání kroků závisí na umístění zařízení: krokoměr pracuje nejpřesněji při nošení chytrého telefonu v kapse u kalhot nebo na opasku.

Co je krokoměr v mobilní aplikaci?

Krokoměr (pedometr) v mobilních aplikacích je funkce, která určuje počet kroků uživatele na základě dat z vestavěných pohybových senzorů chytrého telefonu. Na rozdíl od mechanických krokoměrů z minulosti používá mobilní pedometr mikro-elektromechanické senzory (MEMS) a algoritmy digitálního zpracování signálu pro přesné počítání lokomocí. Moderní implementace nejen počítají kroky, ale také klasifikují aktivitu: chůzi, běh, chůzi do schodů.

Integrace krokoměru do mobilních zařízení byla umožněna díky příchodu koprocesoru pohybu M7 v iPhone 5s v roce 2013, který nepřetržitě sbíral data ze senzorů s minimální spotřebou energie. Dnes mají všechna moderní chytrá telefony hardwarovou podporu pro počítání kroků na úrovni senzorového hubu — vyhrazeného čipu zpracovávajícího data z inerciálních senzorů bez probouzení hlavního procesoru.

Jak funguje počítání kroků na chytrém telefonu

Počítání kroků na chytrém telefonu je založeno na analýze signálů akcelerometru, který měří zrychlení zařízení ve třech kolmých osách (X, Y, Z). Při chůzi vytváří každý krok charakteristický vzor zrychlení: nejprve vrchol nahoru při zvedání nohy, poté vrchol dolů při dopadu. Frekvence kroků (kadence) je 100–130 kroků/min pro chůzi a 150–180 kroků/min pro běh, s amplitudou zrychlení 2–6 m/s².

Zpracování signálu akcelerometru

Syrový signál z akcelerometru obsahuje šum a vysokofrekvenční rušení, proto je prvním krokem zpracování dolní propust (low-pass filter) s mezní frekvencí 3–5 Hz. Po filtraci se vypočítá vektor zrychlení: a = sqrt(x² + y² + z²), který extrahuje zrychlení související s pohybem nezávisle na orientaci zařízení. Poté algoritmus detekuje lokální maxima v signálu — každé maximum odpovídá jednomu kroku.

Pro snižení falešných poplachů (např. při třesení v dopravě) se uplatňují další kritéria: minimální amplituda kroku (obvykle >1,2 m/s²), minimální interval mezi kroky (300–400 ms pro chůzi) a kontrola periodicity signálu pomocí autokorelace. Pokud jsou časové intervaly mezi vrcholy nepravidelné, je sekvence označena jako náhodné pohyby a není počítána jako kroky.

Detekce kroků přes akcelerometr

Základní algoritmus detekce kroků používá metodu prahové detekce: systém hledá okamžiky, kdy signál akcelerometru překročí nastavený práh a poté se vrátí na klidovou úroveň. Každá taková událost je považována za potenciální krok. Existují dva přístupy: detekce vrcholů (peak detection) a průchod nulou (zero-crossing). Detekce vrcholů zaznamenává maxima signálu, zatímco zero-crossing — okamžiky průchodu signálu průměrnou hodnotou, což méně závisí na amplitudě kroku.

Prahové metody a adaptivní algoritmy

Moderní algoritmy počítání kroků používají adaptivní práh, který se automaticky přizpůsobuje stylu chůze uživatele. Systém analyzuje rozptyl signálu za poslední 2–3 sekundy a vypočítává dynamický práh jako směrodatnou odchylku (RMS) vynásobenou koeficientem. To umožňuje správně počítat kroky jak při pomalé procházce, tak při energickém běhu bez křížové kalibrace mezi typy aktivit.

Algoritmy počítání kroků a strojové učení

Moderní implementace krokoměru používají nejen detekci vrcholů, ale také strojové učení pro klasifikaci vzorců pohybu. Modely neuronových sítí jsou trénovány na tisících hodin nahrávek skutečných pohybů z různých scénářů: chůze po rovném povrchu, chůze do schodů, běh, cestování dopravními prostředky. Vstupními charakteristikami jsou časové řady akcelerometru a gyroskopu a výstupem je pravděpodobnost, že aktuální segment signálu odpovídá lidské lokomoci.

Modely neuronových sítí pro klasifikaci aktivity

Podle údajů výzkumu Google Activity Recognition dosahují modely založené na konvolučních neuronových sítích (CNN) přesnosti rozpoznávání chůze 98% na testovacích datových sadách. Na zařízeních Apple se používá Core ML s modelem Activity Classification, trénovaným na datech více než 100 tisíc dobrovolníků. Optimalizované modely pracují přímo na zařízení (on-device inference), což zajišťuje okamžité zpracování a zachování soukromí uživatele.

swift
import CoreMotion

class PedometerObserver {
    private let pedometer = CMPedometer()

    func startTracking() {
        guard CMPedometer.isStepCountingAvailable() else { return }
        
        pedometer.startUpdates(from: Date()) { data, error in
            guard let data = data else { return }
            
            let steps = data.numberOfSteps.intValue
            let distance = data.distance?.doubleValue
            let floorsAscended = data.floorsAscended?.intValue
            
            // Aktualizace UI s počtem kroků
            DispatchQueue.main.async {
                // self.stepsLabel.text = "\(steps) kroků"
            }
        }
    }

    func stopTracking() {
        pedometer.stopUpdates()
    }
}

Krokoměr na iOS a Androidu: API a možnosti

Na iOS se pro přístup ke krokoměru používá třída CMPedometer z frameworku Core Motion. CMPedometer poskytuje nejen počet kroků, ale také ušlou vzdálenost, počet pater (výstupů), tempo chůze a čas aktivity. Data jsou dostupná jak v reálném čase (startUpdates), tak za libovolné období v minulosti (queryPedometerData). Pohybový koprocesor (řada M) zpracovává data senzorů hardwarově, což snižuje spotřebu energie o 80% ve srovnání s softwarovým zpracováním.

Na Androidu je práce s krokoměrem realizována prostřednictvím dvou hardwarových senzorů: TYPE_STEP_COUNTER (kumulativní počitadlo kroků od spuštění) a TYPE_STEP_DETECTOR (generování události na každý krok). TYPE_STEP_COUNTER nevyžaduje kalibraci a nespotřebovává energii procesoru — data jsou aktualizována hardwarově na úrovni senzorového hubu. Pro přístup k nasbírané statistice kroků za den se používá Google Fit API se záznamem DataType.TYPE_STEP_COUNT_DELTA.

kotlin
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager

class StepCounter(
    private val sensorManager: SensorManager
) : SensorEventListener {

    private var totalSteps = 0
    private var previousSteps = -1

    fun startListening() {
        val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
        sensor?.let {
            sensorManager.registerListener(this, it, SensorManager.SENSOR_DELAY_NORMAL)
        }
    }

    override fun onSensorChanged(event: SensorEvent) {
        if (previousSteps < 0) {
            previousSteps = event.values[0].toInt()
        }
        val currentSteps = event.values[0].toInt()
        totalSteps = currentSteps - previousSteps
    }

    fun getStepCount(): Int = totalSteps

    override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}

Přesnost a omezení mobilního krokoměru

Přesnost krokoměru závisí na několika faktorech: umístění chytrého telefonu (v ruce, kapse nebo tašce), typu aktivity (chůze, běh, chůze do schodů) a kvalitě senzorů. Při nošení chytrého telefonu v kapse kalhot je přesnost 93–97%, v tašce nebo batohu klesá na 70–85%. Styl chůze uživatele také ovlivňuje přesnost: drobné krůčky s malou amplitudou zrychlení dávají více chyb než pravidelná chůze.

Hlavní omezení mobilních krokoměrů zahrnují: nemožnost počítání kroků při velmi pomalém pohybu (<1,5 km/h), falešné poplachy z jízdy dopravními prostředky, snížení přesnosti při běhu nízkou rychlostí (klus) a vliv gestikulace při mluvení. Pro minimalizaci chyb používají moderní aplikace kombinaci senzorů (akcelerometr + gyroskop + barometr) a strojové učení pro odfiltrování artefaktů. Barometr například pomáhá určovat chůzi do schodů a změnu nadmořské výšky, čímž vylučuje falešné kroky ve výtahu.

Často kladené dotazy

Jak funguje krokoměr v telefonu?

Krokoměr v telefonu používá akcelerometr, který zaznamenává zrychlení při každém kroku. Algoritmus analyzuje vrcholy zrychlení ve třech osách, filtruje šum a určuje počet kroků. Moderní modely také používají gyroskop a strojové učení pro zvýšení přesnosti a klasifikaci aktivity.

Jak přesný je krokoměr na chytrém telefonu?

Při nošení chytrého telefonu v kapse kalhot dosahuje přesnost 95–97% při běžné chůzi. V tašce nebo batohu přesnost klesá na 70–85%. Styl chůze a typ povrchu také ovlivňují přesnost — nerovný terén může způsobovat chyby až 10–15%.

Může krokoměr fungovat bez internetu?

Ano, krokoměr funguje zcela autonomně bez připojení k internetu. Všechny výpočty jsou prováděny na zařízení s využitím vestavěných senzorů. Internet může být potřebný pouze pro synchronizaci dat s cloudovými službami fitness aplikací nebo pro zobrazení mapy trasy.

Proč krokoměr v různých aplikacích ukazuje různá čísla?

Různé aplikace používají různé algoritmy zpracování dat senzorů, prahy detekce kroků a metody filtrace. Některé aplikace počítají kroky na základě syrových dat akcelerometru, jiné — přes systémová API (TYPE_STEP_COUNTER), a rozdíl v počítání může dosahovat 10–15%.

Jak získat přístup ke krokoměru v Android aplikaci?

Na Androidu pro přístup ke krokoměru použijte senzor TYPE_STEP_COUNTER přes Sensor API — poskytuje kumulativní počet kroků od posledního restartu zařízení. Pro přístup ke krokům za konkrétní den integrujte Google Fit API s datovým typem TYPE_STEP_COUNT_DELTA.

Shrnutí

  • Pedometr (krokoměr) — funkce mobilních zařízení určující počet kroků na základě dat z MEMS akcelerometru a algoritmů strojového učení.
  • Hlavní metodou počítání kroků je detekce vrcholů a průchod nulou v signálu akcelerometru s následnou filtrací artefaktů a adaptivním prahem.
  • Moderní implementace používají konvoluční neuronové sítě pro klasifikaci chůze, běhu a chůze do schodů s přesností až 98%.
  • Na iOS je přístup ke krokoměru přes CMPedometer (Core Motion), na Androidu — přes TYPE_STEP_COUNTER a Google Fit API.
  • Hardwarové počítání kroků na úrovni senzorového hubu neprobouzí hlavní procesor, spotřebovává o 80% méně energie ve srovnání s softwarovým zpracováním.
  • Přesnost krokoměru závisí na umístění zařízení: v kapse kalhot — až 97%, v tašce — 70–85%. Nerovný terén a pomalá chůze také snižují přesnost.
  • Pro minimalizaci chyb se používá kombinace senzorů: akcelerometr + gyroskop + barometr, což umožňuje vyloučit falešné kroky při jízdě dopravními prostředky a určit chůzi do schodů.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také