项目简介
本项目是一个基于C++和Python的机器人控制系统,旨在实现机器人的动作控制、环境感知、路径规划和网络通信等功能。项目结合了Arduino平台和Python Web服务器,提供了从底层硬件控制到高层规划决策的完整解决方案。
项目的主要特性和功能
- 硬件控制:使用Arduino IDE进行硬件编程,控制机器人的移动、转向、传感器数据读取等。通过C++编写的
robo-utils
库,提供调试和生产两种构建模式,支持桌面和嵌入式平台。 - 路径规划:使用Python编写的Web服务器,支持Sokoban和Exploration两种路径规划问题。通过HTTP POST请求,服务器可以接收环境状态并返回规划好的动作序列。
- 网络通信:提供中间件用于蓝牙和WiFi之间的数据传输,实现机器人与服务器之间的通信。
- 文档生成:使用Doxygen生成项目文档,包括代码结构、API文档等,方便开发者理解和使用。
安装使用步骤
硬件准备
- 安装Arduino IDE,并配置Zumo32U4机器人所需的库文件。
- 确保机器人硬件连接正确,包括传感器、执行器等。
软件安装
- Arduino IDE配置:
- 下载并安装Arduino IDE。
- 按照Sumo Robot Arduino IDE配置进行配置。
- C++库构建:
- 进入
robo-utils
目录。 - 创建
build/Debug
或build/Release
目录。 - 运行
cmake
和make
命令构建库文件。 - 安装库文件到Arduino库路径。
- Python Web服务器配置:
- 进入
Server/planner_wrapper
目录。 - 创建虚拟环境并安装依赖:
bash virtualenv venv pip install -r requirements.txt
- 启动服务器:
bash python main.py --planner_location="place/where/the/planner/is" --use_planner="lpg" --ip="0.0.0.0" --port=5000
- 文档生成:
- 安装Graphviz和Doxygen:
bash sudo apt-get install graphviz cd ~ cd doxygen mkdir build cd build cmake -G "Unix Makefiles" .. make sudo make install
- 生成文档:
bash cd robo-utils doxygen robo-utils.doxygen
测试与调试
- 上传Arduino代码到机器人,并启动Python Web服务器。
- 通过HTTP POST请求测试路径规划功能,确保服务器返回正确的动作序列。
- 根据需要调整和优化代码,确保机器人能够正确执行规划的动作。
注意事项
- 确保所有硬件连接正确,避免因连接问题导致的错误。
- 在上传代码之前,确保已正确配置机器人和传感器的参数。
- 在测试和调试过程中,确保周围环境安全,避免机器人碰撞或损坏。
- 遇到错误时,仔细检查代码和硬件连接,并参考提供的错误处理机制进行调试。
- 在进行网络通信时,确保数据同步和正确解析,避免数据丢失或错误。
- 注意内存管理,避免内存泄漏和不必要的内存占用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】