littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于Python和ROS2框架的移动机器人控制与实验项目

项目简介

本项目是FRA532移动机器人课程面向泰国国王科技大学(KMUTT)实地机器人研究所(FIBO)三年级学生的考试项目。基于Python和ROS2框架开发,实现对移动机器人的控制、传感器数据处理、坐标变换以及多种运动路径的规划,还通过一系列实验探究机器人运动控制中的各种关系。

项目的主要特性和功能

  1. 多模式通信:支持ESPino32的串口和Wifi两种通信模式,便于与机器人进行数据交互。
  2. 数据接收与处理:通过robot_bridge.py接收机器人各种数据,用于机器人的定位(EKF)。
  3. 运动控制:robot_controller.py可向机器人发送运动指令,支持直线、圆形、方形等多种运动路径。
  4. 可视化:使用robot_description.py在RVIZ中可视化机器人模型,直观展示机器人状态。
  5. 实验探究:包含多个实验,探究Dynamixel电机控制命令关系、机器人实际值与轮式里程计值关系、命令与机器人运动关系等。

安装使用步骤

安装

  1. 将仓库复制到工作空间的src目录: cd ~/[your_workspace]/src
  2. 运行rosdep install安装依赖: rosdep update rosdep install --from-paths src -y --ignore-src
  3. 在工作空间中构建软件包: cd ~/[your_workspace] colcon build source install/setup.bash

使用

  1. 终端1:运行ESPino32
    • 串口模式ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0 -b 115200 修改platformio.ini中的board_microros_transportserial,并在Main.cpp中添加相关代码。
    • Wifi模式ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 修改platformio.ini中的board_microros_transportwifi
  2. 终端2:运行robot_bridge.py 接收机器人的各种数据,用于机器人定位(EKF): ros2 run robot_bridge robot_bridge.py
  3. 终端3:启动test.launch.py 使用robot_localization软件包: ros2 launch robot_bridge test.launch.py
  4. 终端4:运行robot_controller.py 向机器人发送运动指令: ros2 run robot_controller robot_controller.py
  5. 终端5:启动robot_description.py 在RVIZ中可视化机器人模型: ros2 launch robot_description display.launch.py
  6. 终端6:选择命令发布数据 ros2 topic pub /robot_command std_msgs/msg/Int8 'data: 1' # IDLE State (Not Move) ros2 topic pub /robot_command std_msgs/msg/Int8 'data: 2' # regtangle_path (via points) ros2 topic pub /robot_command std_msgs/msg/Int8 'data: 3' # circle_path ros2 topic pub /robot_command std_msgs/msg/Int8 'data: 4' # linear_path

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】