Skip to content

Staaaaaaaaar/quadrover_simulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quadrover

基于 ROS 2 HumbleGazebo Fortress 的四轮移动机器人仿真环境,集成 LiDAR、IMU、RGB-D 相机与 Gazebo DiffDrive 差速驱动,适用于原生 Linux 下的传感器联调与导航算法开发。

功能概览

  • 四轮差速底盘,支持 /cmd_vel 控制与 /odom/wheel 轮式里程计
  • 仿真真值位姿发布在 /loc/gazebomapbase_link
  • 3D LiDAR(/lidar/points)、IMU(/imu/data)、RGB/深度相机
  • 内置室内 example 测试场景与空世界;支持自定义 mesh 场景导入
  • RViz2 预配置(点云、图像、TF)

包结构

说明
quadrover_description 模块化 xacro:底盘、传感器、Gazebo 插件
quadrover_control 四轮驱动模式配置(drive_mode 预设档)
quadrover_gazebo 世界文件、launch、RViz、ROS-GZ 桥接
quadrover_bringup 高层 launch:sim_example

依赖

Ubuntu 22.04 + 原生 Linux 上安装:

sudo apt update
sudo apt install -y \
  ros-humble-desktop \
  ros-humble-ros-gz \
  ros-humble-xacro \
  ros-humble-robot-state-publisher \
  ros-humble-rviz2

Gazebo Fortress 随 ros-humble-ros-gz 提供(ign gazebo / gz sim)。

编译

cd ~/ws/quadrover_simulation
./scripts/build.sh

若系统同时安装了 Miniconda,build.sh 会使用 /usr/bin/python3 编译,避免缺少 catkin_pkg 等问题。

运行

source install/setup.bash

室内主要测试用例

10 m × 10 m 四面围墙 + 简单障碍物(默认无 GUI,以下示例开启 Gazebo GUI 与 RViz2):

ros2 launch quadrover_bringup sim_example.launch.py rviz:=true gui:=true

传感器联调(空世界)

ros2 launch quadrover_gazebo spawn_quadrover_sensors.launch.py rviz:=true gui:=true

自定义 mesh 场景

将 OBJ/MTL/贴图放入 src/quadrover_gazebo/meshes/,编写 world SDF 后通过 worldspawn_* 参数启动。详见 meshes/README.mddocs/quadrover_gazebo.md

常用 launch 参数

参数 默认值 说明
gui false 是否打开 Gazebo GUI
rviz false 是否启动 RViz2
render_engine ogre2 渲染后端(Fortress 默认)
drive_mode diff_drive(bringup)/passive_fixed(gazebo) 驱动模式预设:diff_drive/passive_fixed/passive_free/custom
use_diff_drive drive_mode 预设 仅在 drive_mode:=custom 时手动指定
spawn_x/y/z 因场景而异 机器人初始位姿

位姿话题

本仓库不维护 map→odomodom→base_link TF,仅发布位姿话题供外部 odom/loc 融合节点使用:

话题 类型 坐标系 说明
/odom/wheel nav_msgs/Odometry odombase_link Gazebo DiffDrive 轮式里程计(有漂移)
/loc/gazebo nav_msgs/Odometry mapbase_link 仿真真值位姿

robot_state_publisher 仍发布 URDF 定义的 base_link → 传感器 TF。

手动控制

ros2 run teleop_twist_keyboard teleop_twist_keyboard

如需手动覆盖驱动细节,可使用 custom

ros2 launch quadrover_gazebo spawn_quadrover_sensors.launch.py \
  drive_mode:=custom use_diff_drive:=true wheel_joint_type:=continuous

ROS 话题

话题 类型 说明
/cmd_vel geometry_msgs/Twist 速度指令(→ Gazebo)
/odom/wheel nav_msgs/Odometry 轮式里程计(odombase_link
/loc/gazebo nav_msgs/Odometry 仿真真值(mapbase_link
/joint_states sensor_msgs/JointState 关节状态
/imu/data sensor_msgs/Imu IMU
/lidar/points sensor_msgs/PointCloud2 3D 点云
/camera/color/image_raw sensor_msgs/Image RGB
/camera/depth/image_raw sensor_msgs/Image 深度

验收命令

ros2 topic hz /imu/data
ros2 topic hz /lidar/points
ros2 topic hz /odom/wheel
ros2 topic hz /loc/gazebo
ros2 topic echo /loc/gazebo --field pose.pose

说明

  • 默认渲染引擎为 ogre2,面向原生 Linux + 独显,建议在 Ubuntu 实机运行以获得最佳 GUI 体验。
  • 本仓库仅提供仿真传感器与位姿源,不包含 odom/loc 融合及 map/odom TF 维护。
  • 详细包文档见 docs/README.md;运行时节点与话题见 docs/runtime.md

参考

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors