1、一键可视化工具
sudo apt install ros-humble-tf2-tools ros-humble-tf-transformations
bash
# 一键打印所有TF树(树形结构,比rviz2更直观)
ros2 run tf2_tools view_frames.py && evince frames.pdf
# 实时查看两个坐标系的转换关系
ros2 run tf2_ros tf2_echo base_link laser_link
2、Gazebo 模型快速加载
bash
# 下载国内镜像的模型库(替换默认空模型库)
git clone https://gitee.com/ohhuo/gazebo_models.git ~/.gazebo/models
#包含常用模型(差速小车、激光雷达、摄像头、地图场景),无需逐个下载,直接在 Gazebo 中选择即可加载。
3、RViz2 插件:rviz2-visual-tools(可视化调试神器)
sudo apt install ros-humble-visualization-tools ros-humble-rviz-visual-tools
bash
# 使用示例
from rviz_visual_tools.rviz_visual_tools import RvizVisualTools
tool = RvizVisualTools('base_link', '/rviz_visual_tools')
tool.publishPath([(0,0,0), (1,1,0), (2,0,0)], 'red') # 绘制红色路径
tool.trigger()
4、仿真数据录制 / 回放:ros2bag-cli-tools(小众但高效)
痛点:原生 ros2 bag 命令参数复杂,录制 / 回放 / 过滤数据麻烦;
优化工具:安装简化版 bag 工具,一键录制指定话题,自动压缩:
bash
# 安装
sudo apt install ros-humble-ros2bag-cli
# 常用命令(比原生简单10倍)
ros2 bag record -a -o simulation_data # 录制所有话题,自动命名
ros2 bag play simulation_data_0.db3 --rate 2 # 2倍速回放
ros2 bag filter simulation_data_0.db3 filtered.bag "topic.startswith('/gazebo')" # 只保留gazebo话题
5、Gazebo调参插件
优势:调参后立即生效,不用修改 URDF/SDF 文件再重启仿真,节省大量调试时间。
bash
# 安装插件
sudo apt install ros-humble-gazebo-physics-tuner
# 启动Gazebo时加载插件
ros2 launch gazebo_ros gazebo.launch.py extra_gazebo_args:="--plugin libgazebo_physics_tuner.so"
6、一键启动多节点:ros2-launch-tools
bash
# 安装
pip install ros2-launch-tools
# 示例:一键启动gazebo+rviz2+小车节点
ros2 launch-tools start -f my_launch.launch.py
# 一键停止所有节点
ros2 launch-tools stop all
bash
###########################################################################
# 一、终端神器:Terminator(多窗口分割,替代XTerm,ROS开发必备)
###########################################################################
# 1. 安装
sudo apt install terminator -y
# 2. 核心使用方法(ROS开发高频操作)
# - 启动:直接在终端输入 terminator
# - 快捷键(重点):
# Ctrl+Shift+E → 垂直分割终端(左右分屏,比如一边跑gazebo,一边看话题)
# Ctrl+Shift+O → 水平分割终端(上下分屏,比如一边启动rviz,一边运行节点)
# Ctrl+Shift+W → 关闭当前子终端
# Ctrl+Shift+T → 新建标签页
# F11 → 全屏模式
# Ctrl+Alt+方向键 → 在子终端间切换
# - 自定义配置(可选:设置ROS主题配色)
# echo '
# [global_config]
# title_transmit_bg_color = "#2E3440"
# [profiles]
# [[default]]
# background_color = "#1E1E2E"
# foreground_color = "#A6E3A1"
# palette = "#1E1E2E:#F38BA8:#A6E3A1:#F9E2AF:#89B4FA:#F5C2E7:#89DCEB:#CDD6F4:#585B70:#F38BA8:#A6E3A1:#F9E2AF:#89B4FA:#F5C2E7:#89DCEB:#FFFFFF"
# use_system_font = False
# font = Monospace 12
# ' >> ~/.config/terminator/config
###########################################################################
# 二、Gazebo清理优化脚本(解决卡顿,一键运行)
###########################################################################
# 1. 创建脚本文件(复制以下内容到gazebo_clean.sh)
cat > gazebo_clean.sh << EOF
#!/bin/bash
# Gazebo清理优化脚本 - 解决卡顿/缓存残留/内存泄漏问题
# 适用ROS2 Humble + Gazebo 11/Fortress
echo -e "\033[32m===== 开始清理Gazebo相关缓存 =====\033[0m"
# 1. 停止所有Gazebo/ROS2进程
echo "🔴 停止Gazebo/ROS2相关进程..."
pkill -9 gzserver gzclient gazebo ros2 rviz2 > /dev/null 2>&1
sleep 2
# 2. 清理Gazebo缓存和日志
echo "🗑️ 清理Gazebo缓存/日志/临时文件..."
rm -rf ~/.gazebo/cache/*
rm -rf ~/.gazebo/log/*
rm -rf ~/.gazebo/lock/*
rm -rf /tmp/gazebo-* /tmp/ros-* /tmp/.gazebo-* > /dev/null 2>&1
# 3. 清理ROS2日志
echo "🗑️ 清理ROS2日志文件..."
rm -rf ~/.ros/log/*
# 4. 释放内存(虚拟机专用)
echo "⚡ 释放系统内存..."
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
# 5. 修复Gazebo依赖
echo "🔧 修复Gazebo依赖(如有缺失)..."
sudo apt install -f -y > /dev/null 2>&1
# 6. 重启VMware显卡服务(虚拟机专用)
echo "🖥️ 重启VMware显卡服务..."
sudo systemctl restart vmtoolsd > /dev/null 2>&1
echo -e "\033[32m===== Gazebo清理完成!=====\033[0m"
EOF
# 2. 赋予执行权限
chmod +x gazebo_clean.sh
# 3. 全局调用(可选)
sudo cp gazebo_clean.sh /usr/local/bin/
# 使用:直接输入 gazebo_clean.sh 即可运行
###########################################################################
# 三、TF树可视化工具:tf2-tools(调试坐标系必备)
###########################################################################
# 1. 安装
sudo apt install ros-humble-tf2-tools ros-humble-tf-transformations -y
# 2. 使用方法
# - 打印TF树(生成PDF文件,直观查看坐标系关系)
# ros2 run tf2_tools view_frames.py && evince frames.pdf
# - 实时查看两个坐标系的转换关系(比如base_link → laser_link)
# ros2 run tf2_ros tf2_echo base_link laser_link
# - 示例:查看所有TF帧的详细信息
# ros2 topic echo /tf
###########################################################################
# 四、Gazebo模型库(国内镜像,一键下载所有常用模型)
###########################################################################
# 1. 安装(替换默认空模型库)
git clone https://gitee.com/ohhuo/gazebo_models.git ~/.gazebo/models
# 2. 使用方法
# - 启动Gazebo后,点击左侧「Insert」→ 直接选择模型(小车/传感器/场景)
# - 常用模型:差速小车、激光雷达(lidar)、摄像头(camera)、地图场景(map)
###########################################################################
# 五、RViz2可视化调试插件:rviz-visual-tools(画路径/坐标系)
###########################################################################
# 1. 安装
sudo apt install ros-humble-visualization-tools ros-humble-rviz-visual-tools -y
# 2. 使用示例(Python代码,在RViz2中绘制路径/坐标系)
# cat > rviz_demo.py << EOF
# #!/usr/bin/env python3
# import rclpy
# from rclpy.node import Node
# from rviz_visual_tools.rviz_visual_tools import RvizVisualTools
# class RvizDemo(Node):
# def __init__(self):
# super().__init__('rviz_demo_node')
# # 初始化工具(父坐标系:base_link,RViz2话题:/rviz_visual_tools)
# self.tool = RvizVisualTools('base_link', '/rviz_visual_tools')
# # 1. 绘制坐标系(在(1,1,0)位置)
# self.tool.publishFrame((1,1,0), 'blue')
# # 2. 绘制路径(从(0,0,0)→(1,0,0)→(2,1,0))
# path_points = [(0,0,0), (1,0,0), (2,1,0)]
# self.tool.publishPath(path_points, 'red', 0.05)
# # 3. 绘制文本标注
# self.tool.publishText((1,0,0), 'Start Point', 'green')
# # 触发显示(必须加)
# self.tool.trigger()
# if __name__ == '__main__':
# rclpy.init()
# node = RvizDemo()
# rclpy.spin(node)
# node.destroy_node()
# rclpy.shutdown()
# EOF
# chmod +x rviz_demo.py
# # 使用:运行脚本后,在RViz2中添加「Marker」,话题选择/rviz_visual_tools即可看到效果
# # ros2 run rviz2 rviz2 (打开RViz2)
# # python3 rviz_demo.py
###########################################################################
# 六、ROS2 Bag增强工具(简化录制/回放/过滤)
###########################################################################
# 1. 安装
sudo apt install ros-humble-ros2bag-cli -y
# 2. 使用方法
# - 录制所有话题(自动命名,保存为simulation_data_xxx.db3)
# ros2 bag record -a -o simulation_data
# - 回放数据(2倍速)
# ros2 bag play simulation_data_0.db3 --rate 2
# - 过滤话题(只保留/gazebo开头的话题)
# ros2 bag filter simulation_data_0.db3 filtered.bag "topic.startswith('/gazebo')"
# - 查看bag文件信息(话题列表/时长)
# ros2 bag info simulation_data_0.db3
###########################################################################
# 七、Gazebo物理参数实时调试插件(无需重启仿真)
###########################################################################
# 1. 安装
sudo apt install ros-humble-gazebo-physics-tuner -y
# 2. 使用方法
# - 启动Gazebo时加载插件
# ros2 launch gazebo_ros gazebo.launch.py extra_gazebo_args:="--plugin libgazebo_physics_tuner.so"
# - 操作:Gazebo界面→点击「Physics Tuner」→ 选择模型→实时调整质量/摩擦/重力等参数
# - 常用参数:
# - Mass(质量):小车建议设为1.0kg
# - Friction(摩擦系数):地面设为0.8(防止打滑)
# - Gravity(重力):默认9.81,仿真时可临时调小测试
###########################################################################
# 八、ROS2 Launch简化工具(一键启动/停止多节点)
###########################################################################
# 1. 安装(需先装pip)
sudo apt install python3-pip -y
pip install ros2-launch-tools
# 2. 使用方法
# - 启动launch文件
# ros2 launch-tools start -f my_simulation.launch.py
# - 停止所有运行的ROS2节点
# ros2 launch-tools stop all
# - 查看运行中的节点列表
# ros2 launch-tools list