Atlas fake walking - modulabs/gazebo-tutorial GitHub Wiki
Overview
์ด๋ฒ ์ฅ์์๋ Atlas๊ฐ ๋ง์น ๋ฐํด ๋ฌ๋ฆฐ ๋ก๋ด ์ฒ๋ผ ์์ง์ด๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ค๋ช ํ๋ค.(๊ฑท๊ฑฐ๋ ๊ท ํ์ก๋ ๊ฒ ์์ด)
Background
์ด๋ฒ ์ฅ์์๋ walking controller๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. ๋จ์ํ Atlas๋ ๋ค์ ๊ทธ๋ฆผ ์ฒ๋ผ ์์น ์ ์ด๋ก ์์๊ฒ ์ ์งํ๋ค.
drcsim 4.x.x์์ ๋ก๋ด์ ์์๋ ์์ธ๋ก ์์ํ๋ค.
๋ค๋ฆฌ๋ฅผ ํฌํจํ ๋ก๋ด์ ๋ชจ๋ ์กฐ์ธํธ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์๋ฎฌ๋ ์ด์ ๋๊ณ ์ปจํธ๋กค ๋๋ค.
์ด๋ฒ ํํ ๋ฆฌ์ผ์์ ์๋ฎฌ๋ ์ด์ ๋๋ ๋ก๋ด์ ๊ฑธ์ ์ ์์ง๋ง ์ฌ์ ํ world๋ด์์ ์์ง ์ด๊ธฐ๋ฅผ ์ํ๋ค. ์๋ฎฌ๋ ์ด์ ๋๋ ๋ก๋ด์ ์ง๋ฉด์์ ์ด๋ ๋ฐ ํ์ ํ ์ ์๋๋ก ROS๋ฅผ ํตํด์ ์๋ ์ง๋ น์ ๋ฐ๋๋ค. ๋ง์น ๋ฐํด ๋ฌ๋ฆฐ ๋ก๋ด ์ฒ๋ผ ์์ง์ธ๋ค.
Moving Atlas
-
์๋ฎฌ๋ ์ด์ ์์ํ๊ธฐ
VRC_CHEATS_ENABLED=1 roslaunch drcsim_gazebo atlas.launch
Note: ๋ณ์
VRC_CHEATS_ENABLED=1
๋ฅผ ์ ํ ํ๋ ๊ฒ์/atlas/cmd_vel
์ ํฌํจํด์ ๋ช ๊ฐ์ง ๊ฐ๋ฐ ๋ชฉ์ ์ ํ ํฝ์ ๋ํ๋ธ๋ค. ์ด๊ฒ์ VRC ๋ํ์์ ์ด๊ธฐ๊ฐ์ผ๋ก ์ฌ์ฉ๋์ง ์๋๋ค.์๋ฎฌ๋ ์ด์ ๋๋ ๋ก๋ด์ ROS Twist์ ๊ธฐ๋ค๋ฆฐ๋ค.
atlas/cmd_vel
ํ ํฝ์ 6์์ ๋์ ์๋์ด๋ค. rostopic์ ์ฒดํฌ ํด๋ณด์๋ผ.rostopic info atlas/cmd_vel
๋ค์๊ณผ ๊ฐ์ ํ ํฝ์ ํ์ธ ํ ์ ์๋ค.
%%% Type: geometry_msgs/Twist Publishers: None Subscribers:
- /gazebo (http://osrf-Latitude-E6420:35339/) %%%
์ด๋์์๋ ROS Twist ๋ฉ์ธ์ง๋ฅผ ํผํ๋ฆฌ์ ํ ์ ์๋ค. ์ฐ์ rosmsg๋ฅผ ์ฌ์ฉํ์ฌ Twist ๋ฉ์ธ์ง ์์ ๋ฌด์์ด ์๋์ง ํ์ธ ํ์.
rosmsg show Twist
๋ค์์ ํ์ธ ํ ์ ์๋ค.
%%% [geometry_msgs/Twist]: geometry_msgs/Vector3 linear float64 x float64 y float64 z geometry_msgs/Vector3 angular float64 x float64 y float64 z %%%
์ด๊ฒ์ 6์์ ๋ ์๋์ด๋ค. 3๊ฐ์ ์๋(X,Y,Z)์ 3๊ฐ์ ๊ฐ์๋(Rx,Ry,Rz)์ด๋ค. ๋ก๋ด์ ํ๋ฉด์์ ์์ง์์ด ๊ตฌ์๋๊ณ ์ค์ง X,Y,Rz๋ก๋ง ์์ง์ธ๋ค.
-
์์๋ ์์ธ๋ก ๋ก๋ด์ ์์น์ํจ๋ค.
rostopic pub --once /atlas/mode std_msgs/String "pid_stand"
-
๋ฐ์ด ๋ ์ ๋ฟ์ง ์๊ฒ ํ๊ธฐ ์ํด ๋ก๋ด์ ๊ณ ์ ํ๋ค.
rostopic pub --once /atlas/mode std_msgs/String "pinned"
-
๋ก๋ด์ ์์์ ์๊ณ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์์ง์ด๊ฒ ๋ง๋ ๋ค.
rostopic pub -r 10 atlas/cmd_vel geometry_msgs/Twist '{ linear: { x: 0.5, y: 0.0, z: 0.0 }, angular: { x: 0.0, y: 0.0, z: 0.5 } }'
๋ณด๋ด์ง๋ ๋งค cmd_vel
์ ์ฐ๊ด๋ ์๋ช
์ด ์๋ค. ์๋ ์ง๋ น์ 0.1์ด ๋์ Atlas์ ์ ์ฉ๋๋ค. ๊ทธ ์ดํ ๋ก๋ด์ ๋ฉ์ถ ๊ฒ์ด๋ค. ๋ง์ฝ ๋น์ ์ด ๋ณด๋ธ ์ด์ 'rostopic' ๋ช
๋ น์ด๋ฅผ ๋ณด๋ฉด -r 10
์ต์
๋ณ์๊ฐ ํฌํจ๋์ด ์๋ค. ์ด๊ฒ์ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ 10hz๋ก ํผ๋ธ๋ฆฌ์ ํ๊ฒ ํ๋ค. ์ด๋ ๋ก๋ด์ด ๋ฉ์ถ์ง ์๋๋ก ํ๋ค.
์๋ ๋ช ๋ น์ ์๊ฐ ์ด๊ณผ ๊ฐ์ ์ค์ ๊ฐ๋ฅํ๋ค.
-
atlas.launch
ํ์ผ์ ์๋ก์ด ROS ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐ ํด๋ผ.<param name="/atlas/cmd_vel_timeout" type="double" value="0.2"/>
-
drcsim์ ๋ฐ์น ํ๊ธฐ ์ ์
rosparam
์ ์คํ ํ์ฌ๋ผ.rosparam set /atlas/cmd_vel_timeout 0.2
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ก๋ ๋ช ๋ น์ด๋ฅผ ํ์ธ ํ ์ ์๋ค.
rostopic echo atlas/cmd_vel
๋ก๋ด์ ๋ฉ์ถ๊ฒ ํ๊ธฐ ์ํด์ CTRL-C๋ฅผ ๋๋ฅด๋ฉด ๋๋ค.