非实时系统对运动控制场合下伺服控制影响
非实时系统下,使开源EtherCAT库遇到问题
使用IGH库调试禾川一体伺服,定位到状态切换异常为数据域映射混乱造成。修改数据域初始化部分流程,原方案是申请一组数据域,初始化一个轴。运行时发现并不是每个轴都会很快进行响应,但是程序会顺序执行,导致6个轴全部配置完成后,个别轴都未能正确切换到运行态。修改初始化流程,现一次性循环申请6组数据域,完成后检查伺服状态预运行状态,然后配置pdo逻辑映射,最后依次写入到伺服从站,中间进行状态获取检查,解决状态不匹配情况下伺服个别操作无需导致pdo映射丢失问题。
测试禾川一体伺服同步模式,测试过程中发现问题,禾川伺服通过总线配置dc周期后,伺服并不是按照配置周期运行,尝试测试1,2,4,8ms,禾川的伺服反应只在2ms时运行是平滑的。先前和技术沟通好像是厂家调试软件里面能设置周期,且默认的也是2ms但是调试软件并没有对用户开放(某个配置项里隐藏的配置值,软件说明里并没给用户可操作提示),尝试配置60c2但是效果也不好。为了定位此问题,使用软件示波器进行了调试。发现电机的控制指令位置为方波,且波谷持续时间大约20-40us左右浮动。正常情况下波形应是一 ...
UBuntu 16.04 RTAI实时系统环境安装配置
UBuntu 16.04 RTAI实时系统环境安装配置
针对ubuntu 系统实时性改造先前已进行说明,此处不再赘述。此次是针对RTAI内核进行编译测试,RTAI作为3大开源linux软实时内核,其性能要高于Preempt-rt,但由于并非随linux主线内核更新,所以存在一定滞后,庆幸的是RTAI也一直在维护,相比xenomai更有优势。RTAI最新版本更新于2021年5月(RTAI-5.3),保守起见此次选用RTAI-5.1版本进行安装测试。考虑到系统层面对实时影响,推荐使用低版本系统,不过本次安装配置流程已在UBuntu18.04上测试通过,且编译运行正常。
【系统环境】:
操作系统:ubuntu16.04/ubuntu18.04
Kernel: Linux-4.9.80
Path : RTAI-5.1
[TOC]
1.下载ubuntu 4.9.80内核补丁链接 0001-base-packaging.patch 0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch 0003-UBUNTU-S ...
ubuntu18.04_realsense
ubuntu18.04 +realsence-sdk安装[toc]
环境:
系统:ubuntu18.04
工控机:Nodka 工控机(NP-6122)1. 更新ubuntu: sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade2. 下载最新的librealsense SDK:git clone https://github.com/IntelRealSense/librealsense.git
注意:安装时,不要将相机连在电脑上。
3. 安装必要的依赖123cd ~/librealsensesudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev sudo apt-get install libglfw3-dev
4. 安装 librealsense原文件目录下的许可脚本123cd ~/librealsensesudo cp config/99-realsen ...
使用说明
使用说明
小夜灯需要接入网路后才能在苹果“家庭”中导入使用,配置前请确保以及具备配置使用环境。
使用环境:
1.具备2.4G 无线网络(小夜灯只能连接2.4G频段无线网)。
2.有一台苹果设备作为控制中枢(ipad/iPhone)。
配置步骤:
将设备接入电源,小夜灯通电后进行自检,绿色常亮。
首次使用(或wifi变更)需要重置网络,即在接通电源后绿灯亮起时长按壳体正面按钮,等待绿色灯熄灭,红色灯亮起时松开按钮。【后续启动会自动识别连接已配置的网络,只在网络异常时执行此操作】
注:后续使用过程中发现出现“绿色灯常亮->绿色灯熄灭->粉红色灯闪烁3次->绿色常亮”这种情况时,表面网络也存在问题,需要进行重置网络配置。
红色灯亮起时松开长按的按钮,打开ipad/iPhone手机网络,连接名为”HK”的wifi热点。
连接”HK”热点后,会自动跳转到wifi配置页面。点击配置wifi,选择你家里的wifi,并配置密码。(必须是2.4G wifi)
点击保存等待wifi配置(正常配置需要10s~90s),若配置成功,红色灯会转变为蓝色,否则尝试重复步骤 ...
igh_ethercat
IGH Ethercat主站安装配置
记录在使用安装IGH过程中遇到的问题,目前存在大坑:
实时内核版本大于5.0的不用试了,别听论坛瞎BB肯定不支持。
最新源码要通过github下载,其他位置的下载源码有问题!!eg:https://sourceforge.net/projects/etherlabmaster/ 大坑
xenomai实时内核补丁不同版本igh安装会有问题,1.5/1.5.2有坑,没有踩完,推荐还是先prempt安装测试,后续有机会再弄Xenomai
[TOC]
安装步骤1.安装编译工具依赖1sudo apt-get install autoconf autogen libtool
2.编译配置IGH源码1234567cd etherlab ##进入IGH源码包./bootstrap ##执行配置脚步## 设置配置项 实时网卡驱动 安装到的内核目录./configure --enable-cycles --enable-hrtimer --enable-8139too=no --with-linux-dir=/usr/src/linux-headers-4.19 ...
linux_preempt
linux实时内核Preempt编译安装1.准备工作系 统 : Ubuntu16.04.6内核版本 : Linux-4.15.0-72目标内核 : Linux-4.19.72-rt26下载地址 : https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/ (下载内核)https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/ (下载补丁)国内镜像 : https://mirrors.aliyun.com/linux-kernel/ (内核下载速度快)安装依赖 :sudo apt-get install -y build-essential kernel-package libncurses5-dev
2. 安装实时补丁12345678makdir rt_linux_build ##创建个文件夹用来存放编译所需文件cd Download ##进入下载文件保存目录cp linux-4.19.72.tar.xz patch-4.19.72-rt26.patch.xz ~/r ...
和风天气(实现自动更新定位)
和风天气(实现自动更新定位)
书接上文,在使用和风API获取实时气象数据以及天文服务时,需要传入地理位置参数(或预设位置信息),感到困惑的是和风的”city_id”,貌似不是通用的ID号,对比高德和第三方的API接口,获取到城市ID好像记得是一致的,或许遵循某种标准 ,暂时不予深究。
拿到行政区划/公网IP 因为和风接口的原因,若是采用城市ID作为访问参数,必须通过和风城城市信息查询接口来得到ID号(和风自己对城市ID进行了编码,非通用编码)。为了得到这个ID,原计划通过网络查询到大致城市区划,拿到市级定位通过和风城市信息查询接口获得城市ID,方便后面气象资料查询。和风城城市信息查询接口文档第一步肯定要解决市级定位问题,尝试用了百度、谷歌、腾讯、阿里、新浪、搜狐…等几个接口,单说这几个大公司的接口,基本上都要进行开发者认证,高德还好支付宝直接可以认证,但一开始也没计划使用高德,当然这里也有个例外,搜狐和ipify不需要认证,不需要鉴权信息。搜狐 ipify 区别就是搜狐除了能得到IP外,还可以获取行政区划,也因此选用 ...
记录最近一次博客迁移之(Vercel)
记录最近一次博客迁移之(Vercel)
最初博客部署在云端,用Django做了整套网页,大概是那会因为特殊原因(学校经费充裕,自己又在学前端,又菜又爱折腾),连前后端一起搞了。毕业后参加工作,django维护成本太高,发个帖子部署一堆,费力不讨好。又因为懒得不行,博客更新闲置了。21年偶尔机会了解到hexo,静态的博客框架,正好适合我,于是就逐渐将博文迁移到Hexo上,之前自己做完全写在html里,也没用markdown导致迁移很是费力。21年也逐渐停掉了云,域名,hexo静态网页以仓库形式托管在github.io上,但由于github访问速度受到限制,决定再次映射到Vercel(也是不久刚了解到)。
Vercel 解决最根本的问题是可以关联github仓库,可自动化监测git状态,并触发自动部署。可以关联自己的域名,也可以使用Vercel提供的域名(速度还挺快)。 Vercel 登陆可以使用github直接授权登陆,无需注册也很方便。 在项目中添加github账号,即可扫描到github所有仓库,添加部署即可。 需要设置下项目名称,类型可选 ...
Rl库开发笔记(Q&A)
1.如何更新场景和视图,以便我可以模拟机器人移动?
为了在解决方案路径的每个配置中可视化机器人,您必须计算每个点的前向运动学并同步机器人的运动学和几何模型。通过获取和设置每个机器人身体的框架来完成。这两个方法在rl::plan::Model ,rl::plan中进行了组合和更新,在rlPlanDemo应用中也用到了。
12345678910this->mdl->forwardPosition(); if (doUpdateModel) { for (::std::size_t i = 0; i < this->model->getNumBodies(); ++i) { this->model->getBody(i)->setFrame(this->mdl->getBodyFrame(i)); } }
关于如何设置动画的示例代码也可以在 rlPlanDemo 123456789101112131415161718192021222324 rl::plan::Vecto ...
和风天气API接口调用(日出日落信息)
和风天气API接口调用(日出日落信息)
前段时间忙着对外项目,偶然机会想在设备端使用API获取日落时间,用于满足自动化切换。起初项目是使用心知天气API,因涉及到“商用“…….(胡说.八道,哈哈哈哈…反正甲方也不知道,用免费的接口就行,无奈心知天气日出日落需要付费,程序写了七七八八改也麻烦,何况资金也算充足,所幸良心发现就没有薅羊毛,不过确实付费的要稳定很多)。 后来想自己做一款Homekit自动化终端,实现联动控制。其实HomeKit的自动化构建功能还是蛮强大的,我其实最看好的“离家模式“”,hass平台上可以通过noderead编写工作流,设备层通过蓝牙扫描手机蓝牙来判断(毕竟大多数时候手机不离身),但这个有个缺点就是蓝牙必须一直开着。利用Homkit原生自动化场景可以很轻松实现这个功能,不需要去部署hass,也能正常使用。当然其所灵活性方面来说,还是更倾向Hass,可集成的功能真的是太多了。考虑到设计的目的是为了送人,还越简单越好。
开发工具
arduino IDE (完全是为了偷懒,因为arduino库很全,我也没过多时间放 ...