📝
rvizでURDFを表示する手順
前回の記事で作成したURDFをrvizで表示する手順をまとめます。
パッケージの作成
my_robot_wsというワークスペース内にmy_robot_bringupパッケージを作成します。
cd ~/my_robot_ws/src
ros2 pkg create --build-type ament_cmake my_robot_bringup
CMakeLists.txtの編集
my_robot_bringupパッケージのCMakeLists.txtを編集します。
cmake_minimum_required(VERSION 3.8)
project(my_robot_bringup)
find_package(ament_cmake REQUIRED)
find_package(rviz2 REQUIRED)
find_package(my_robot_description REQUIRED)
install(DIRECTORY
launch
DESTINATION share/${PROJECT_NAME}
)
ament_package()
launch.pyの作成
rviz2を起動するlaunchファイルを作成します。
ファイル名はrviz2.launch.pyとし、launchディレクトリに保存します。
touch ~/my_robot_ws/src/my_robot_bringup/launch/rviz2.launch.py
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.substitutions import Command
from launch_ros.actions import Node
from launch_ros.parameter_descriptions import ParameterValue
def generate_launch_description():
description_file = get_package_share_directory('my_robot_description') + '/urdf/my_robot.urdf.xacro'
robot_description_content = Command(['xacro ', description_file])
robot_state_publisher = Node(
package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
output='screen',
parameters=[{
'use_sim_time': False,
'robot_description': ParameterValue(robot_description_content, value_type=str),
}]
)
joint_state_publisher = Node(
package='joint_state_publisher',
executable='joint_state_publisher',
name='joint_state_publisher',
output='screen'
)
rviz2 = Node(
package='rviz2',
executable='rviz2',
name='rviz2',
output='screen'
)
return LaunchDescription([
robot_state_publisher,
joint_state_publisher,
rviz2
])
package.xmlの編集
rviz2を使うためにpackage.xml
に依存関係を追加します。
<depend>rviz2</depend>
<depend>robot_state_publisher</depend>
<depend>joint_state_publisher</depend>
<depend>my_robot_description</depend>
ビルドと実行
ビルドします。
cd ~/my_robot_ws
colcon build
rviz2を起動します。
ros2 launch my_robot_bringup rviz2.launch.py
rviz2が起動し、URDFが表示されることを確認します。
以上でrviz2でURDFを表示する手順は終了です。
Discussion