zoukankan      html  css  js  c++  java
  • 《实时控制软件设计》第三周作业

    一.阅读笔记:

    1. Xenomai简介:

    • Xenomai 是一种采用双内核机制的Linux 内核的强实时扩展。由于Linux 内核本身的实现方式和复杂度,使得Linux 本身不能使用于强实时应用。在双内核技术下,存在一个支持强实时的微内核,它与Linux 内核共同运行于硬件平台上,实时内核的优先级高于Linux 内核,它负责处理系统的实时任务,而Linux 则负责处理非实时任务,只有当实时内核不再有实时任务需要处理的时候,Linux 内核才能得到运行的机会。
    • Xenomai 基于Adeos(Adaptive Domain Environment for Operating System)实现双内核机制。Adeos 的设计目标是为操作系统提供一个灵活的、可扩展的自适应环境,在这个环境下,多个相同或不同的操作系统可以共存,共享硬件资源。目前,Adeos 是基于Linux 内核实现的,主要的应用是在Linux 的实时化方面,使基于Linux 的系统能满足强实时的要求(例如Xenomai 和RTAI3.2 以上版本都是基于Adeos 实现的)。在基于Adeos 的系统中,每个操作系统都是在独立的域内运行(但不一定所有的域实现的都是操作系统,也可以是完成其它功能的软件实体),每个域可以有独立的地址空间和类似于进程、虚拟内存等的软件抽象层,而且这些资源也可以由不同的域共享。
    • Xenomai 在Adeos 系统中的域优先级高于Linux 域,每当中断到来之后,Adeos先调度Xenomai 对该中断进行处理、执行中断相应的实时任务,只有当Xenomai 没有实时任务和中断需要处理的时候,Adeos 才会调度Linux 运行,这就保证了Xenomai的中断响应速度和实时任务不受Linux 的影响,从而提供了实时系统的可确定性。Xenomai 实时内核为开发强实时应用提供了丰富的功能,主要包括实时线程调度与管理、用户空间实时任务支持、线程同步服务、时钟服务、中断服务、动态内存申请和实时对象注册服务等。

    2. 团队项目

    2.1项目简介:

    完成一个团队项目,主要功能是实现一个两轴机械手的运动控制仿真,主要功能包括:

    • 用户接口任务:负责接收来自用户的请求,并发送运动指令给轨迹插补任务。
    • 轨迹插补任务:接收运动指令,实时计算各轴的位置和速度设定值。
    • 物理引擎接口:基于ODE开源物理引擎,创建一个两轴机械手及环境的物理模型,用轨迹插补任务输出的各轴位置和速度设定值控制模型的运动,并把实时状态反馈给轨迹插补任务。
    • 图形化用户接口:可基于qt把上述功能集成到一个GUI界面。

    2.2感兴趣模块:

    对物理引擎接口模块比较感兴趣,之前也有接触过Unity3D物理引擎。

    2.3团队协作开发的理解:

    团队有一致的集体目标, 团队要一起完成这目标。团队成员有各自的分工, 互相依赖合作, 共同完成任务。在一个控制软件项目中倾向于做仿真分析的任务。

    二.实时编程作业:

    1. 下载代码库并编译:

    2. 编程实现定位运动轨迹生成器:

    a simple motiom control demo

  • 相关阅读:
    Session的使用与Session的生命周期
    Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
    十九、详述 IntelliJ IDEA 之 添加 jar 包
    十八、IntelliJ IDEA 常用快捷键 之 Windows 版
    十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
    十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
    十五、详述 IntelliJ IDEA 插件的安装及使用方法
    十四、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制
    十三、IntelliJ IDEA 中的版本控制介绍(下)
    十二、IntelliJ IDEA 中的版本控制介绍(中)
  • 原文地址:https://www.cnblogs.com/syth/p/6169020.html
Copyright © 2011-2022 走看看