Minima

Minima是一款五轴舵机机械臂,它的制造相对于工业机械臂来说成本较低。但是作为教育级用途, 我们希望能够通过Minima让大家快速上手并了解机械臂的完整工作流程。

Minima机械臂系统架构

工业机械臂平台架构主要包括机械臂本体、电源供应、控制器、传感器和中央处理器(电脑)。我们的教育机械臂展现了工业机械臂的核心组成部分,但采用了更经济实惠的替代方案:

系统组成 工业机械臂 Minima教育机械臂
电源系统 三相高压电源(380V/220V)驱动大功率伺服电机 6V直流电源驱动舵机
通讯协议 CAN总线或EtherCAT等工业级通讯协议 I2C协议
控制系统 专业的PLC或工控机 ESP32微控制器
驱动系统 伺服电机、减速器和专业驱动器 集成驱动电路的数字舵机
计算机系统 专业优化的操作系统 普通家用电脑

本页面将指导您完成从环境准备到实际操作Minima的各项流程。

快速导航:


用户手册

1. 产品参数

  • 精度: ±0.1mm
  • 工作电压: 6V DC
  • 自由度: 5轴
  • 主要材料: ABS (FDM)
  • 通讯方式: USB串口/支持wifi,蓝牙拓展
  • 电机: 高精度金属舵机
  • 最大负载: 500g
  • 工作范围: 半径约150mm

2. 装配

请安装详细装配图对机械臂进行安装:下载装配图

请根据电路图对内部电路进行确认和维护: 下载电路图

3. 注意事项

  • 使用前请仔细阅读说明书,确保正确连接所有部件。
  • 首次使用时,请使用我们的软件进行校准,并确保所有关节运动正常。
  • 请勿超过最大负载限制,以免损坏电机或机械结构。
  • 在进行任何维护或调整之前,请务必断开电源。
  • 使用过程中如遇到异常情况,请先尝试重启机械臂(包括断电重启和软件内重启)。
  • 请将机械臂放置在平稳的表面上使用,避免意外跌落。
  • 本产品面向青少年和成人,儿童使用时需有成人监督。

如需更多详细信息或技术支持,请联系我们的客户服务团队。


软件下载

如果您不使用电位器控制器,可以下载我们提供的示教器软件来控制 Minima 机械臂。我们为不同操作系统提供了相应的软件版本。

上位机软件下载

使用说明

下载并安装适合您操作系统的版本后,请参考软件内的使用说明进行操作。如遇到任何问题,请查看我们的常见问题解答或联系我们的技术支持。

机械臂主控固件

注意:机械臂主控固件已预先安装在您的机械臂中,用户通常无需自行下载或安装。如果您需要重新安装固件或进行手动更新,可以从以下链接下载最新版本的固件:下载 Minima 机械臂固件

我们建议通过示教器软件自动烧录固件。只需在示教器软件中找到"固件"选项,然后按照提示进行操作烧录最新固件。


ROS

Step 1: 准备您的环境

ROS版本对应固定的Ubuntu版本。本机械臂在Ubuntu 20.04 LTS环境下使用ROS noetic开发,以下说明和教程安装均在ROS noetic下完成。您可以在虚拟机(VirtualBox, Vmware Workstation Pro等)或者物理Ubuntu系统下安装镜像文件

通常情况下,安装物理的Ubuntu系统是更好的选择,因为在虚拟机中,3D加速和USB设备的支持会受到限制。

注意:您可以在树莓派上安装ROS,但不幸的是,它的性能不足以运行Rviz中的模拟,更不用说Gazebo了。

  1. 配置ROS环境。请按照这个快速安装指南在对应Ubuntu版本上安装ROS。您需要依照每一步骤在终端下完成安装。
  2. MoveIt!是ROS中用于移动操作的软件包。检查MoveIt!是否正常工作。运行以下命令:
    roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
    如果您愿意,可以按照MoveIt基础教程进行操作。

然后,您可以直接下载我们预处理完成的ROS workspace,其中包括URDF文件和Moveit!配置包。如果想深入了解ROS机械臂配置过程,可以根据以下两步指南进行手动配置。

Step 2: Unified Robot Description Format (URDF)

我们已经为您准备好了Minima的统一机器人描述格式文件。您可以从我们的GitHub仓库下载这个URDF文件

