项目简介
本项目致力于开发一个机器人颈部系统,借助电机控制实现俯仰和横滚轴的移动,从而扩大单个激光雷达(LIDAR)的视野范围。系统采用Raspberry Pi Pico微控制器,运用Micro-ROS框架进行开发,以控制和协调各模块功能。
项目的主要特性和功能
- 多模块协作:整合Raspberry Pi Pico微控制器、双H桥、带编码器的直流电机、惯性测量单元(IMU)、降压转换器和限位开关等模块,协同实现机器人颈部运动控制与状态监测。
- 电机精确控制:利用双H桥独立控制电机方向和速度,结合编码器反馈信息,精确控制电机转速和位移。
- 状态感知:IMU测量系统三轴线性加速度和角速度,提供方向和运动信息;限位开关检测和限制机械运动,建立原点或参考点。
- 高效通信:通过Micro-ROS通信协议(运行在串行UART协议之上),实现微控制器与操作系统间通信,支持数据交互。
安装使用步骤
安装依赖软件
- 安装Ubuntu 22.04操作系统。
- 按官方文档安装ROS2 Humble(桌面版)、Vulcanexus(基础版)、Arduino库和Micro-ROS框架。
- 在Visual Studio Code中安装PlatformIO工具。
配置项目
将项目仓库作为PlatformIO项目安装,等待依赖项下载和编译完成。
硬件连接与配置
- 根据电子系统底层图和电气原理图,连接Raspberry Pi Pico、双H桥、带编码器的电机、限位开关、降压转换器和IMU等硬件组件。
- 为电机提供12V、最大电流3A的电源,其余组件通过USB - Micro USB连接个人计算机与微控制器供电。
- 使用C++语言和PlatformIO编译器编程,因Arduino框架稳定版不支持I2C通信,采用两个微控制器方案,用Arduino Uno模块开发版框架建立I2C通信。
运行示例
- 打开platformio.ini文件,设置
build_src_filter = +<examples/pub_sub_timer/*> -<.git/> -<.svn/>
。 - 编译并将
.pio/build/pico/
文件夹内的firmware.uf2文件上传到Raspberry Pi Pico。 - 查找串口设备名称:
ls /dev/serial/by-id/*
。 - 启动micro_ros_agent:
ros2 run micro_ros_agent micro_ros_agent serial --dev [设备名称]
。 - 使用ROS Qt工具可视化消息:
rqt
。 - 通过以下命令控制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\
- 熄灭LED:
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】