项目简介
本项目是FRA532移动机器人课程面向泰国国王科技大学(KMUTT)实地机器人研究所(FIBO)三年级学生的考试项目。基于Python和ROS2框架开发,实现对移动机器人的控制、传感器数据处理、坐标变换以及多种运动路径的规划,还通过一系列实验探究机器人运动控制中的各种关系。
项目的主要特性和功能
- 多模式通信:支持ESPino32的串口和Wifi两种通信模式,便于与机器人进行数据交互。
- 数据接收与处理:通过
robot_bridge.py
接收机器人各种数据,用于机器人的定位(EKF)。 - 运动控制:
robot_controller.py
可向机器人发送运动指令,支持直线、圆形、方形等多种运动路径。 - 可视化:使用
robot_description.py
在RVIZ中可视化机器人模型,直观展示机器人状态。 - 实验探究:包含多个实验,探究Dynamixel电机控制命令关系、机器人实际值与轮式里程计值关系、命令与机器人运动关系等。
安装使用步骤
安装
- 将仓库复制到工作空间的
src
目录:cd ~/[your_workspace]/src
- 运行
rosdep install
安装依赖:rosdep update rosdep install --from-paths src -y --ignore-src
- 在工作空间中构建软件包:
cd ~/[your_workspace] colcon build source install/setup.bash
使用
- 终端1:运行ESPino32
- 串口模式:
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0 -b 115200
修改platformio.ini
中的board_microros_transport
为serial
,并在Main.cpp
中添加相关代码。 - Wifi模式:
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888
修改platformio.ini
中的board_microros_transport
为wifi
。
- 串口模式:
- 终端2:运行
robot_bridge.py
接收机器人的各种数据,用于机器人定位(EKF):ros2 run robot_bridge robot_bridge.py
- 终端3:启动
test.launch.py
使用robot_localization
软件包:ros2 launch robot_bridge test.launch.py
- 终端4:运行
robot_controller.py
向机器人发送运动指令:ros2 run robot_controller robot_controller.py
- 终端5:启动
robot_description.py
在RVIZ中可视化机器人模型:ros2 launch robot_description display.launch.py
- 终端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】