我们将简要介绍URDF文件的结构和内容,以帮助您更好地理解它,并在将来编写自己的URDF文件时作为参考。

连接(Links)

连接是机器人的各个部分,如手腕或平台。它们具有以下属性:

  • 用于在Rviz和Gazebo中进行视觉表示。使用高质量的网格模型。
  • 用于路径规划期间的碰撞检查。建议使用低质量的网格模型,但为了教程的目的,我们使用与视觉相同的模型。

关节(Joints)

URDF中的关节是链接之间的连接,描述了它们之间的相对位置和运动方式。它们具有以下属性:

  • 关节的旋转方向(沿x、y或z轴)
  • 关节的最小和最大角度(以弧度为单位)。仅适用于"revolute"类型的关节("continuous"类型的关节没有限制,因为它们可以连续旋转)
  • 关节相对于原点的位置
  • 描述哪两个链接通过该关节连接

使用3D网格模型

如果您使用的是与我相同的机械臂,您需要将机械臂的3D网格模型复制到urdf_tutorial包文件夹中。使用以下命令:

sudo cp <要复制的文件名> /opt/ros/kinetic/share/urdf_tutorial/meshes/

如果您使用自己的网格模型,请确保在将它们导出为二进制STL格式之前,它们在3D建模软件中以原点(xyz 000)为中心。

在Rviz中可视化结果

现在您可以启动Rviz来可视化结果,使用以下命令:

>roslaunch urdf_tutorial display.launch model:=arm.urdf

(从您刚刚创建的URDF文件所在的文件夹中启动)

检查关节和链接,确保它们的旋转和位置完全符合预期。如果一切正常,请继续下一步。

Step 3: 使用MoveIt Setup Assistant创建机器人配置

现在您的URDF文件已经准备好了,是时候将它转换为机器人配置包了。

使用以下命令启动MoveIt Setup Assistant:

>roslaunch moveit_setup_assistant setup_assistant.launch

这个过程在MoveIt官方教程中有非常详细的描述:您可以在这里找到。

创建配置包后:进入您的catkin工作空间文件夹并执行以下命令来构建包:

>catkin make
>source devel/setup.bash

现在您可以使用以下命令启动它:

>roslaunch my_arm_xacro demo.launch rviz_tutorial:=true

其中,您需要将"my_arm_xacro"更改为您的包的名称。

Step 4: 连接控制板至ROS

在我们的案例中,ESP32运行一个带有rosserial的ROS节点将作为机器人控制器。ESP32的代码附加在此步骤中,也可以在GitHub上获取。

在ESP32上运行的ROS节点基本上订阅了在运行MoveIt的计算机上发布的/JointState主题,然后将数组中的关节角度从弧度转换为度,并使用ESP32的PWM功能将它们传递给伺服电机。

这不是工业机器人的标准做法。理想情况下,您应该在/FollowJointState主题上发布运动轨迹,然后在/JointState主题上接收反馈。但在我们的机械臂中,舵机无法提供反馈,所以我们将直接订阅由FakeRobotController节点发布的/JointState主题。我们假设传递给电机的任何角度没有任何误差。

有关rosserial如何工作的更多信息,您可以参考以下教程:

http://wiki.ros.org/rosserial_arduino/Tutorials

将代码上传到ESP32后,您需要使用USB或Wi-Fi将其连接到运行ROS安装的计算机。

使用USB连接至机械臂后,执行以下命令以进行串口通讯:

>roslaunch my_arm_xacro demo.launch rviz_tutorial:=true
>sudo chmod -R 777 /dev/ttyUSB0
>rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0 _baud:=115200 

现在,您可以使用RVIZ中的交互式标记将机器人手臂移动到某个姿势,然后按下"Plan"和"Execute",使其实际移动到该位置。


ROS2

本节将指导您在ROS2环境下配置和使用Minima机械臂。我们同样使用Ubuntu 22.04 LTS但是这次安装ROS2 Humble。

根据官方教程,ROS2支持Linux和Windows系统。我们将分别对Linux和Windows系统进行配置。但是,我们仍然建议使用Linux环境。

Linux环境配置

  1. 配置ROS2环境。请按照这个快速安装指南在对应Ubuntu版本上安装ROS2。您需要依照每一步骤在终端下完成安装。
  2. MoveIt!是ROS中用于移动操作的软件包。检查MoveIt!是否配置成功。运行以下命令:
    roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
    如果您愿意,可以按照MoveIt基础教程进行操作。
  3. 然后,您可以直接下载我们预处理完成的ROS2 workspace,其中包括URDF文件和MoveIt2配置包。
  4. 创建配置包后,进入您的工作空间并编译:
    cd ~/ros2_ws
    colcon build
    source install/setup.bash
  5. 启动MoveIt2配置:
    ros2 launch my_robot_moveit_config demo.launch.py
  6. 在ROS2中,我们使用micro-ROS替代了ROS1中的rosserial。ESP32运行micro-ROS客户端,与ROS2节点进行通信。micro-ROS节点订阅/joint_states话题,将关节角度从弧度转换为度,并通过PWM控制舵机。有关micro-ROS的更多信息,请参考micro-ROS教程
  7. 通过USB物理连接机械臂:
    ros2 launch my_robot_moveit_config demo.launch.py
    sudo chmod 666 /dev/ttyUSB0
    ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0 -b 115200
  8. 现在您可以在RViz2中使用交互式标记控制机械臂,规划并执行运动。

Windows环境配置

  1. 配置ROS2环境。在Windows系统下,我们使用Chocolatey包管理器来安装ROS2。
  2. 打开拥有管理员权限的命令提示符并输入以下命令来通过Chocolatey安装Python:
    choco install -y python --version 3.8.3

    注意:Chocolatey会将Python安装在C:\Python38目录下,后续安装步骤都假定Python安装在该位置。如果您将Python安装在其他位置,必须将其复制或链接到此位置。

  3. 安装Visual C++运行时库。打开命令提示符并输入以下命令通过Chocolatey安装:
    choco install -y vcredist2013 vcredist140
  4. 安装OpenSSL:
    1. 从OpenSSL官网下载Win64 OpenSSL v1.1.1t安装包。请注意不要下载Win32或Light版本,也不要下载v3.X.Y版本的安装包。
    2. OpenSSL官网已经不再支持预编译的1.1.1版本。您可在OpenSSL releases下载源码,或使用Chocolatey包管理器(推荐)安装OpenSSL 1.1.1:
      choco install openssl --version=1.1.1.1400
    3. 打开命令提示符,运行以下命令设置环境变量:
      setx /m OPENSSL_CONF "C:\Program Files\OpenSSL-Win64\bin\openssl.cfg"
    4. 将OpenSSL添加到系统PATH:
      • 点击Windows图标,输入"Environment Variables"
      • 点击"编辑系统环境变量"
      • 在弹出的对话框中点击"环境变量"
      • 在下方窗格中选择"Path"变量并点击"编辑"
      • 添加以下路径:C:\Program Files\OpenSSL-Win64\bin\
  5. 安装Visual Studio 2019:
    1. 如果您已经安装了Visual Studio 2019的付费版本(Professional或Enterprise),可以跳过此步骤。
    2. Microsoft提供免费的VS 2019 Community版本。您可以通过官方链接下载安装程序。
    3. 确保安装Visual C++功能:
      • 在安装过程中选择"使用C++的桌面开发"工作流
      • 在安装组件列表中取消选择所有C++ CMake工具
  6. 安装OpenCV:
    1. 下载预编译的OpenCV 3.4.6版本:
      • 此链接下载OpenCV 3.4.6
      • 将下载的文件解压到C:\opencv目录
    2. 以管理员权限打开命令提示符,运行以下命令设置环境变量:
      setx /m OpenCV_DIR C:\opencv
    3. 将OpenCV添加到系统环境变量PATH。添加以下路径:C:\opencv\x64\vc16\bin
  7. 安装CMake和其他依赖项:
    1. 使用Chocolatey安装CMake:
      choco install -y cmake
    2. 将CMake添加到系统环境变量PATH。添加以下路径:C:\Program Files\CMake\bin
    3. ROS2 Chocolatey包发布页面下载以下包:
      • asio.1.12.1.nupkg
      • bullet.3.17.nupkg
      • cunit.2.1.3.nupkg
      • eigen.3.3.4.nupkg
      • tinyxml-usestl.2.6.2.nupkg
      • tinyxml2.6.0.0.nupkg
    4. 以管理员权限打开命令提示符,运行以下命令安装这些包(请将 <PATH\TO\DOWNLOADS> 替换为您下载包的实际路径):
      choco install -y -s <PATH\TO\DOWNLOADS> asio cunit eigen tinyxml-usestl tinyxml2 bullet
    5. 升级pip和setuptools:
      python -m pip install -U pip setuptools==59.6.0
    6. 安装ROS2所需的Python依赖:
      python -m pip install -U catkin_pkg cryptography empy importlib-metadata jsonschema lark==1.1.1 lxml matplotlib netifaces numpy opencv-python PyQt5 pillow psutil pycairo pydot pyparsing==2.4.7 pyyaml rosdistro
    7. 安装xmllint:
      1. https://www.zlatkovic.com/projects/libxml/ 下载以下64位二进制文件:
        • iconv
        • libxml2
        • zlib
      2. 将所有文件解压到 C:\xmllint 目录
      3. 将xmllint添加到系统环境变量PATH,添加以下路径:C:\xmllint\bin
    8. 安装Qt:
      1. Qt官网下载Qt 5.12.X离线安装包
      2. 运行安装程序,在Qt -> Qt 5.12.12目录下选择MSVC 2017 64-bit组件
      3. 以管理员权限打开命令提示符,设置以下环境变量(假设Qt安装在默认位置C:\Qt):
        setx /m Qt5_DIR C:\Qt\Qt5.12.12\5.12.12\msvc2017_64
        setx /m QT_QPA_PLATFORM_PLUGIN_PATH C:\Qt\Qt5.12.12\5.12.12\msvc2017_64\plugins\platforms

        注意:根据实际安装的MSVC版本、Qt安装目录和Qt版本,以上路径可能需要调整。

    9. 安装Graphviz:
      1. Graphviz官网下载Windows安装包
      2. 运行安装程序,在安装过程中选择将Graphviz添加到系统PATH(可以选择"当前用户"或"所有用户")
      3. 注意:Graphviz是运行rqt_graph所必需的依赖项。

    10. 下载并安装ROS2:
      1. 访问ROS2发布页面
      2. 下载最新的Windows安装包(例如:ros2-package-windows-AMD64.zip)

        注意:可能会有多个二进制下载选项,文件名可能会有所不同。

      3. 将下载的zip文件解压到指定目录(例如:C:\dev\ros2_humble)
    11. 设置ROS2环境:
      1. 打开命令提示符,运行以下命令来设置ROS2工作空间:
        call C:\dev\ros2_iron\local_setup.bat

        注意:如果命令执行后出现一次"系统找不到指定的路径"的提示是正常现象,只要没有其他错误即可。

      2. 若您仍然遇到问题请尝试运行这个脚本修复环境和安装确实的依赖


