Animated Box - modulabs/gazebo-tutorial GitHub Wiki

๊ฐ€์ œ๋ณด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ด์šฉํ•ด์„œ box๋ฅผ ์›€์ง์ด๋Š” animation์„ ์ƒ์„ฑํ•ด๋ณด์ž. ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ฐ€์ œ๋ณด์— ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉ์ž ์ฝ”๋”ฉ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ์„œ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ•์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๊ฒƒ์˜ ๊ถค์ ์„ ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ถ”ํ›„์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ๋Š” ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ณ  ์—ฌ๊ธฐ์„œ๋Š” ๊ทธ๋Ÿฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ•œ๋ฒˆ ์‹คํ–‰ํ•ด๋ณด์ž.

working ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์ž.

    $ mkdir animatedbox
    $ cd animatedbox

plugin ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋ฐ›๋Š”๋‹ค.

    $ wget http://bitbucket.org/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/animated_box.cc
    $ wget http://bitbucket.org/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/independent_listener.cc
    $ wget http://bitbucket.org/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/integrated_main.cc
    $ wget http://bitbucket.org/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/CMakeLists.txt
    $ wget http://bitbucket.org/osrf/gazebo/raw/gazebo8/examples/stand_alone/animated_box/animated_box.world

์ œ๊ณต๋˜๋Š” cmakeํŒŒ์ผ์„ ์ด์šฉํ•ด์„œ ๋นŒ๋“œํ•œ๋‹ค.

    $ mkdir build
    $ cd build
    $ cmake ../
    $ make

build ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹คํ–‰ ํŒŒ์ผ์ด ์žˆ์œผ๋ฏ€๋กœ GAZEBO_PLUGIN_PATH๋ผ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์ด ๊ฒฝ๋กœ๋ฅผ ์ธ์‹์‹œ์ผœ์ค˜์•ผ ํ•œ๋‹ค.

    $ export GAZEBO_PLUGIN_PATH=$(pwd):$GAZEBO_PLUGIN_PATH

animated_box.world๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

    $ gazebo ~/animatedbox/animated_box.world

๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์—์„œ "gz topic" ๋ช…๋ น์–ด๋กœ box pose๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    $ gz topic -v /gazebo/animated_box_world/pose/info

์‚ฌ์šฉ์ž๊ฐ€ ์ฝ”๋”ฉํ•œ independent_listener ๋ฅผ ์‹คํ–‰์‹œ์ผœ์„œ ๊ฑฐ๊ธฐ์„œ๋„ pose๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    $ gazebo ~/animatedbox/animated_box.world & ./build/independent_listener

gazebo server(์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ณ„์‚ฐํ•˜๋Š” ๋ถ€๋ถ„)๋ฅผ ๋”ฐ๋กœ ์‹คํ–‰์‹œํ‚ค๊ณ  client(gui๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋ถ€๋ถ„)๋ฅผ ๋”ฐ๋กœ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

$ cd ~/animatedbox
$ ./build/integrated_main animated_box.world

$ gzclient