mkdir sim_ws
mkdir sim_ws/src
catkin_make
cd ~/sim_ws/src/
catkin_create_pkg robot_description rospy urdf xacro
mkdir -p robot_description/urdf
touch robot_description/urdf/robot.urdf
여기까지 진행하고 나면 이렇게 파일과 폴더들이 생성된 것을 확인할 수 있다.
robot.urdf 파일에 아래 내용을 적어주자.
<?xml version="1.0" ?>
<robot name="robot">
<!-- Link - chassis -->
<link name="link_chassis">
<inertial>
<mass value="10" />
<origin xyz="0 0 0.3" rpy="0 0 0" />
<inertia ixx="1.5417" ixy="0" ixz="0" iyy="3.467" iyz="0" izz="4.742" />
</inertial>
<collision>
<geometry>
<box size="2 1.3 0.4" />
</geometry>
</collision>
<visual>
<geometry>
<box size="2 1.3 0.4" />
</geometry>
<material name="Red">
<color rgba="1 0 0 1" />
</material>
</visual>
</link>
</robot>
cd ~/sim_ws/src/
mkdir -p robot_description/launch
touch robot_description/launch/rviz.launch
rviz.launch 파일에 아래 내용을 적어주자.
<launch>
<param name="robot_description" command="cat '$(find robot_description)/urdf/robot.urdf'" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" />
</launch>
roslaunch robot_description rviz.launch
아직은 아무것도 없는 RVIZ 창이 나올 것이다.
Rviz 내부의 창에서 하단에 있는 Add를 눌러 RobotModel을 추가해주고
Fixed Frame을 "link_chassis"로 바꿔주면 모델이 보이는 것을 확인할 수 있다.
- link_chassis는 robot.urdf에 적었던 link name이다.
RLException: [rviz.launch] is neither a launch file in package [robot_description] nor is [robot_description] a launch file name
The traceback for the exception was written to the log file
혹시 이런 ERROR를 만난다면 아래 코드를 terminal에 한번 쳐주자
source ~/sim_ws/devel/setup.bash
<intertial>
<mass value="10" />
<origin
xyz="0 0 0.3"
rpy="0 0 0" />
<inertia
ixx="1.5417"
ixy="0"
ixz="0"
iyy="3.467"
iyz="0"
izz="4.742"
</inertial>
<colision>
<geometry>
<box size="2 1.3 0.4" />
</geometry>
</colision>
<visual>
<geometry>
<box size="2 1.3 0.4" />
</geometry>
</visual>
<joint name="joint_chassis_left_wheel" type="continuous">
<origin rpy="0 0 0" xyz="-0.5 0.65 0" />
<child link="link_left_wheel" />
<parent link="link_chassis" />
<axis rpy="0 0 0" xyz="0 1 0" />
<limit effort="10000" velocity="1000" />
<joint_properties damping="1.0" friction="1.0" />
</joint>
roslaunch robot_description rviz.launch
만약 이런 ERROR를 만났다면
cannot launch node of type [joint_state_publisher_gui/joint_state_publisher_gui]: joint_state_publisher_gui
joint_status_publusher_gui를 설치해주면 된다.
apt install ros-melodic-joint-status-publisher-gui
이때 ros version이 다르다면 melodic 대신 자신의 ros version을 적어주면된다.
ros version 확인하는 방법
rosversion -d