大涂涂

  • 2024-03-08
  • 回复了主题帖: 测评入围名单: 爱芯派Zero(基于智能黑光视觉芯片AX620Q)

    确认,没有问题。

  • 2023-12-12
  • 发表了主题帖: 【玄铁杯第三届RISC-V应用创新大赛】项目提交:坤泰数字机器人

    【玄铁杯第三届RISC-V应用创新大赛】项目提交:坤泰数字机器人 大信(QQ:8125036) 一、前言 在开发机器人控制系统时,经常是软件硬件同时开发的情况,这时就遇到一个问题开发软件的团队需要一个完备的硬件来验证软件姿态控制的输出是否正确,但与此同时开发硬件的团队需要一个标准的控制信号来验证硬件的执行是否达到预期。因此在发开中就出现了先有还是先有蛋的问题。未解决这些问题,不少团队有各种的“绝招”,但都基于定制硬件或者标定设备来完成,不够灵活和普适性。 而笔者刚好申请到矽速科技近日推出了全新的Sipeed LicheePi 4A开发板。这个开发板采用了TH1520处理器,搭载了一颗1.85GHz C910主频的64位四核Risc-V处理器。据悉该款开发板具备强大的硬件配置,支持高达16GB的内存和128GB的eMMC存储,同时还配备了双千兆网口以及WiFi和蓝牙连接功能。此外,该开发板还提供了MIPI-DSI和MIPI-CSI连接器,方便进行外部设备的连接和扩展。 根据其强大的综合性能,笔者决定使用它来开发一款受控可视化反馈的仿真器,即数字机器人。大家都知道现在机器人开发越来越火热,工业行业,到四足机器人,各种人形机器人都很火爆。越来越多的机器人开发时,需要一个比较多能的,硬件仿真的环境,来快速的验证各种姿态以及控制算法的鲁棒性,姿态的正确性以及可多阶的控制逻辑。这些复杂的高阶控制要完成验证,在以往需要各种设备来仿真和有经验的工程师来判断是否正确,因此困难重重。而有了这款数字机器人,在定义机器人主要的参数和自由度之后,就可以接受受控信号,完成相应的姿态动作,在结合各物件的物理惯量和重力的仿真,足以完成大部分机器人的仿真和验证。 二、项目创意与特点 本项目名称为《坤泰数字机器人》,在面对机器人开发时,对于姿态控制软件,需要一个很好的硬件环境来调试和查看姿态控制的问题。比如运动轨迹,定点位置,加速减速曲线,空间相干性等。而与此同时硬件也在开发中,存在需要标定信号的调试和验证。坤泰数字机器人旨在通过接收末端控制信号,通过软件仿真的方式展示出机械硬件的运动状态。从而给开发提供一个直观可,可测量和有反馈的环境。。 坤泰数字机器人通过可编程的方式,可以设定多种硬件模型,导入硬件模型的物理特性,如连杆,关节的惯性,重量等参数。通过实时采集多路PWM输入控制信号,来模拟各个关节电机的旋转角度,从而逼真的仿真机器人的姿态。本次演示,是一个基础的功能,即根据多路旋转角度信号来控制各个关节的旋转,从而还原控制信号与最终姿态的空间关系。 该项目涉及到如下技术内容: OpenGLES3 -- OpenGL嵌入式程式驱动框架 GLUT/GLFW -- 负责处理和底层操作系统的输入与输出以及I/O通道与OpenGL FrameWork图像框架 QT SDK --- 桌面图形应用框架 MQTT -- 基于TCP/IP的订阅、发布消息服务 三、项目硬件 licheePi 4A 开发板,数字机器人的主控板 Ubuntu PC模拟数据,提供指定关节各方向自由度的数据 WIFI 路由器,提网络连接,连接信号端与LiCHeePi开发板 VMWare 虚机,提供开发和发送通车测试数据的环境 现场硬件连接如下图: 四、项目方案架构 数字机器人在应用时系统架构如下图所示,图中设备A,B为机器人的控制方和机器人仿真方,控制方发送电机控制信号到采集端口上,解析控制信号内容,并控制仿真机器人做出响应的动作,同时实时发送Iot传感数据反馈给开发方或者统计汇总。 LiCheePi PC Woker 五、TH152控制信号采集 本计划使用LICheePi 的IO来接收外部的控制PWM信号,但考虑到该开发板的IO与上端的控制电压不同,为防止端口损坏,这里使用模拟信号来模拟PC 一般机器人关节有三自由度,分别为x,y,z使得关节连杆可以指向先各个方向,同样由多个关节连接,形成更大的自由度,满足复杂姿态和动作的实现。 以人一个基础形机器人机器人为例,主体关节主要为上肢和下肢,分别对应左右大臂,小臂,左右大腿与小腿,以及一个腰部的旋转,9个关节共27个自由度组成。 为保证通信速度,先使用有线网络连接 ubuntu 控制信号发送端与开发板,在开发板脸上路由器后,可以在路由器上,看到开发板的IP地址,如下: 六、数字机器人的软件设计开发 在LicheePi,首先安装编译必要的编译工具库,如gcc,g++,glib等。 安装好后,可以验证 gcc 的版本为 : gcc version 13.2.0 (Debian 13.2.0-4revyos1) 再安装OpenGL库和一些基础的库: 在安装 GLUT/GLFW会遇到错误的提示,原因是原来的源已经移动,只要找到同样版本的deben的安装包安装即可。 安装QT5 SDK与QT Create工具包 安装完后,输入 qmake 可以查看QT的版本与信息如下: 再编译MQTT工程,这里使用的是mosquitto-2.0.9 开源MQTT工程,这里只需要Client端即可: 把编译成功的MQTT Client端的程序与动态库,部署到系统bin目录下, 在Ubuntu上开发数字人仿真程序,使用OpenGL GLFW库,在PC上先编码和调试: 七,板上测试与效果展示 在开发板上部署好编译后的仿真程序,并且通过接收本机模拟端口的数据来控制数字人的动作,效果如下: 初始默认的姿态 控制左臂两个电机z轴的信号 控制两臂的动作,并发生的干涉,与身体发生了碰撞。 发送更多关节的运动数据,展示出一个完整的造型动作。 八、EMQX服务公网部署 为了更好的连接仿真器,需要仿真器与开发环境通过网络连接,这里使用MQTT把仿真系统解算的数据通过消息发送与外部交换数据,因此在这里在公网E服务器上,部署一个支持MQTT的消息管理服务端,这里选择使用EMQX开源服务。 wget https://www.emqx.com/zh/downloads/broker/5.0.8/emqx-5.0.8-el8-amd64.tar.gz tar -xvf emqx-5.0.8-el8-amd64.tar.gz //启动 bin/emqx start //停止 bin/emqx stop //查看状态 bin/emqx_ctl status 在公网服务端E需要开通18083,1883等业务端口,部署完毕后,可以打开浏览器登录到EMQX服务站点已启动: 部署到互联网上后,把LiCheePi的解析: 最终成功的加载出中控控制台的页面,并实时的显示出各个终端传感器的数据。

最近访客

< 1/5 >

统计信息

已有128人来访过

  • 芯积分:91
  • 好友:--
  • 主题:8
  • 回复:17

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言