项目简介
本项目是一个开源项目,基于C++和mbed库开发,主要用于控制机器人手臂。项目提供了完整的PID控制、传感器数据读取、与MATLAB通信等功能,采用HID通信协议进行数据交换,可实现对机器人手臂的精确控制与状态监测。
项目的主要特性和功能
- PID控制:利用PID控制算法实现位置和速度控制,驱动机器人手臂关节。
- 传感器数据读取:从编码器、伺服控制器等传感器获取数据,用于控制动作和监测状态。
- 与MATLAB通信:通过HID通信协议和MATLAB交互,接收命令并发送数据,支持实时控制与数据监控。
- 硬件接口:支持通过SPI和USB接口与硬件设备(如伺服控制器和编码器)通信。
- 调试和测试:具备调试和测试功能,包括打印调试信息、模拟模式、PID参数配置等。
安装使用步骤
环境准备
- Linux系统:仅支持Ubuntu 16.04版本。
- 驱动和udev规则:执行以下命令安装udev规则
sudo cp 81-neuronrobotics.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo adduser $USER dialout
- 工具链:执行以下命令安装必要的工具链
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt install gcc-arm-embedded automake libusb-1.0-0-dev putty libhidapi-dev python-pip libtool git oracle-java8-set-default oracle-java8-installer sudo pip install mbed-cli git clone http://repo.or.cz/r/openocd.git cd openocd ./bootstrap ./configure --enable-stlink --enable-ftdi --enable-cmsis-dap --prefix=/usr/local make -j8 sudo make install
完成后,注销并重新登录以使权限生效。
- 驱动和udev规则:执行以下命令安装udev规则
- SSH密钥:按相关链接设置SSH密钥,避免每次推送代码时输入用户名和密码。
复制项目
- 配置git
git config --global user.name "John Doe" git config --global user.email johndoe@wpi.edu
- 检查Git配置
git config --list git config --list|grep user
- 初次设置
cd RBE3001_nucleo_firmware git remote set-url origin <My_Private_Repo_URL> git checkout master git push -u origin master git remote -v
- 后续新机器复制
git clone <My_Private_Repo_URL> cd <M-Repo_Folder>
编译和部署
git submodule init
git submodule update
mbed deploy
mbed-cli compile -j0 -t GCC_ARM -m nucleo_f746zg --source . --source ./mbed-os/features/unsupported/USBDevice/USBDevice/ --source ./mbed-os/features/unsupported/USBDevice/USBHID/ -f
若构建过程出现错误,检查板子是否连接到计算机后重试。
运行和调试
使用putty监听串口ttyACM0以验证计算机与NUCLEO固件的通信
putty -serial /dev/ttyACM0
安装Eclipse (CDT)
- 直接下载Eclipse,解压并运行安装程序,选择C/C++版本并安装到默认位置。
- 启动Eclipse
cd ~/eclipse/cpp-oxygen/eclipse ./eclipse
可选择创建Eclipse启动器mkdir -p ~/bin/ echo "[Desktop Entry] Version=1.0 Type=Application Name=Eclipse Arm Toolchain Comment= Exec=$HOME/eclipse/cpp-oxygen/eclipse/eclipse Icon=$HOME/eclipse/cpp-oxygen/eclipse/icon.xpm Path= Terminal=false StartupNotify=false" > ~/bin/EclipseARM.desktop chmod +x ~/bin/EclipseARM.desktop ln -s ~/bin/Eclipse.desktop ~/Desktop/EclipseARM.desktop
Eclipse设置
- 添加GNU ARM工具链:点击屏幕顶部的“Help”选项卡,选择“Install New Software...”,添加以下信息
- Name: GNU ARM Eclipse Plug-ins
- Location:
http://gnu-mcu-eclipse.netlify.com/v4-neon-updates
安装插件后重启Eclipse。
- 设置MCU工具链路径:选择“Window->Preferences->MCU->Global ARM Toolchain Paths->Toolchain folder”,设置为
/usr/arm-none-eabi/bin/
,点击“Apply and Close”。 - 创建新项目:选择“File->Import...->C/C++ -> Existing Code as Makefile Project”,浏览选择RBE3001_Nucleo_firmware目录,选择ARM Cross GCC,点击“Finish”。
- 设置构建命令:右键点击RBE3001_Nucleo_firmware,选择“Properties->C/C++ Build”,在“Builder Settings->Build Command”中设置为
mbed-cli compile -j0 -t GCC_ARM -m nucleo_f746zg --source . --source ./mbed-os/features/unsupported/USBDevice/USBDevice/ --source ./mbed-os/features/unsupported/USBDevice/USBHID/
- 设置带'-f'的构建命令以推送固件:选择“Properties->C/C++ Build->Behavior Build(Incremental Build)”。
- 修复标准类型错误:右键点击RBE3001_Nucleo_firmware,选择“Properties->C/C++ Build ->Settings->Toolchains->Toolchain path”,确保设置为
/usr/arm-none-eabi/bin/
,点击“Apply and Save”,然后选择“Index-> Rebuild”,等待C/C++索引器完成。
核心固件维护和问题报告
- 上游更新
git pull RBE-UPSTREAM master git submodule init git submodule update cd lib/AS5050/ git pull origin master cd .. cd lib/MbedPwmServo/ git pull origin master cd .. cd lib/PID_Bowler/ git pull origin master cd .. cd lib/SimplePacketComs/ git pull origin master cd ..
- 模板代码问题报告:提供当前主分支模板代码的公共分叉,用单元测试演示错误,仅包含必要代码,每行需注释说明存在原因。
注意事项
- 硬件依赖:依赖特定硬件设备和接口,如NUCLEO - F746ZG开发板、AS5050编码器和MbedPwmServo伺服控制器。
- 软件依赖:需安装和配置mbed库及相关工具链。
- 通信协议:使用HID通信协议与MATLAB通信,确保MATLAB支持该协议。
- 调试和测试:开发和测试时确保硬件连接正确,仔细阅读文档和代码注释。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】