welcom ! Handel home

2025年2月19日 星期三

(Robot_arm)Gazebo & RViz(適用於 ROS 1 和 ROS 2)安裝並使用

 

同時安裝並使用 Gazebo & RViz(適用於 ROS 1 和 ROS 2)

Gazebo 和 RViz 是 ROS 機器人模擬與視覺化的兩大核心工具

  • Gazebo物理模擬環境(提供動力學、碰撞檢測)
  • RViz視覺化機器人狀態(TF、機械臂、感測器資料)

1️⃣ 安裝 Gazebo & RViz

Gazebo 版本與 ROS 1 / ROS 2 版本對應如下:

ROS 版本Gazebo 版本安裝指令
ROS 1 MelodicGazebo 9sudo apt install ros-melodic-gazebo-ros
ROS 1 NoeticGazebo 11sudo apt install ros-noetic-gazebo-ros
ROS 2 FoxyGazebo 11sudo apt install ros-foxy-gazebo-ros
ROS 2 HumbleGazebo Fortresssudo apt install ros-humble-gazebo-ros

📌 安裝 Gazebo(適用於 ROS 1 & ROS 2)

bash
sudo apt update sudo apt install gazebo

📌 安裝 RViz(適用於 ROS 1 & ROS 2)

bash
sudo apt install rviz

如果你是 ROS 1,安裝對應的 ROS 版 Gazebo:

bash
sudo apt install ros-melodic-gazebo-ros-pkgs ros-melodic-rviz

如果你是 ROS 2(Humble),安裝 ROS 2 版:

bash
sudo apt install ros-humble-gazebo-ros-pkgs ros-humble-rviz2

2️⃣ 啟動 Gazebo & RViz

✅ 方法 1:分開啟動

🔹 啟動 Gazebo(ROS 1 & ROS 2 通用)

bash
gazebo

🔹 啟動 RViz(ROS 1 & ROS 2 通用)

bash
rviz

📌 注意:ROS 2 版本需要執行:

bash
rviz2

✅ 方法 2:使用 Launch 檔案同時啟動

如果你希望 Gazebo 和 RViz 同時啟動,可以使用 launch 檔案。

📌 在 ROS 1 使用 Launch 同時啟動 Gazebo & RViz

創建 gazebo_rviz.launch

xml
<launch> <!-- 啟動 Gazebo --> <include file="$(find gazebo_ros)/launch/empty_world.launch" /> <!-- 啟動 RViz --> <node name="rviz" pkg="rviz" type="rviz" output="screen"/> <!-- 載入機器人描述(URDF/Xacro) --> <param name="robot_description" command="$(find xacro)/xacro --inorder $(find my_robot)/urdf/my_robot.urdf.xacro"/> <!-- Robot State Publisher --> <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"/> </launch>

執行:

bash
roslaunch my_robot gazebo_rviz.launch

📌 在 ROS 2 使用 Launch 同時啟動 Gazebo & RViz

創建 gazebo_rviz_launch.py

python
from launch import LaunchDescription from launch_ros.actions import Node from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource import os def generate_launch_description(): gazebo_launch = IncludeLaunchDescription( PythonLaunchDescriptionSource([os.path.join( get_package_share_directory('gazebo_ros'), 'launch', 'gazebo.launch.py')]) ) rviz_launch = Node( package='rviz2', executable='rviz2', name='rviz2', output='screen' ) return LaunchDescription([ gazebo_launch, rviz_launch ])

執行:

bash
ros2 launch my_robot gazebo_rviz_launch.py

3️⃣ 在 Gazebo 內使用 RViz 視覺化

在 Gazebo 內運行機器人後,你可以用 RViz 來視覺化機器人狀態:

bash
rosrun rviz rviz

🔹 在 RViz 內添加以下顯示項目

  1. TF(顯示機器人座標系)
  2. RobotModel(讀取 /robot_description
  3. LaserScan(如果機器人有 LiDAR)
  4. Odometry(如果機器人有輪式驅動)

📌 總結

操作ROS 1ROS 2
安裝 Gazebosudo apt install ros-melodic-gazebo-ros-pkgssudo apt install ros-humble-gazebo-ros-pkgs
安裝 RVizsudo apt install ros-melodic-rvizsudo apt install ros-humble-rviz2
啟動 Gazebogazebogazebo
啟動 RVizrvizrviz2
同時啟動 Gazebo & RVizroslaunch my_robot gazebo_rviz.launchros2 launch my_robot gazebo_rviz_launch.py

🎯 這樣 Gazebo 和 RViz 就可以一起運行,實現機器人模擬與視覺化! 🚀

沒有留言: