项目简介
Foxbot Core3是基于ROS2 Humble框架的机器人系统,专为ESP32(Arduino)设备设计。此项目将原ROS2 Galactic版本升级为ROS2 Humble版本,且增加了对micro - ROS的支持,使机器人能在复杂网络环境中稳定运行。
项目的主要特性和功能
- ROS2 Humble支持:采用ROS2 Humble版本,具备更稳定高效的通信机制。
- micro - ROS集成:借助micro - ROS,ESP32设备可与ROS2系统无缝集成,实现实时数据传输与控制。
- IMU传感器支持:集成ICM - 20948 IMU传感器,提供精确姿态和运动数据。
- TF静态发布:支持发布TF变换,实现机器人坐标系动态更新。
- 通信断线恢复:改进通信断线恢复机制,保证机器人位置和姿态信息的连续性。
安装使用步骤
假设用户已下载本项目的源码文件。
1. 进入项目目录:
bash
$ cd foxbot_core3
2. 复制项目到VSCode PlatformIO IDE:
bash
$ cp -ar foxbot_core3_r2 ~/Documents/PlatformIO/Projects
3. 复制Arduino库:
bash
$ cd Arduino
$ cp -ar lib-foxbot_core3_r2 ~/Arduino
4. 复制工具包到ROS2工作空间并编译:
bash
$ cp -ar foxbot_tool ~/colcon_ws/src
$ cd ~/colcon_ws
$ colcon build --symlink-install --packages-select foxbot_tool
5. 下载Arduino其他依赖库:
bash
$ cd ~/Arduino/lib-foxbot_core3_r2
- 下载SparkFun ICM - 20948库。
- 下载micro - ROS for Arduino。
- 下载Arduino ESP32_AnalogWrite库,从网站下载并解压到~/Arduino/lib-foxbot_core3_r2
,编辑ESP32_AnalogWrite/src/analogWrite.cpp
和analogWrite.h
,添加命名空间。
6. 导入源码到VSCode PlatformIO IDE项目:启动VSCode,选择PlatformIO Home,导入Arduino项目或打开项目,选择Espressif ESP32 Dev Module
,并选择~/Documents/PlatformIO/Projects/foxbot_core3_r2
。
7. 修改配置:编辑~/Arduino/lib-foxbot_core3_r2/micro_ros_arduino/src/default_transport.cpp
,将串口波特率修改为1000000。
8. 选择发布主题:编辑foxbot_core3_r2_config.h
,配置是否发布TF静态变换和IMU数据。
9. 运行项目:
- 在SBC上运行micro - ROS代理:
bash
$ sudo chmod 777 /dev/ttyTHS1
$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyTHS1 -b 1000000
- 在远程PC上运行:
bash
$ sudo ufw disable
$ ros2 topic list
$ ros2 run turtlebot3_teleop teleop_keyboard
10. 更新日志:
- 2023.2.28:改进通信断线恢复机制,确保机器人位置和姿态信息的连续性。
- 2023.3.16:增加心跳机制,确保只有当/pc_beat
主题发布时,才处理/cmd_vel
命令。
- 2024.4.24:正式发布ROS2 Humble版本,不再使用心跳机制。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】