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

【源码】基于MicroROS框架的机器人颈部控制系统

项目简介

本项目致力于开发一个机器人颈部系统,借助电机控制实现俯仰和横滚轴的移动,从而扩大单个激光雷达(LIDAR)的视野范围。系统采用Raspberry Pi Pico微控制器,运用Micro-ROS框架进行开发,以控制和协调各模块功能。

项目的主要特性和功能

  1. 多模块协作:整合Raspberry Pi Pico微控制器、双H桥、带编码器的直流电机、惯性测量单元(IMU)、降压转换器和限位开关等模块,协同实现机器人颈部运动控制与状态监测。
  2. 电机精确控制:利用双H桥独立控制电机方向和速度,结合编码器反馈信息,精确控制电机转速和位移。
  3. 状态感知:IMU测量系统三轴线性加速度和角速度,提供方向和运动信息;限位开关检测和限制机械运动,建立原点或参考点。
  4. 高效通信:通过Micro-ROS通信协议(运行在串行UART协议之上),实现微控制器与操作系统间通信,支持数据交互。

安装使用步骤

安装依赖软件

  1. 安装Ubuntu 22.04操作系统。
  2. 按官方文档安装ROS2 Humble(桌面版)、Vulcanexus(基础版)、Arduino库和Micro-ROS框架。
  3. 在Visual Studio Code中安装PlatformIO工具。

配置项目

将项目仓库作为PlatformIO项目安装,等待依赖项下载和编译完成。

硬件连接与配置

  1. 根据电子系统底层图和电气原理图,连接Raspberry Pi Pico、双H桥、带编码器的电机、限位开关、降压转换器和IMU等硬件组件。
  2. 为电机提供12V、最大电流3A的电源,其余组件通过USB - Micro USB连接个人计算机与微控制器供电。
  3. 使用C++语言和PlatformIO编译器编程,因Arduino框架稳定版不支持I2C通信,采用两个微控制器方案,用Arduino Uno模块开发版框架建立I2C通信。

运行示例

  1. 打开platformio.ini文件,设置build_src_filter = +<examples/pub_sub_timer/*> -<.git/> -<.svn/>
  2. 编译并将.pio/build/pico/文件夹内的firmware.uf2文件上传到Raspberry Pi Pico。
  3. 查找串口设备名称:ls /dev/serial/by-id/*
  4. 启动micro_ros_agent:ros2 run micro_ros_agent micro_ros_agent serial --dev [设备名称]
  5. 使用ROS Qt工具可视化消息:rqt
  6. 通过以下命令控制LED:
    • 熄灭LED:ros2 topic pub /micro_ros_subcriber std_msgs/msg/Int32 data:\ 0\
    • 点亮LED:ros2 topic pub /micro_ros_subcriber std_msgs/msg/Int32 data:\ 1\

下载地址

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