Minima示教器

Minima示教器是Minima机械臂的配套软件,提供直观的图形界面来控制机械臂。它包含以下主要功能模块:

  • Controller控制器 - 核心控制模块,提供基础的机械臂控制功能
  • Anytroller通用控制器 - 提供任意机械臂的控制接口
  • ROS接口 - 与ROS系统的集成接口
  • 运动学模块 - 处理机械臂正逆运动学计算和扩展应用
  • 固件管理 - 机械臂固件的更新与管理

Controller 控制器

Controller是Minima示教器的核心控制模块,提供直观的图形界面来控制机械臂。

连接控制

功能 描述 参数
Connect 连接到机械臂
  • 串口: COM1-COM99
  • 波特率: 115200
Disconnect 安全断开连接
Refresh 刷新可用串口列表

运动控制

功能 描述 参数范围
电位器开关 切换控制模式 ON/OFF
关节滑块 控制各关节角度 -180° ~ +180°
末端执行器 控制夹爪开合 OPEN/CLOSE
归零按钮 使机械臂回到初始位置 -
执行按钮 执行当前设定的动作 -
注意事项:
  • 首次使用请进行Home位置校准
  • 切换模式前确保机械臂处于安全位置
  • 注意工作空间限制

Anytroller

Anytroller是一个通用机械臂控制接口,支持1-8个关节的自定义机械臂配置和控制。

初始化配置

参数 描述 取值范围
关节数量 设置机械臂的关节数 1-8个
初始位置 各关节的起始角度 -180° ~ +180°
运动范围 各关节的最大运动范围 可自定义限位角度

