Skip to content

Repository files navigation

📖 项目简介 (Introduction)

本项目是一个按着小鱼课程写的基于 ROS 2 的自动巡逻机器人(Fishbot)完整工作空间。项目涵盖了从底层机器人建模(URDF)、物理仿真(Gazebo)、到顶层自主导航(Navigation2)及业务逻辑(自动巡逻、语音交互)的完整实现。此外,项目还包含了针对 Nav2 框架开发的自定义局部控制器和全局规划器插件。


📦 核心功能包 (Packages Overview)

工作空间内包含以下主要功能包:

  1. fishbot_description
    • 功能:包含 Fishbot 机器人的 URDF/Xacro 模型描述文件、Gazebo 仿真世界地图(custom_room.world)、以及 Rviz2 配置文件。
    • 核心启动gazebo_sim.launch.py, display_robot.launch.py
  2. fishbot_navigation2
    • 功能:Navigation2 导航栈的配置文件和静态地图(room.pgm, room.yaml),负责机器人的自主定位与导航。
    • 核心启动navigation2.launch.py
  3. nav2_custom_controller (C++)
    • 功能:基于 Nav2 框架开发的自定义局部路径跟踪控制器插件。
  4. nav2_custom_planner (C++)
    • 功能:基于 Nav2 框架开发的自定义全局路径规划器插件。
  5. autopatrol_robot (Python)
    • 功能:自动巡逻业务的核心逻辑节点,包含巡逻状态机(patrol_node.py)及语音播报模块(speaker.py)。
    • 核心启动autopatrol.launch.py
  6. autopatrol_interfaces
    • 功能:自定义的 ROS 2 服务和消息接口(如 SpeechText.srv),用于各节点间的特定数据交互。
  7. fishbot_application (Python)
    • 功能:封装了机器人应用层的高级动作,如初始化位姿(init_robot_pose.py)、导航到指定点(nav_to_pose.py)以及航点跟随(waypoint_follower.py)。

🛠️ 环境依赖 (Prerequisites)

为了成功编译和运行本项目,请确保您的系统满足以下要求:

  • 操作系统:Ubuntu 24.02 (推荐)
  • ROS 2 版本:Jazzy
  • 系统依赖
    • ros-<distro>-gazebo-ros-pkgs (Gazebo 仿真)
    • ros-<distro>-navigation2 / ros-<distro>-nav2-bringup (Nav2 导航)
    • ros-<distro>-slam-toolbox (用于建图,可选)
    • ros-<distro>-xacro / ros-<distro>-robot-state-publisher

🚀 编译与环境配置 (Build and Setup)

在克隆本项目到本地 src 目录后,按照以下步骤编译:

# 1. 进入工作空间根目录(例如 fishbot_ws)
cd ~/fishbot_ws

# 2. 安装项目依赖包 (rosdep)
rosdep update
rosdep install --from-paths src --ignore-src -r -y

# 3. 编译整个工作空间
colcon build --symlink-install

# 4. 刷新环境变量
source install/setup.bash

About

first_robot

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages