# Dummy-Robot: Super compact smart robotic-arm
> **我的超迷你机械臂机器人项目。**
>
> 视频介绍:[【自制】我造了一台 钢 铁 侠 的 机 械 臂 !【硬核】](https://www.bilibili.com/video/BV12341117rG)
>
> Video : [I made a DUMMY ROBOTIC ARM from scratch! - YouTube](https://www.youtube.com/watch?v=F29vrvUwqS4)
![](5.Docs/1.Images/dummy1.jpg)
![](5.Docs/1.Images/case.png)
### 资料说明(更新日期22-2-9)
* 已添加3D模型设计源文件。
* 已添加夹爪硬件设计文件和LED灯环PCB
* 已添加无线空间定位控制器PCB文件
* 已添加无线示教器Peak软硬件工程(作为submodule)
* 已添加REF的硬件设计文件
* 已添加DummyStudio上位机
* 已添加Dummy核心控制器的固件源代码(使用说明见后文)
* 已添加42步进电机驱动器硬件工程
* 已添加20步进电机驱动器硬件工程
* 已添加42/20步进电机驱动的固件源代码
* 已添加命令行调试工具reftool(基于odrivetool框架)
* 已添加便携手提箱的模型文件
> 这是视频中原版机械臂的完整设计方案,该方案成本和制作难度都比较高,因此想复现的同学建议再等等我后面会发布的**Dummy青春版**,该版本会有如下改进:
>
> 1. 整机重新设计结构,改用3D打印作为制造方案(原版为铝CNC),大幅降低制造成本
> 2. 采用我自己设计的小型摆线针轮减速器替代原版的谐波减速器,大幅降低零件成本
> 3. 所有软件和固件和原版通用,功能也完全一致
> 4. 添加我自己设计的PC端上位机和手机端APP(争取把用户初始化设置引导加进去)
> 5. 改进原版电机驱动器的走线方式,原版电源走线采用焊接的形式,不便于安装和拆卸,后面的青春版会使用4p接插件(电源+CAN总线)连接
> 6. 整机成本争取做到2000以内
> 7. **最重要的,会找人出一个保姆级的视频教程!**
## 关于结构设计
我视频中原版设计使用的`步进电机`+Harmonic的`谐波减速模组`,其中后者成本较高(我买的二手大概是600元一个),因此为了能让大家尽量复现本项目,我后期会添加一个`自制摆线针轮减速器`+`3D打印`的低成本方案。
> 目前摆线减速器已经设计好了正在验证,预期会使用PC(或者亚克力)切割结合3D打印制作,精度有所下降但是功能都保持不变,整机硬件成本希望控制在2000元以内。
设计好的摆线减速器见我的另一个仓库:[peng-zhihui/CycloidAcuratorNano ](https://github.com/peng-zhihui/CycloidAcuratorNano)
![](5.Docs/1.Images/cycliod-nano.jpg)
## 关于电路模块
电路为了实现主要的机械臂运动控制功能其实核心就4块板子:
* REF核心板
* REF底板(也就是机械臂底座里面的控制器电路板)
* 步进电机驱动
* Peak示教器
其中前两者和Peak我都开源了,步进驱动设计的时候参考了: https://github.com/unlir/XDrive 这个项目,这是我一个朋友开源的闭环驱动,基于STM32。该驱动分为开源版和闭源版,闭源版基于分立MOSFET性能极其强劲且功能很完善,开源版用的ADC+斩波驱动芯片,具备基础功能,不带CAN协议。
我重新设计了驱动器的PCB电路(本项目分别用到20、42步进,57的文件只是供大家扩展使用),添加了CAN总线的硬件支持,也对原版核心代码进行了完全重构,**提供编译好的二进制文件可以直接烧录:**
![](5.Docs/1.Images/fw2.png)
**主要改进如下:**
1. 使用C++11重构了代码,引入很多高级语言特性,同时底层部分用C混编,不影响代码性能
2. 对硬件依赖完全解耦了,可以方便以后移植到其他平台的MCU,去除了冗余代码代码也结构化逻辑更加清晰
3. 添加了CAN协议和UART协议的自定义模板
4. 添加了模拟EEPROM的参数储存,可以断电保存数据
5. 添加了任意位置设置为零点,且保证双向半圈内归零(而不是单向归零)
6. 完全兼容STM32-HAL库,可以使用STM32CubeMX直接生成配置代码
7. 其他改进,大家二次开发仅需关注UserApp文件夹下的文件即可
Ctrl-Step驱动的使用方式比较简单,下载好固件后,第一次上电电机会进行编码器校准,如果成功则下次上电后按下按键1会进入闭环模式,通过CAN或者串口发送指令即可控制电机,关于指令的说明见源代码`UserApp`文件夹的`interface_can.cpp`和`interface_uart.cpp`:
![](5.Docs/1.Images/fw3.png)
> 其他按键的作用:
>
> * 同时按住两个按键上电,会自动进行编码器校准,如果首次校准失败可以通过这个方式重新校准
> * 短按按键1在**使能闭环/失能闭环**间切换
> * 长按按键1板子重启
> * 短按按键2清除堵转保护
> * 长按按键2将目标值归零(比如如果是在位置模式那位置会归零)
>
> 其他的功能要通过代码或者通信协议设置,比如设置**home零点**、**PID参数**、CAN节点ID、**各种运动参数**等等,可以自己研究代码。
当然另一种方式是大家也可以自行使用GRBL类的驱动器改装用来驱动本机械臂,这样方案的问题在于,grbl固件耦合性比较强(毕竟不是针对机械臂而是CNC类应用设计的)不便于扩展,另外脉冲形式的控制方式使得走线极其不优雅(每一个关节都要单独拉`step/dir`线到控制器,导致最后几个关节走线很长)。
而我用一体闭环的方式则可以以串联的形式把所有电机连起来即可,走CAN总线使得整体走线只需要四根线(电源正负两根,CAN信号线两根),此外总线模型使得电机可以工作在`力矩`、`速度`、`位置`、`轨迹`模式下,而脉冲模式只能工作在位置和轨迹模式,无法进行复杂控制。
**Peak的话我之前已经软硬件都开源了,可以去SubModules文件夹里面看那边的README说明。**
## 关于核心固件
这个机械臂的固件核心就是运动学姿态解算,~~这块我还在整理,后面会封装得更完善一些进行开源~~,**已开源**,现在写死的很多参数会设计成可配置的,**方便大家用本项目学习完后迁移到自己设计的机械臂中**。
**REF的固件使用说明:**
固件主要包括几大功能模块:
* BSP驱动:板载的各种硬件驱动比如OLED、IMU、LED、蜂鸣器、非易失储存等等
* 3rdParty库:包括U8G2的图形库和Fibre的序列化/反序列化库
* Core:ST官方的HAL库
* Driver:ARM的CMSIS驱动
* Midwares:FreeRTOS支持包
* Robot:核心机器人库,包括各种算法和驱动代码
* UserApp:上层应用,可以基于我提供的API接口自行开发其他应用
> * 其中OLED使用Arduino的U8G2库移植而来,可以方便地现实各种调试和系统信息,另外由于STM32的硬件I2C又BUG这里使用了软件I2C驱动屏幕,实测帧率比硬件I2C更高。
`DummyRobot`类是Dummy的完整定义所在,初始化的时候需要设置好**步进电机驱动的信息**以及**自身的DH参数**:
![](5.Docs/1.Images/fw1.jpg)
其中驱动器信息包含:CAN节点ID、**是否反向**、减速器的减速比、**运动限制范围**。
而DH参数的含义如下:
![](5.Docs/1.Images/fw2.jpg)
机械臂的构型需要满足Pieper判据(机器人的三个相邻关节轴交于一点或三轴线平行),才能得出解析解,所以大家可以根据Dummy的结构进行修改,然后自己替换DH参数即可以移植我的代码。
> 关于位置的记忆,和上电零点校准:
>
> **由于绝对值编码器的位置只在一圈内有效,工业机械臂经过减速后为了获取绝对位置一般是做输出端编码,但�
没有合适的资源?快使用搜索试试~ 我知道了~
Dummy-Robot-main.zip
共789个文件
c:203个
h:201个
dll:78个
需积分: 0 2 下载量 200 浏览量
2023-01-31
09:17:04
上传
评论
收藏 86.64MB ZIP 举报
温馨提示
Dummy-Robot-main.zip
资源推荐
资源详情
资源评论
收起资源包目录
Dummy-Robot-main.zip (789个子文件)
libarm_cortexM4lf_math.a 3MB
Motor-42.apr 3KB
Motor-57.apr 3KB
Motor-42-macro.APR_LIB 16KB
Motor-57-macro.APR_LIB 16KB
DefaultWsdlHelpGenerator.aspx 59KB
DefaultWsdlHelpGenerator.aspx 59KB
DefaultWsdlHelpGenerator.aspx 59KB
sharedassets0.assets 9.16MB
globalgamemanagers.assets 105KB
resources.assets 62KB
run.bat 126B
Compat.browser 2KB
Compat.browser 2KB
Compat.browser 2KB
u8g2_fonts.c 28.58MB
u8x8_fonts.c 1.53MB
u8g2_d_setup.c 278KB
stm32f4xx_hal_tim.c 236KB
stm32f1xx_hal_tim.c 235KB
stm32f4xx_hal_i2c.c 234KB
tasks.c 169KB
stm32f4xx_hal_rcc_ex.c 152KB
stm32f1xx_hal_uart.c 128KB
stm32f4xx_hal_uart.c 128KB
stm32f1xx_hal_spi.c 124KB
stm32f4xx_hal_spi.c 121KB
sca_api.c 96KB
queue.c 91KB
stm32f1xx_hal_adc.c 90KB
stm32f4xx_hal_can.c 79KB
stm32f4xx_hal_tim_ex.c 79KB
stm32f1xx_hal_can.c 78KB
stm32f1xx_hal_tim_ex.c 77KB
stm32f4xx_hal_adc.c 76KB
stm32f4xx_hal_pcd.c 59KB
u8x8_d_st75256.c 57KB
stm32f4xx_ll_usb.c 57KB
cmsis_os2.c 57KB
stm32f1xx_hal_adc_ex.c 51KB
stm32f4xx_hal_flash_ex.c 49KB
stm32f1xx_hal_rcc.c 48KB
u8x8_d_st7565.c 47KB
stm32f4xx_ll_adc.c 42KB
stm32f4xx_hal_rcc.c 42KB
stream_buffer.c 41KB
stm32f4xx_hal_adc_ex.c 41KB
timers.c 39KB
stm32f4xx_hal_dma.c 39KB
usbd_cdc.c 36KB
stm32f1xx_hal_flash_ex.c 35KB
u8x8_d_ssd1327.c 33KB
u8g2_font.c 33KB
u8x8_d_st7567.c 32KB
stm32f1xx_hal_rcc_ex.c 29KB
port.c 29KB
stm32f1xx_hal_flash.c 29KB
sca_protocol.c 28KB
stm32f1xx_hal_dma.c 27KB
u8x8_d_uc1611.c 26KB
system_stm32f4xx.c 26KB
u8g2_d_memory.c 26KB
event_groups.c 25KB
stm32f4xx_hal_flash.c 24KB
usbd_conf.c 23KB
stm32f4xx_hal_pwr_ex.c 22KB
u8x8_d_ssd1607_200x200.c 21KB
u8x8_cad.c 21KB
stm32f1xx_hal_gpio.c 20KB
stm32f1xx_hal_pwr.c 20KB
stm32f4xx_hal_pwr.c 20KB
stm32f1xx_hal.c 20KB
tim.c 20KB
u8x8_d_t6963.c 19KB
stm32f4xx_hal.c 19KB
u8x8_d_uc1608.c 19KB
u8x8_d_ssd1320.c 19KB
stm32f4xx_hal_gpio.c 18KB
stm32f1xx_hal_cortex.c 18KB
stm32f4xx_hal_cortex.c 18KB
u8x8_d_sh1107.c 18KB
u8x8_d_ssd1306_128x64_noname.c 18KB
u8x8_byte.c 17KB
usbd_ctlreq.c 17KB
u8x8_d_ssd1322.c 17KB
u8x8_d_il3820_296x128.c 17KB
u8x8_d_max7219.c 16KB
u8x8_d_ssd1325.c 16KB
u8x8_d_ssd1305.c 16KB
u8x8_d_lc7981.c 16KB
heap_4.c 15KB
stm32f1xx_hal_exti.c 15KB
stm32f4xx_hal_exti.c 15KB
system_stm32f1xx.c 14KB
usbd_desc.c 14KB
u8x8_d_st7528.c 14KB
stm32f4xx_it.c 14KB
u8x8_d_ssd1606_172x72.c 13KB
u8x8_d_sed1330.c 13KB
croutine.c 13KB
共 789 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
nyalle
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功