1、一键可视化工具
sudo apt install ros-humble-tf2-tools ros-humble-tf-transformations
# 一键打印所有TF树(树形结构,比rviz2更直观) ros2 run tf2_tools view_frames.py && evince frames.pdf # 实时查看两个坐标系的转换关系 ros2 run tf2_ros tf2_echo base_link laser_link2、Gazebo 模型快速加载
# 下载国内镜像的模型库(替换默认空模型库) 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
# 使用示例 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 工具,一键录制指定话题,自动压缩:
# 安装 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 文件再重启仿真,节省大量调试时间。
# 安装插件 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
# 安装 pip install ros2-launch-tools # 示例:一键启动gazebo+rviz2+小车节点 ros2 launch-tools start -f my_launch.launch.py # 一键停止所有节点 ros2 launch-tools stop all########################################################################### # 一、终端神器: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