Quantcast
Channel: Sam的技术Blog
Viewing all articles
Browse latest Browse all 158

HANDS-FREE学习 

$
0
0
作者:Sam (甄峰)  sam_code@hotmail.com

0.Hands-Free简介:
HANDS FREE是一个面向机器人研究,开发的开源软硬件平台。
从某种意义来说,这个项目是提供一个比较完整的软件架构+一个机器人底盘。开发者可以依托这个软件架构,开发或修改架构内某些模块,并把这个软件架构实施与上位机中,同时Hands Free项目提供的硬件平台则是一个底盘,它则是作为下位机。接受上位机指令,执行指令,并反馈信息(速度/距离)。

HANDS FREE项目中包含机器人导航,SLAM,计算机视觉等模块,并有自己的上层软件和调试系统,它也支持国外的开源项目,如ROS,MPRT, PIXHAWK等。


1. 软件模块介绍
1.1: OpenRE
Open Source Rebot Embedded Library。机器人嵌入式库。它是为机器人构建的,基于STM32系列微处理器的嵌入式开源库。最早,它是Hands Free 项目的Embedded库,使用Windows Keil开发。
当前开发环境变化为:Linux下,Makefile +QTCreator+ARMGCC.
总的来说,它就是为了方便在各种硬件平台下,制作底盘的例子和库。

0_Project: 工程入口,对不同平台的示例。
1_Processor: 与CPU有关的固件库和底层接口函数。
2_Package: 功能包。与底层无关的功能包。涵盖了伺服设备,传感器,输入输出设备包,算法包,通信包。是OpenRE的核心部分之一。
3_OS: OS层面的支持库,涵盖RTOS, GUI,FSTFS, IO等。
4_LIbS: 放置第三方库,如Eigen.
TOOLS: 编译和烧入工具。
HANDS-FREE-OpenRE.pro: QT工程文件,Qt Creator打开编辑。Make来编译。

2_Package中,有Sam感兴趣的几个部分:
imu:IMU包,加速度,陀螺仪,磁力等。(有文档:Hands_Free_IMU_Algorithm.pdf)
motor:电机包。负责所有电机的速度闭环控制。
控制算法,运动学和动力学模型。

这个模块,其实就是Hands Free的核心,它的思路不是要提供一个完整的机器人,只是解决大家实际工作中的一个大问题,无法构建自己的机器人底层,如运动地盘,行走部件等。





1.2:PCB:
各机器人的实体资料。PCB,电路等。
JILONG, STONE等几个机器人。

1.3:Robot:
基于Hands Free底层构建的几个Robot资料。主要是文档。

1.4:ROS_DEMO:
Hands Free平台在ROS下的实现代码,

1.5: PIL:
一个计算机视觉库。


2. 硬件介绍
2.1:主控:
主控为STM32, 外接Sensor有MPU6050, HMC5883L磁力计,MS5611气压计。
2.2:电机驱动:
使用BTS7960B .
2.3: 电源分配模块:


总结:
Hands Free提供了一套硬件,与之匹配的Firmware, 让我们从底层地盘研究中脱离出来。把注意力集中在上位机各模块的开发中去。

同时,它有提供了底层各个库,如对电机控制,IMU等。让大家可以参考这个设计,制作自己的底盘。

为OpenSource,为Hands-Free点赞。






 

Viewing all articles
Browse latest Browse all 158

Trending Articles