📝

rvizでURDFを表示する手順

2025/02/26に公開

前回の記事で作成した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