Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PCL (Point Cloud Library)の基本となぜ点群処理か_2023年_第2版.pdf

PCL (Point Cloud Library)の基本となぜ点群処理か_2023年_第2版.pdf

2014年10月の「コンピュータビジョン勉強会関東(点群特集の回)」で発表した資料を,再編集して2023年1月に公開しました.

cvml-expertguide

January 22, 2023
Tweet

Other Decks in Technology

Transcript

  1. 1$- 1PJOU$MPVE-JCSBSZ
    ͷ
    جຊͱʮͳͥ఺܈ॲཧ͔ʁʯ
    ɹˏίϯϐϡʔλϏδϣϯษڧձؔ౦ ୈ൛

    ౰࣌ͷॴଐ
    ܚጯٛक़େֶେֶӃཧ޻ֶݚڀՊɹത࢜՝ఔ
    <݄վఆୈ൛>
    චऀɿྛণر $7.-ΤΩεύʔτΨΠυ؅ཧਓ


    View Slide

  2. ͜ͷ<ୈ൛>ʹ͍ͭͯ
    w ͜ͷࢿྉ͸ʮ೥ͷ$7ษڧձؔ౦ʯͰͷൃදࢿྉΛʮ೥݄ʯ
    ʹߋ৽ͯ͠࠶౓ެ։ͨ͠΋ͷͰ͋Δɽ
    w ೥΄ͲܦͬͨݱࡏͰ΋ʮ%఺܈ॲཧ΁ͷ1$-Λհͨ͠ಋೖʯͱͯ͠༗
    ༻ͩͱ൑அ͠ɼ࠶ެ։͢Δ͜ͱʹͨ͠ɽ
    w ಺༰͸ͳΔ΂ͦ͘ͷ··ʹ͠ɼಡΈ΍͘͢ͳΔΑ͏จମͱσβΠϯͳͲͩ
    ͚গ͠੔͑ͨɽʮ೥݄ݱࡏͷঢ়گɾఆ൪ʯͱͷဃ཭͕͋·Γʹܹ
    ͍͠಺༰ʹ͍ͭͯ͸ɼ੺৭Ͱ஫ऍͷ௥ՃΛߦͬͨɽ
    w ೥ͷʮਂ૚ֶशϒʔϜҎલͷݹ͍಺༰ʯͰ͋Δ͜ͱʹ஫ҙ͞Εͨ
    ͍ɽʢٯʹݴ͏ͱɼए͍ํ͕աڈΛ஌Δʹ͸ϞοςίΠͷ಺༰
    ɽ
    w ࠓͰ΋ຊ࣭తͳॴ͸มΘ͍ͬͯͳ͍ɽΑͬͯɼϩϘοτϏδϣϯΛςʔϚ
    ͱ͞ΕΔڭһͷํͳͲ΋ɼ͜ͷࢿྉΛࠓޙ΋༗ޮతʹ׆༻͍͚ͯͨͩ͠Δ
    ͱ޾͍Ͱ͋Δɽ

    View Slide

  3. ಋೖ

    View Slide

  4. w ઌഐʮ৽ೖੜͷΈΜͳɺೖθϛͰ͸1$-Λ࢖
    ༻ͨ͠%ͷ՝୊΋औ૊ΜͰ΋Β͍·͢Αʔʯ
    ͋ΔϏδϣϯܥͷݚڀࣨʹ͸ɼय़ʹ৽ೖੜ͕དྷ·ͨ͠
    w ৽ೖੜʮ%ͱ͔೉ͦ͠͏͔ͩΒɺतۀͰطʹ
    ΍ͬͨ0QFO$7Ͱ΍Γ·ͤΜ͔ʯ
    ίϯϐϡʔλϏδϣϯͰ͸
    %఺܈ॲཧͷํ͕೉ͦ͠͏ͩͳ͋
    ͱͷΠϝʔδ͕͋ΔΑ͏Ͱ͢
    Ͳ͏΋ɺݚڀࣨͷ৽ೖੜͷํͨͪʹ͸ɿ

    View Slide

  5. ຊ೔ͷ಺༰
    w 1$-ͷجຊͷ঺հ
    w ʮ৽ೖੜͷօɺ1$-ͷ՝୊΋΍ͬͯ΋Β͍·͢ʯΛղܾɽ
    w 1$-ͱ఺܈ॲཧͷ🔰޲͚νϡʔτϦΞϧΛఏڙɽ
    w ͳͥ఺܈ॲཧ͔ʁ
    w ʮ%ͱ͔೉ͦ͠͏͔ͩΒɺը૾Ͱ΍Γ·͠ΐ͏ΑઌഐʯΛղܾ
    w %఺܈ॲཧͷํ͕༗རͰָͳ͜ͱΛ঺հɽ
    ˞ຊ౰͸ʮʯͷॱͰઆ໌͕ͨ͠ɼઌʹ1$-঺հͨ͠΄͏͕۩ମతʹΠϝʔδ
    ͠΍͘͢ͳΔͷͰɼ͜ͷॱͰઆ໌ɽ

    View Slide

  6. ఺܈ ϙΠϯτΫϥ΢υ

    ର৅ͷ֤఺Qͷ̏࣍ݩ࠲ඪ஋ Y Z [
    ͱɼ৭ 3(# 3(#"
    ͕֨ೲ͞Εͨσʔλ
    ը૾σʔλͱͷڞ௨఺ɿ
    ɹڑ཭ը૾ͱͯ͠ࡱӨͰ͖Δ৔߹͸ɺ3(#ը૾ͱղ૾౓Λ౷ҰͰ͖Δ
    ྫɿ,JOFDUɺ4PGU,JOFUJD

    ը૾σʔλͱͷ૬ҧ఺ɿ
    w ࿈ଓͯ͠ର৅ද໘͕ಘΒΕΔͱ͸ݶΒͳ͍
    w ͕݀͋ͬͨΓɺϊΠδʔͩͬͨΓ͢Δ ݀ຒΊ΍ฏ׈Խ͕ඞཁ

    w εϖοΫϧϊΠζ ಛʹ5P'
    ͕͋Δ

    1$-ͷجຊͷ঺հ

    View Slide

  7. ,JOFDUొ৔Ҏલ d

    w ਫ਼޼ͳ%σʔλ͕ಘΒΕΔΘ͚Ͱ͸ͳ͘ɼ΍΍ϊΠδʔͳσ
    ϓε͔ΒՄೳͳॲཧ͔࣮͠ݱͰ͖ͳ͍ɽ
    w ं΍ϩϘοτ͔Βݟͯ΍΍ԕํͷ৔ॴΛೝࣝର৅ͱ͍ͯ͠Δɽ
    w .74ͱύονϕʔε̏࣍ݩ෮ݩɿ(PPHMF&BSUIͳͲ
    w ର৅γʔϯͷपғΛ৭Μͳ֯౓͔ΒࡱӨ͢Δඞཁ͋Γ
    w %࠶ߏ੒ͷܭࢉ͕࣌ؒ௕͘ɼ࣮࣌ؒΞϓϦʹ͸࢖༻
    Ͱ͖ͳ͍

    wεςϨΦΧϝϥंࡌը૾ೝࣝwϚγϯϏδϣϯͰ࢖༻
    1$-ͷجຊͷ঺հ

    View Slide

  8. ,JOFDUొ৔Ҏޙ d

    w ୭Ͱ΋%఺܈ GQT
    ͕࢖͑ΔΑ͏ʹͳ͕ͬͨɿ
    w %఺܈ϝογϡॲཧͷϊ΢ϋ΢Λ͍࣋ͬͯΔਓ͕গͳ͍ɻ
    w ,JOFDU4%,0QFO/*͸఺܈ͦͷ΋ͷʹର͢Δ֤छॲཧ͸ର৅֎
    ʢਓ෺࢟੎ਪఆͳͲɼ/BUVSBM6TFS*OUFSGBDFͷఏڙ͕ओ໨తʣ
    w 0QFO$7ͷΑ͏ͳϥΠϒϥϦ͕ɼ%఺܈޲͚ʹ͸ଘࡏ͍ͯ͠ͳ͍
    w ഁ֨తʹ௿Ձ֨ͳ,JOFDUͷొ৔ʹΑΓɺ୭Ͱ΋
    ʮ%఺܈ʯ͕ʮಈը GQT
    ʯͰऔಘՄೳʹɻ
    ʮ࣍ݩ఺܈ॲཧʯͷχʔζʹԠ͑ΔͨΊʹ
    1PJOU$MPVE-JCSBSZ͕ొ৔ ೥


    1$-ͷجຊͷ঺հ

    View Slide

  9. %ը૾ηϯγϯάͷຽओԽ
    ιϑτϋʔυ྆໘Ͱ։࢝

    w ϋʔυ΢ΣΞ ηϯαʔ
    ͷຽओԽ
    w ίϯγϡʔϚσϓεηϯαʔ
    ,JOFDU 4PGULJOFUJD
    ͕σε
    Ϋτοϓ1$޲͚ʹొ৔ɻ
    w ϞόΠϧ޲͚ͷJ1BEͷ
    4USVDUVSF4FOTUPS΍
    "OESPJEͷ(PPHMF5BOHP
    ͳͲ΋ొ৔࢝͠Ί͍ͯΔ
    w ιϑτ΢ΣΞͷຽओԽɿ
    w 1PJOU$MPVE-JCSBSZͷొ৔Ͱ%
    ίϯϐϡʔλϏδϣϯ఺܈ॲཧͷ
    ιϑτ΢ΣΞ࡞੒ͷෑډ͕ҰؾʹԼ
    ͕Δɻ
    w 0QFOGSBNFXPSLTͳͲ΁ͷ
    0QFO/*ͷ౷߹΍0DVMVTͳͲͷొ৔
    ʹΑΓɺՄࢹԽɺΠϯλϥΫγϣ
    ϯɺ73ͳͲͰͷ%ίϯϐϡʔλϏ
    δϣϯͷ࢖༻΋༰қԽɾ׆ൃԽ

    1$-ͷجຊͷ঺հ

    View Slide

  10. ҆Ձͳ,JOFDUొ৔
    ˠ%఺܈Ϗδϣϯ͕खܰʹࢼͤΔΑ͏ʹ
    w Ҏલ͸ը૾ೖྗͩͬͨʮϚγ
    ϯϏδϣϯ෼໺ʯ΋ɼ%఺܈
    ೖྗΛࢼ͢͜ͱ͕׆ൃԽɽ
    D. Holz, R. et al. “Towards semantic scene
    analysis with Time-of-
    fl
    ight cameras”. RoboCup Intermational
    Symposium, 2010
    M .Fallon et al. “Ef
    fi
    cient Scene Simulation for Robust
    Monte Carlo Localization Using an RGB-D Camera”
    CVPR 2012 tutorial

    w ϨϯδϑΝΠϯμ͕ޮՌͳͷͰ
    ಴࠳͍ͯͨ͠ʮҠಈϩϘοτͷ
    ؟ʯͱͯ͠΋ɼظ଴ͷ੕ʹɽ
    1$-ͷجຊͷ঺հ

    View Slide

  11. 1PJOU$MPVE-JCSBSZͷొ৔
    w 1PJOU$MPVEͱ.FTIͷॲཧͷͨΊͷ$ݴޠʹΑΔΦʔϓϯ
    ιʔεͷେن໛ϥΠϒϥϦ
    w 0QFO$7ͷ࢞ຓϓϩδΣΫτ
    w #4%ϥΠηϯεແྉͰ঎༻࢖༻Մೳ
    w 8JO.BD-JOVY "OESPJEJ04ͷΫϩεϓϥοτϑΥʔϜ
    w 0QFO/*Λ͸͡Ίɺ֤ࣾσϓεηϯαʔͱ௚઀࿈ܞՄೳʢ఺܈
    ͷ؆୯ͳϦΞϧλΠϜऔಘʣ

    1$-ͷجຊͷ঺հ

    View Slide

  12. ߏ੒Ϟδϡʔϧʢ1$-ʣɿ
    ॳظ͔ΒͷػೳʹՃ͑ɼ৽نϞδϡʔϧ͕ଟ਺௥Ճத

    1$-ͷجຊͷ঺հ

    View Slide

  13. 1$-ͷσʔλܗࣜʹ͍ͭͯ
    ʢ1PJOU$MPVE1PJOU5
    ͱQDEϑΝΠϧʣ
    1$-ͷجຊͷ঺հ

    View Slide

  14. %σʔλ
    w 3(#%ηϯαʔͰ୆Ͱ̍౓ʹࡱӨͨ͠σʔλ͸ɺશपғσʔλͷ׬શͳ
    %Λୡ੒͍ͯ͠ͳ͍ͱ͍͏ҙຯͰʮ%σʔλʯͱݺͿ͜ͱ͕͋Δɻ
    w ࡾ֯ଌྔಁࢹ౤ӨͷηϯγϯάͳͷͰ%σʔλͱͳΔ

    ,JOFDUͰऔಘͨ͠఺܈
    ʢΧϝϥࢹ఺ଆ͔Βʣ
    ࠨͷ఺܈Λ্ํ͔Βݟͨ΋ͷ
    1$-ͷجຊͷ঺հ

    View Slide

  15. QDM1PJOU$MPVE1PJOU5ܕ

    جຊతͳએݴํ๏ɿ


    pcl::PointCloud::Ptr cloud( new PointCloud() );
    1PJOU$MPVEʹؚ·ΕΔ఺ͷܗࣜΛද͢1PJOU5ͷྫ
    QDM1PJOU9:;
    fl
    PBUY Z[
    QDM1PJOU9:;*
    fl
    PBUY Z[ً౓
    QDM1PJOU9:;3(#"
    fl
    PBUY Z[3(#"
    QDM1PJOU/PSNBM
    fl
    PBUY Z[ʴOPSNBM<>DVSWBUVSF
    QDM)JTUPHSBN
    fl
    PBUIJTUPHSBN>ɹ

    ɿ֤఺͕1PJOU9:;3(#"ͷ1PJOU$MPVEܕΦϒδΣΫτͷ࡞੒
    PointCloud::Ptr data(new PointCloud());
    ʮ৭෇͖ͷ%఺܈ɺ๏ઢʯͳͲͷσʔλΛ֨ೲ͢Δ
    1$-ͰҰ൪Α͘࢖͏ΦϒδΣΫτ
    1$-ͷجຊͷ঺հ

    View Slide

  16. 1$%ϑΝΠϧܗࣜ
    w 1$-ಠࣗఆٛͷ఺܈ϑΝΠϧܗ͕ࣜ1PJOU$MPVE%BUBʢ֦ுࢠ͸QDEʣ
    w PCK΍QMZͷΑ͏ʹϝογϡσʔλͷอଘ͕ඞཁͳ͍ͷͰɺ఺܈͚ͩΛอ
    ଘ͢ΔͨΊʹޮ཰తͳಠࣗϑΝΠϧܗࣜΛఆٛͨ͠ʢ˞චऀͷԱଌʣ
    w όΠφϦʔܗࣜͱςΩετܗࣜͷ̎छྨ͕ଘࡏ Լͷྫ͸ςΩετܗࣜ


    1$-ͷجຊͷ঺հ

    View Slide

  17. 1$-JPϞδϡʔϧ
    w 1PJOU$MPVE1PJOU5ܕͷσʔλΛ1$-ͷಠࣗϑΝΠϧܗࣜ
    ͷʮQDEܗࣜʯ΁อଘɾಡΈࠐΈ͕Մೳ
    w 0QFO/*ʹΑΓσʔλΛऔಘͰ͖Δ֤छσϓεηϯα
    ,JOFDU 9UJPO
    ͔ΒϦΞϧλΠϜʹಉظ͞Εͨʮڑ཭ը૾
    ʴ3(#ը૾ʯΛ1PJOU$MPVEܕͰΩϟϓνϟՄೳ
    w ֤छϝογϡσʔλܗࣜʢPCKɺQMZɺWULϑΝΠϧʣͷಡΈ
    ॻ͖͕Մೳʢ˞ಡΈࠐΈ͸͋·Γॆ࣮͍ͯ͠ͳ͍ʣ

    1$-ͷجຊͷ঺հ

    View Slide

  18. 0QFO/*(SBCCFSϑϨʔϜϫʔΫ
    w ,JOFDU͔Βܭଌ͞ΕΔ3(#%σʔλΛ௚઀औಘ͢ΔͨΊͷ
    Ϟδϡʔϧʢ0QFO/*ͷ֘౰ॲཧͷϥούʔʣ
    w 3(#ը૾ͱڑ཭ը૾͕Ґஔ߹ΘͤwಉظࡁΈͷঢ়ଶͰɺ
    1PJOU$MPVE1PJOU5ܕΦϒδΣΫτͱͯ͠औಘͰ͖Δ

    1$-ͷجຊͷ঺հ

    View Slide

  19. ఺܈ͷϦΞϧλΠϜऔಘ
    #include
    pcl::OpenNIGrabber grabber(argv[2]);
    boost::function cloud_cb = boost::bind
    (&OpenNIViewer::cloud_callback,this, _1);
    boost::signals2::connection cloud_connection = grabber_.registerCallback
    (cloud_cb);ɹ// cloud_cbؔ਺Λొ࿥
    void
    cloud_callback (const CloudConstPtr& cloud)
    {
    boost::mutex::scoped_lock lock (cloud_mutex_);
    cloud_ = cloud;
    //ຖϑϨʔϜ͝ͱͷcloud΁ͷॲཧΛ͜͜ʹهड़
    }

    0QFO/*(SBCCFSʹCJOEͨؔ͠਺ͷҾ਺Ͱɼ֤ϑϨʔϜͷ
    1PJOU$MPVEΦϒδΣΫτ͕औಘͰ͖Δ
    ຖϑϨʔϜͷॲཧΛίʔϧόοΫؔ਺ʹهड़͢Δ
    1$-ͷجຊͷ঺հ

    View Slide

  20. 1$-7JTVBMJ[FS
    w 1$-ͷ఺܈Λͱͯ΋؆୯ʹ%ՄࢹԽ͕Ͱ͖Δ PQFO$7Ͱ͍͏IJHI(6*

    w Ϛ΢ε΍ΩʔϘʔυͷೖྗ΋ड͚෇͚Δɽ
    w %Ϟσϧ PCKϑΝΠϧ౳
    ΋ಉ࣌ʹදࣔͰ͖ɺ%σʔλʹॏཁͳ๏ઢͷ
    ՄࢹԽػೳ΋࠷ॳ͔Β౥ࡌ
    ՄࢹԽπʔϧ 1$-7JTVBMJ[FS

    ͕ఏڙ͞Ε͍ͯΔ͓͔͛Ͱɼ
    ఺܈ॲཧͷΈʹूதͰ͖Δͱ͍
    ͏ϝϦοτΛ1$-͕࢝Ίͯఏڙ
    Ͱ͖͍ͯΔ

    ˞ ୈ൛ͷ೥ݱࡏͰ͸ɼଞʹ΋ଟ͘ख
    ஈ͕͋Γɼ͋͘·Ͱ೥౰࣌ͷ࿩Ͱ
    ͋Δ͜ͱʹ஫ࢹ
    1$-ͷجຊͷ঺հ

    View Slide

  21. 1$-ͷ๏ઢਪఆ
    w '-"//Λ༻͍ͨ,EUSFFʹΑΔۙࣅ࠷ۙ๣
    ୳ࡧ QDM/PSNBM&TUJNBUJPO

    w *OUFHSBM*NBHFΛ༻͍ͨߴ଎ͳ๏ઢਪఆ
    QDM*OUFHSBM*NBHF/PSNBM&TUJNBUJ
    PO


    ͜ΕΒͷΫϥεʹؙ౤͛͢Δ͚ͩͰ๏ઢਪఆ͕Մೳ
    ʹ1$-͸ 0QFO$7ͷΑ͏ʹ
    ศརͳϥΠϒϥϦͰ͋Δ
    ˞ ୈ൛ͷ೥ݱࡏͰ͸ʮৄղ࣍ݩ఺܈ॲཧʯ͕࠾༻͍ͯ͠Δʮ0QFO%ʯ
    ΋ศརͰ͋Δɽࠓ͸1$-͚͕ͩબ୒ࢶͱ͍͏ঢ়گͰ͸ͳ͍ɽਂ૚ֶशϕʔεͷ
    %఺܈ॲཧʹ͍ͭͯ΋ɼଟ਺ιϑτ΢ΣΞ΋ެ։͞Ε͍ͯΔ
    1$-ͷجຊͷ঺հ

    View Slide

  22. %఺܈ॲཧͰͷ๏ઢͷ໾ׂ
    w ௚ײతʹ͸
    %ද໘ͷඍ෼ํ޲ͳͷͰɺը૾Ͱݴ͏Τοδʹ૬౰
    w ҙຯ෼ׂ΍෺ମೝࣝͳͲΛߦ͏্Ͱɺॏཁͳಛ௃ϕΫτϧͱͳΔ
    w ·ͨɼ%఺܈͸ϝογϡॲཧʹ΋࿈ܨͰ͖Δ
    w ϝογϡॲཧͰ΋๏ઢํ޲͸ॏཁͳಛ௃

    1$-ͷجຊͷ঺հ

    View Slide


  23. 1$-ͷϝΠϯϞδϡʔϧ܈
    1$-ͷجຊͷ঺հ

    View Slide


  24. ༗ྉηϛφʔͰղઆ͍ͯ͠Δ͏ͪɺ
    ʮ'JMUFSTʯϞδϡʔϧͷղઆͷΈɼຊ೔͸঺հ͠·͢
    1$-ͷجຊͷ঺հ

    View Slide

  25. 'JMUFSTϞδϡʔϧ
    w ఺܈޲͚ͷϊΠζ΍֎Ε஋আڈɺฏ׈ԽͳͲͷϑΟϧλϦϯάΛఏڙ
    w ओͳΞϧΰϦζϜɿ
    w ಛఆͷྖҬ͚ͩநग़ 1BUI5ISPVHI

    w ฏ׈Խ #JMBUFSBM'JMUFS

    w μ΢ϯαϯϓϦϯά 7PYFM(SJE
    fi
    MUFS

    w ֎Ε஋আڈʢ4UBUJTUJDBM0VUMJFS3FNPWBMʣ

    1$-ͷجຊͷ঺հ

    View Slide

  26. 'JMUFSJOHͷඞཁੑ
    w ͕݀͋Δˠ݀ຒΊॲཧ 4VSGBDFϞδϡʔϧ

    w ϊΠζ͕ଟ͍
    w ࿈ଓͨ͠ද໘্ͰͷԜತˠ#JMBUFSBM'JMUFSͰΤοδอଘͨ͠
    ··ฏ׈Խ
    w ࢄൃతͳϊΠζʢεϖοΫϧϊΠζʣ
    ˠ4UBUJTUJDBM0VUMJFS3FNPWBMͰ֎Ε஋আڈ
    w σʔλྔ͕ଟ͍ˠ7PYFM(SJE'JMUFSͰμ΢ϯαϯϓϦϯά
    %ηϯαʔͷੜσʔλ͸ดͨ͡ʢ݀ͷແ͍ʣ
    حྷͳ఺܈Ͱ͸ͳ͍ͷͰલॲཧͷඞཁੑ͋Γ

    1$-ͷجຊͷ঺հ

    View Slide

  27. 1BTT5ISPVHI'JMUFS
    pcl::PointCloud::Ptr cloud
    (new pcl::PointCloud);
    pcl::PointCloud::Ptr cloud_filtered
    (new pcl::PointCloud);
    pcl::PassThrough pass;
    pass.setInputCloud (cloud);
    pass.setFilterFieldName ("z");
    pass.setFilterLimits (0.0, 1.0);
    //pass.setFilterLimitsNegative (true); ࢦఆൣғΛऔΓআ͘৔߹
    pass.filter (*cloud_filtered);
    ೖྗ఺܈ͷ͏ͪɼࢦఆͨ̍࣍͠ݩ ͜͜Ͱ͸[
    ํ޲ͷಛఆ
    ͷൣғͷ఺܈ͷΈΛɼϑΟϧλϦϯάॲཧͰऔಘͰ͖Δ

    1$-ͷجຊͷ঺հ

    View Slide

  28. 7PYFM(SJE'JMUFS
    // ࢦఆͨ͠voxel grid·Ͱμ΢ϯαϯϓϦϯά
    pcl::VoxelGrid vg;
    vg.setInputCloud (cloud);
    vg.setLeafSize (0.01f, 0.01f, 0.01f); //0.01mཱํͷάϦουΛઃఆ
    vg. filter (∗cloud filtered );
    w ࢦఆͨ͠7PYFM(SJEͷେ͖͞·Ͱ఺܈ΛϘΫηϧԽ
    w ֤άϦου͸άϦου಺ͷ఺ͷதԝ஋Ͱۙࣅ͞ΕΔ

    1$-ͷجຊͷ঺հ

    View Slide

  29. 4UBUJTUJDBM0VUMJFS3FNPWBM
    pcl::StatisticalOutlierRemoval sor;
    sor.setInputCloud (cloud);
    sor.setMeanK (50);
    sor.setStddevMulThresh (1.0);
    sor.filter (*cloud_filtered);
    w ہॴ͝ͱͷີ౓ʹै͍ɺ఺ΛϑΟϧλϦϯά
    w ֤ྖҬͰฏۉີ౓͔Βൺ΂ͯεύʔεͳ఺Λআڈ

    1$-ͷجຊͷ঺հ

    View Slide

  30. લ൒ͷ·ͱΊ
    w 1PJOU$MPVE-JCSBSZͷجຊ͚ͩ঺հɿ
    w 1PJOU$MPVEͱ3(#%σʔλͷߏ଄ʹ͍ͭͯಋೖ
    w ,JOFDUΛ࢝Ίͱ֤ͨࣾ͠σϓεηϯαʔ͔Β؆୯ʹ
    ϦΞϧλΠϜͷ఺܈ΛऔಘՄೳ
    w 1$-7JTVBMJ[FS͕͋ΔͷͰ%ՄࢹԽ΋؆୯
    w ๛෋ͳެࣜνϡʔτϦΞϧͰߋʹษڧ͠·͠ΐ͏

    1$-ͷجຊͷ঺հ

    View Slide

  31. ޙ൒ͳͥ఺܈ॲཧ͔ʁ
    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  32. ʮίϯϐϡʔλϏδϣϯϏδϣϯΫΠζʯ
    ͷίʔφʔ
    ࣍ͷεϥΠυ͔Βͷ֤໰୊ʹ͍ͭͯ
    ʮը૾ೖྗͱσϓεೖྗͷͲͪΒͷํ͕
    ؆୯ʹޮ཰Α͘ղ͚Δ͔ʁʯ
    ʹ͍ͭͯɼΈͳ͞·ʹ౴͑ͯ΋Β͍·͢

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  33. 2ηάϝϯςʔγϣϯ
    w "ը૾ w #σϓε
    IUUQXXXFFDTCFSLFMFZFEV
    3FTFBSDI1SPKFDUT$4WJTJPO
    HSPVQJOHSFTPVSDFTIUNM
    IUUQDTOZVFEVdTJMCFSNBOQSPKFDUT
    JOEPPS@TDFOF@TFH@TVQIUNM

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  34. 2ਓݕग़
    w "ը૾ w #σϓε

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  35. ,JOFDUͷਓ෺࢟੎ਪఆɿ
    ৭ɾςΫενϟ͕ؔ܎ͳ͍యܕྫ
    σϓεͷΈͰܭࢉ͍ͯ͠ΔͷͰ ը૾͔Βͷೝࣝͱҧ͍

    ܗ͚ͩͰࣝผ͠ɺҥ෰ɾഽͷςΫενϟ͸࢖༻͠ͳ͍
    ˞ਓ෺ྖҬͷநग़΋
    ۭؒͷ഑ஔ͚͚ͩͩͰ
    ߦΘΕ͍ͯΔ

    ͳͥ఺܈ॲཧ͔ʁ
    ਤɿஶऀͷʮίϯϐϡʔλϏδϣϯͷηΧΠʯͷهࣄΑΓ

    View Slide

  36. ը૾ಛ௃WT఺܈ಛ௃
    <֤࠲ඪͷੜσʔλ>
    ఺"ͱ఺#ͷ
    σϓε ˠ%࠲ඪ
    ͷҧ͍
    ఺"ͱ఺#ͷ
    3(#஋ͷҧ͍

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  37. ఺"ͱ఺#ͷ
    %Τοδํ޲ͷҧ͍
    ఺"ͱ఺#ͷ
    %๏ઢํ޲ͷҧ͍
    ύον಺ͷ)0( 4*'5ͳͲ αʔϑΣεൣғ಺ͷ๏ઢώετάϥϜ
    ը૾ಛ௃WT఺܈ಛ௃
    <ඍ෼஋>

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  38. 8IZ% ෺ମೝࣝͷ৔߹

    ը૾ɿl*$3"1$-UVUPSJBMlΑΓҾ༻
    ޫ؀ڥɾ൓ࣹͳͲͰɼlೋ࣍ݩը૾Ͱ͸ରԠ෇Ͱ͖ͳ͍ঢ়گz
    ˠσϓε %ܗঢ়
    ͕͋Ε͹ɼͳΜͱ͔Ͱ͖ͦ͏ʂʂ

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  39. lೋ࣍ݩը૾͸෺ମೝࣝ ҙຯநग़
    ʹࣦഊ͢Δ͜ͱ͕͋Δz

    ը૾ɿl*$3"1$-UVUPSJBMlΑΓҾ༻
    8IZ% ෺ମೝࣝͷ৔߹

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  40. l%ը૾͸ͨͩͷ̎࣍ݩ౤ӨͰ͋Δz
    ʢ˞ͪ͝Όͪ͝Όͱ෺͕ଟ͍৔ॴͰࣦഊ͕ͪ͠ʣ

    ը૾ɿl*$3"1$-UVUPSJBMlΑΓҾ༻
    ͳͥ఺܈ॲཧ͔ʁ
    8IZ% ෺ମೝࣝͷ৔߹

    View Slide

  41. QDM3FDPHOJUJPO
    w %ಛ௃ϕʔεͰςϯϓϨʔ
    τ఺܈ͱͷؒͰϚονϯά
    w ෺ମΛೝࣝ%࢟੎ਪఆ
    w ௚ײతʹ͸
    ը૾ಉ࢜Ͱͷ
    4*'5Ϛονϯάͷ࣍ݩ൛
    IUUQQPJOUDMPVETPSHEPDVNFOUBUJPOUVUPSJBMT
    DPSSFTQPOEFODF@HSPVQJOHQIQDPSSFTQPOEFODFHSPVQJOH

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  42. ϓϦϛςΟϒݕग़
    ఺܈WTը૾
    3"/4"$ʹΑΔฏ໘ݕग़ )PVHIม׵ʹΑΔ௚ઢݕग़
    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  43. ฏ໘ݕग़ฏ໘Ҏ֎Λநग़
    ˞1$-ͷ&VDMJEJBO$MVTUFSJOHΛ࢖༻
    %఺܈͸ɼฏ໘্ͷ෺ମ
    நग़͕؆୯ʂʢۭؒൣғ
    Ͱ෼͚Δ͚ͩͳͷͰʣ
    ᶅ෺ମநग़݁ՌʢҰ൪ࠨͷ෺ମʣ
    ᶄฏ໘ݕग़ ͜ͷ఺܈Λᶃ͔ΒऔΓআ͘

    ᶃೖྗͷ఺܈
    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  44. 1$-ͷ3(#%ਓ෺ݕग़

    ը૾ɿ*"41$-νϡʔτϦΞϧΑΓ
    w চݕग़ͷԠ༻ྫ
    w ॲཧखॱ
    w চฏ໘ݕग़ લॲཧ

    w &VDMJEJBO$MVTUFSJOH
    w )0(ਓ෺ݕग़ث
    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  45. ը૾ೖྗͰͷॲཧͰ΋

    চฏ໘͘Β͍ਪఆͰ͖Δ͕
    ఺܈͕ͳ͘
    ը૾ೖྗ͔ΒͰ΋ɼ
    ʮᶃΧϝϥΩϟϦϒϨʔγϣϯ
    ʮᶄচͷ%࠲ඪܥ͕ط஌ʯ
    Ͱɼচ໘ͷີͳ࠲ඪܥΛٻΊΒΕΔ
    ྫɿࠨਤ
    ɽ
    ͔͠͠ʮฏ໘తͳද໘ চ΍น
    ʯ΍ʮ௚ઢݕग़Ͱ͖Δচ໛༷ʯ
    Ҏ֎Ͱ͸ɺচͷ࠲ඪܥ͕ը૾ຕ͔Β͸ਪఆͰ͖ͳ͍
    σϓεηϯαʔͰ͋Ε͹ɺ চʹݶΒͣ

    γʔϯͷ%ද໘ܗঢ়͕ɺ࣮࣌ؒʹऔಘͰ͖Δ

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  46. 73 "3
    σϓεηϯαʔ΋࢖༻Ͱ͖Δͱͨ͠Βʁ

    ର৅෺΍ର৅ਓ෺ɺपғͷۭؒͷ%ܗঢ়ಈ͖͕Θ
    ͔͍ͬͯΔͳ͔Ͱʮ$(Λγʔϯͱಉ࣌දࣔʯ͢Δ
    ྫɿ
    w Ծ૝ࢼணϛϥʔͰͷ༸෰$(ࢼணɽ
    w εϚϗσϓεηϯαʔͰ"3 ήʔϜ

    w 73ΰʔάϧ/BUVSBM6TFS*OUFSGBDFͳͲ
    ʢσϓεηϯαʔొ৔Ҏલͷʣ15".ͳͲͷը૾ϕʔε"3Ͱ͸ɺ
    ը૾͔Β༧ଌͨ͠ฏ໘্ʹ͔͠ॏ৞Ͱ͖ͳ͔ͬͨ

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  47. %ܗঢ়ΛࡱΔGPS%ϓϦϯτ
    w %ϓϦϯλɿओͳೖྗσʔλ͸ʮ$"%$(ιϑτͰ
    ࡞੒ͨ͠%ϞσϧʯͰ͋ͬͨ
    Ϟσϧ ϓϦϯτ݁Ռ
    ࣮෺΋εΩϟϯͯ͠ೖྗσʔλͰϓϦϯτ
    IUUQXXXQPJOUDMPVEKQCMPH@O

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  48. %ΛࡱΔGPSෆಈ࢈ɾݐங
    w ߴਫ਼౓ͷ%εΩϟφʔ ਺ඦສԁ
    Λ༻͍ͯɺͬ͠
    ͔Γߴਫ਼౓ʹγʔϯΛ%Խ ˞-J%"3ܭଌ͸ߴՁ

    ,JOFDUϕʔεͷʮ਺ेສԁͷ%εΩϟφʔʯͰ
    ࠓޙ͸ࣄ଍Γ͍ͯ͘ʁʁ

    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  49. ϞόΠϧεΩϟϯ
    4USVDUVSF4FOTPS 5BOHPͳͲ

    w ෺΍ɺਓɺۭؒ͸ɺλϒϨοτ΍εϚϗͰ%εΩϟϯ͢Δ࣌୅΁
    ʢདྷ೥೥ʹϒϨΠΫʁʣ
    w 4-".͕ຽओԽʢ௿Ձ֨Խʣ͠͸͡ΊΔɺͱ͍͏ྲྀΕͱ΋ݴ͑Δ
    4USVDUVSF4FOTPS"U3JQMFZT#FMJFWF*U0S/PU
    IUUQXXXZPVUVCFDPNXBUDI W+NH3E'20-1X

    ͳͥ఺܈ॲཧ͔ʁ
    ˞ ୈ൛ͷݱࡏͰ͸ɼεϚϗɾλϒϨοτͷߴڃϥΠϯʹ
    ͸ɼσϓεηϯαʔ౥ࡌࡁΈ͕ͩɼ͜ͷ౰࣌͸·ͩʮεϚϗ֤
    ͕ࣾɼࠓޙ͜ΕΒʹखΛग़͔͢΋ʁʯͷஈ֊Ͱ͋ͬͨɽ

    View Slide

  50. ޙ൒ʮͳͥ఺܈ॲཧ͔ʁʯ·ͱΊ
    w ʢ৭Λແࢹͯ͠ʣ࣍ݩͷܗ͚ͩͰର৅ΛೝࣝͰ͖Δ
    w ʢਓ޻෺ͩͱಛʹʣฏ໘΍ԁபͳͲϓϦϛςΟϒ͋ͯ͸
    Ίָ͕ʢ*MPWF3"/4"$ʣ
    w ର৅ΛϑϧεΩϟϯ͢Ε͹%ੈքશମΛͦͷ··%Ͱ
    ೺ѲɾՄࢹԽͰ͖Δ
    w ࡱͬͨର৅͸σβΠϯʹ΋׆͔ͤΔϞόΠϧ3(#%ηϯ
    αʔͷొ৔Ͱɺ%఺܈σʔλ͸དྷ೥Ҏ߱େྔʹ૿͑Δʁ
    ͳͥ఺܈ॲཧ͔ʁ

    View Slide

  51. %఺܈ͷํ͕ɼزԿతද໘৘ใ͕ϦονʹಘΒΕΔ෼
    ͚ͩɼը૾ೖྗΑΓ΋֤Ϗδϣϯ໰୊Λղ͘ͷ͕؆୯ɽ
    ຊ೔ͷ5BLFIPNFNFTTBHF
    ఺܈ॲཧ͸ʮΑΓ؆୯ʯ

    ˞ தڃऀͷํ͸ɼࢲͷαΠτʮ$7.-ΤΩεύʔτΨΠυʯ΋νΣοΫ͠
    ͯΈ͍ͯͩ͘͞ɽࠓޙɼ఺܈ɼ%ॲཧͷهࣄ΋૿΍͍͖ͯ͠·͢

    View Slide