Log filtering - modulabs/gazebo-tutorial GitHub Wiki
State logs๋ ๊ฐ์ ๋ณด๋ก๋ถํฐ์ world state ์ ๋ณด์ ๊ธฐ๋ก์ ๋๋ค. state๋ ์์น,์๋,๊ฐ์๋,๊ทธ๋ฆฌ๊ณ ํ์ ํฌํจํฉ๋๋ค.์ด์์๋ค์ ๋ชจ๋ ๋ชจ๋ธ์ ๋งํฌ์ ์ ์ฉ์ด ๋์ด์๋ ์์์ ๋๋ค. ๊ฐ์ ๋ณด๋ ๋จ์ง ๋ชจ๋ธ์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋ก๋ง ํฉ๋๋ค. ์ด state logํ์ผ์์ ํค๋,์ด๊ธฐworld์ค๋ช ,๊ทธ๋ฆฌ๊ณ state์ ์ฐ์๋ ์๊ฐ์ ํฌํจํฉ๋๋ค.
๋ก๊ทธ ํด์ gz log ๋ช ๋ น๋ฌ๋ฅผ ์ด์ฉํด์ ์ ๊ทผํฉ๋๋ค.
๋ช ๋ น์ด ๋์๋ง์ ๋ณด๊ธฐ๋ ๋ช ๋ น์ด ์ ๋๋ค.
$ gz help log
or
$ gz log -h
Tip: ๋ก๊ทธ๊ธฐ๋กํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ฒด์ ์ธ ์ค๋ช ์ ์ํ ๋ก๊น ๊ณผ ํ๋ ์ด๋ฐฑ ๋ถ๋ถ ์ ์ง์นจ์๋ฅผ ํ์ธํ์ธ์
์ฐ์ ๊ธฐ์กด์ ๋ก๊ทธํ์ผ์ ์ญ์ ํ์ธ์
$ rm -rf ~/.gazebo/log/*
์ฐ๋ฆฌ๋ stste ๋ก๊ทธํ์ผ์ ์์ฑํ๊ธฐ ์ํด pr2 world๋ฅผ ์ด์ฉํ ๊ฒ์ ๋๋ค. ์ฐ์ ์ปค๋ฉ๋ ๋ช ๋ น -r ์ต์ ์ผ๋ก ๊ฐ์ ๋ณด ์๋ฒ๋ฅผ ์คํ์ํค์ธ์
$ gzserver -r worlds/pr2.world
๋ช์ดํ์ ctrl-c key๋ก ์๋ฒ๋์์ ์ค์ง์ํค์ธ์
์๋ก์ด ๋๋ ํ ๋ฆฌ๊ฐ ๋ง๋ค์ด์ ธ์ผ ํฉ๋๋ค. ์์น๋ ~/.gazebo/log ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ํ ๋ก์ ์์๋ state.logzํ์ผ์ด ์์ด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ ์ํ์ด ์์ต๋๋ค.
~/.gazebo/log/2013-07-25T07\:29\:05.122275/gzserver/state.log
๋น์ ์ ์ด ๋ก๊ทธํ์ผ์ ๊ฐ์ ๋ณด๋ก ์คํ์์ผ์ ํ์ธ์ ํ ์์์ต๋๋ค.
$ gazebo -p ~/.gazebo/log/*/gzserver/state.log
gz๋ก๊ทธ ์ปค๋งจ๋๋ผ์ธ ํด์ ๊ธฐ๊ณ๋ฉ์นด๋์ฆ์ ์ ๊ณตํฉ๋๋ค ์ฆ ๋ก๊ทธํ์ผ์ ํตํด ๋จ๊ณ์ ์ธ ๋ฉ์นด๋์ฆ(์คํ ํ) ์ด๊ฒ์ ์คํฌ๋ฆฐ์ ๋ํ๋ฉ๋๋ค. ํน์ ํ ์ ๋ณด ์ฆ ๋งํฌ,๋ชจ๋ธ์ ์์น๋ฑ ํน์ ํ ์ ๋ณด๋ฅผ ํํฐ๋ง ํด์ ์คํฌ๋ฆฐ์ ๋ณด์ฌ์ฃผ๊ฒ ๋ฉ๋๋ค.
์คํฌ๋ฆฐ์ ์๋ ๊ธฐ๋ก๋ ๋ก๊ทธํ์ผ์ ๋ํ๋ด ๋ณด์ธ์
$ gz log -e -f ~/.gazebo/log/*/gzserver/state.log
๋น์ ์ ์คํฌ๋กค๋ง ํจ์ผ๋ก์จ ๋ง์ ์ ๋ณด๋ฅผ ๋ณผ์์์ด์ผ๋ง ํฉ๋๋ค.
์ด์ ๋ชจ๋ ์๋,๊ฐ์๋,ํ๋ฑ์ ์ ๋ณด๋ฅผ ์ง์ฐ์ธ์ ์ด๊ฒ์ ๋จ์ง ์์น์ ๋ณด๋ง ๋จ๊ธธ๊ฒ์ ๋๋ค.
$ gz log -e -f ~/.gazebo/log/*/gzserver/state.log --filter *.pose/*.pose
์ด -- ํํฐ์ต์ ์ ์ ์ฐํ ๋ช ๋ น์ด ์ ๋๋ค. ๋ก๊ทธํ์ผ์์ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค.
ํํฐ ํ๋๊ทธ๋ฅผ ์ฌ์ฉ์ ์ํ ๊ฐ์ด๋ ๋ผ์ธ . ๊ณ์ธต์ ๋๋๊ธฐ ์ํด /๋ฅผ ์ฌ์ฉํ์ธ์ , ์๋ฅผ ๋ค๋ฉด <model_name>/<link_name>
. ๊ฐ๋ณํญ๋ชฉ์ ํน์ฑ์น๋ฅผ ์ ๊ทผํ๊ธฐ ์ํด์๋ .๋ฅผ ์ฌ์ฉํ์ธ์, ์๋ฅผ๋ค๋ฉด <model_name>.pose.y or <model_name>/<link_name>.velocity
๋ช๋ช ์ฌ์ฉ๊ฐ๋ฅํ ํน์ฑ๋ค ์ ๋๋ค
Model: pose
Link: pose, velocity, acceleration, wrench
Pose, velocity, acceleration or wrench: x, y, z, r (roll), p (pitch), a (yaw)
. Use * as a wildcard, for example .pose or <model_name>/right_
. Use [] to match any of the lower level properties, for example <model_name>/pose.[x,y,a]
hz ํํฐ๋ฅผ ์ด์ฉํ ์๋ฌผ๋ ์ด์ ํ์๊ธฐ๋ฐ๋ ํํฐ๋ฅผ ์ด์ฉํ๋๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ๋ค๋ฉด, 30ํค๋ฅด์ธ ์์ state์ ๋ณด ์ถ๋ ฅ์ ํ ์์์ต๋๋ค.
$ gz log -e -f ~/.gazebo/log/*/gzserver/state.log -z 30
์ด ํํฐ๋ ํ์ผ์ ์ฐ๊ฒฐํ๊ณ ํฉ์น ์ ์์ต๋๋ค. ์ด๊ฒ์ state.logํ์ผ์ ์ฌ์ด์ฆ์๋ฐ๋ผ์ ์์๋๋ ์๊ฐ์ด ๋ฌ๋ผ์ง์ ์์ต๋๋ค.
$ gz log -e -f ~/.gazebo/log/*/gzserver/state.log -z 30 --filter *.pose/*.pose > /tmp/filtered_state.log
์ด ๋ก๊ทธํ์ผ์ ๊ฐ์ ๋ณด์์ ์ฌ์๋ ์ ์์ต๋๋ค.
$ gazebo -p /tmp/filtered_state.log