控制功能

功能 描述 参数
关节控制 独立控制每个关节
  • 角度: -180° ~ +180°
  • 速度: 0-100%
同步运动 多关节协同运动 支持自定义运动序列
Home位置 返回预设的初始位置 可自定义Home位置
使用注意:
  • 首次使用前必须完成初始化配置
  • 确保所有关节参数设置正确,避免碰撞
  • 建议先在低速模式下测试运动
  • 保存配置后可导出为配置文件供后续使用

ROS接口

ROS接口模块提供了与ROS1和ROS2系统的集成功能,让用户能够通过ROS生态系统来控制和开发Minima机械臂应用。

ROS配置

功能 描述 参数
System Check 检查ROS环境配置
  • ROS版本检测
  • 依赖包检查
  • 工作空间验证
Switch Mode 切换到ROS控制模式
  • ROS1模式
  • ROS2模式
URDF配置 机械臂模型配置
  • ROS1 URDF
  • ROS2 URDF
  • 自定义URDF导入
Workspace 工作空间配置
  • catkin_ws (ROS1)
  • colcon_ws (ROS2)
  • 包管理
MoveIt配置 运动规划配置
  • MoveIt Setup Assistant
  • 规划组配置
  • 控制器配置
使用说明:
  • 首次使用请先运行System Check确保环境正确置
  • 切换ROS模式前请确保已完成相应版本的配置
  • URDF修改后需要重新运行MoveIt配置
  • 建议参考ROS Wiki了解更多使用细节

运动学模块

运动学模块提供了完整的机械臂运动学解算和路径规划功能,支持多种算法和应用场景。

功能 说明 参数设置
URDF配置 机械臂模型加载
  • 加载URDF文件
  • 导入URDF (默认: Minima)
  • URDF预览
求解器参数 运动学求解器配置
  • 逆解算器选择:
    • PyBullet求解器
    • Levenberg-Marquardt求解器
  • 规划器选择:
    • Linear规划器
    • RRT规划器
    • CHOMP规划器
  • 求解参数:
    • 残差阈值 (Residual Threshold)
    • 最大迭代次数 (Max Iterations)
    • Lambda参数 (仅LM算法)
运动学计算 正逆运动学求解
  • 正运动学:
    • 关节角度输入
    • 末端位姿计算
  • 逆运动学:
    • 目标位置(XYZ)输入
    • 路径点设置
    • 规划器启用选项
    • 路径点数量设置
控制模式 机械臂控制方式
  • 位姿控制 (摄像头)
  • G-code控制
  • 工作空间分析器
注意事项:
  • 使用高级规划功能前请确保已正确配置关依赖
  • 建议在仿真环境中测试复杂轨迹
  • 进行工作空间分析时注意机械臂的物理限制

固件管理

固件管理模块提供Minima机械臂的固件更新功能。请确保更新过程中电源稳定。

基本配置

配置项 参数说明
串口连接
  • 端口选择: COM1-COM99
  • 自动检测可用串口
开发板选择
  • ESP32
  • Arduino

烧录参数

开发板 参数设置
ESP32参数
  • 波特率 (Baud Rate): 115200
  • Flash模式 (Flash Mode): QIO
  • Flash频率 (Flash Frequency): 40m
Arduino参数
  • 开发板型号 (Board Type): Uno
  • 波特率 (Baud Rate): 115200

固件更新

更新方式 说明
自定义固件 上传本地.bin文件进行更新
远程固件 在线更新官方最新固件
注意事项:
  • 更新前请确认选择了正确的开发板类型
  • 烧录过程中请勿断开设备连接

Change Log

  • 版本 1.2 (2024-10-21)
    • 新增运动学模块,支持机械臂的正向和逆向运动学计算
    • UI界面优化
  • 版本 1.1 (2023-09-21)
    • 新增Anytroller模块, 支持自定义机械臂控制
    • 新增固件管理界面
    • 优化机械臂控制模式和ROS模式间的切换
  • 版本 1.0 (2024-09-10)
    • Minima示教器软件正式版发布
    • 新增ROS集成功能
    • 优化了Controller的用户界面
    • 修复了一些已知的稳定性问题
  • 版本 1.0-beta (2024-09-01)
    • Minima示教器软件测试板发布
    • 包含Controller基本功能