開發一個基於ROS的掃地機器人,並在Gazebo環境中模擬實作結果。該機器人具備以下功能:
- 自動建立地圖
- 保存地圖
- 自動清掃
主要模組和文件夾包含以下內容:
-
robot:包含掃地機器人的URDF文件和環境的.world文件
- URDF文件:用於描述掃地機器人的結構和組成部分,如機器人的連接、關節、形狀和感測器配置。
- .world文件:用於描述模擬環境,包括地圖、障礙物和其他靜態元素,提供機器人運行的模擬場景。
-
m-explore:開源explore_lite算法
- explore_lite算法:用於自主探索未知環境,通過移動機器人並建立環境地圖,確保機器人能夠覆蓋所有區域,適應不同場景的變化。
-
auto_nav:自動建圖和導航
- auto_slam.launch:利用SLAM和explore_lite,機器人能夠在未知環境中自動建立地圖。
- clean_work.launch:機器人根據建立的地圖,自動規劃和導航,清掃房間。
-
scripts
- path_planning.py:規劃掃地機器人的路徑。
- 路徑規劃:基於Dijkstra算法和A*算法,確保機器人能夠高效地規劃覆蓋所有需要清掃的區域,避開障礙物。
- path_planning_node.py:發佈規劃好的路徑的節點。
- 路徑節點發佈:通過ROS節點發佈規劃好的路徑,指導機器人按規劃路徑進行運動。
- next_goal.py:發佈下一個目標點的節點。
- 目標點發佈:動態生成和發佈下一個清掃目標點,確保機器人能夠連續有效地覆蓋所有清掃區域,提高清掃效率。
- path_planning.py:規劃掃地機器人的路徑。
-
自動掃描建圖:
-
保存地圖
- 開啟另一個terminal(自動建圖不要關閉)
- 指令:
roslaunch auto_nav save_map.launch
-
自動清掃
- 克隆此專案到您的工作區:
cd ~/catkin_ws/src git clone https://github.com/rayyichen310/-final-project.git Sweeping-Robot-main cd .. catkin_make
roslaunch auto_nav auto_slam.launch
掃描roslaunch auto_nav save_map.launch
儲存地圖roslaunch auto_nav clean_work.launch
自動清掃