C-Frost安装及Cassie计算样例

news2024/11/16 1:48:22

本文运行环境为:Matlab2021b/Mathematic 13/Ubuntu18.04

  • matlab安装
  • mathematic安装

一、 C-Frost安装

1、安装ipopt

安装参考

2、执行NLP例子验证是否安装成功

官方步骤

1)修改create_problem.m文件中的 FROST_PATH路径

2)修改CMakeLists.txt文件中的C_FROST_ROOT_PATH路径

3)使用Matlab运行create_problem.m文件,会生成c_code文件夹

4)在该文件夹下执行下面的命令

mkdir build
cd build
cmake ..
make
make install
cd ..
./program --initial 'res/init.json' --options '../ipopt.opt' --data 'res/data.json' --bounds 'res/bounds.json' --output '../output.json'

编译成功出现下面的结果

运行最后一句程序成功后出现下面的结果

5)在主文件夹下会生成output.json文件,在matlab中要打开它需要下载Jsonlab文件后将其路径添加到matlab路径当中

二、运行cassie计算样例

1)复制Cassie_ModelC-Frostfrost-dev三个文件夹到submodules文件夹下,frost-dev可能需要返回到原版本,具体参考此博客配置
在这里插入图片描述
2)运行Cassie_Example/cassie_dynamics_library/gen_lib.m文件,运行成功出现下面三个文件夹
在这里插入图片描述

3)执行编译

mkdir build
cd build
make -j8
make install

4)成功后在lib文件夹下会出现libcassie_dynamics.a文件

5)运行`Cassie_Example/opt_two_step/cassie_opt.m’文件,运行成功出现如下动画(这部分时间比较长,估计得十分钟左右)
在这里插入图片描述

usr/bin/ld: warning: /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001

请添加图片描述

三、过程中遇到的错误

1)执行/home/robot/Downloads/C-Frost/Examples/NLPExample例子报错

错误使用 cell/ismember (第 34 行)
类 double 的输入 A 和类 cell 的输入 B 必须为字符向量元胞数组,除非其中某个输入为字符向量。

出错 mustBeMember (第 14 行)
    if ~all(ismember(A, B), "all")

出错 NonlinearProgram (第 75 行)
                option.DerivativeLevel {mustBeMember(option.DerivativeLevel, {0,1,2})} = 1

出错 create_problem (第 27 行)
nlp = NonlinearProgram('nlp051');

修改方案:

/home/robot/frost-dev/matlab/nlp/@NonlinearProgram/NonlinearProgram.m改回原来的版本

修改前:
        function obj = NonlinearProgram(name, option)
            % The default class constructor function
            %
            % Parameters: 
            %  name: the name of the problem
            %  option: the options

            arguments
                name char {mustBeTextScalar}
                option.DerivativeLevel {mustBeMember(option.DerivativeLevel, {0,1,2})} = 1
                option.EqualityConstraintBoundary double {mustBePositive} = 0
            end

            obj.Name = name;
            % default options
            obj.Options = struct('DerivativeLevel', option.DerivativeLevel, ...
                'EqualityConstraintBoundary', option.EqualityConstraintBoundary);
	 end

修改后:

 	 function obj = NonlinearProgram(name)
            % The default class constructor function
            %
            % Parameters: 
            %  name: the name of the problem

            if nargin > 0
                validateattributes(name, {'char'},...
                    {'scalartext'},'NonlinearProgram','name');
                obj.Name = name;
            end
            % default options
            obj.Options = struct('DerivativeLevel', 1, ...
                'EqualityConstraintBoundary', 0);
	end

2)运行cassie_opt.m时报错

MEX 文件 '/home/robot/Desktop/Cassie_CFROST/submodules/frost-dev/third/ipopt/ipopt.mexa64' 无效: /lib/x86_64-linux-gnu/libm.so.6:
version `GLIBC_2.29' not found (required by /home/robot/Desktop/Cassie_CFROST/submodules/frost-dev/third/ipopt/ipopt.mexa64)

出错 IpoptApplication/optimize (第 48 行)
    [sol, info] = ipopt(x0, Funcs, opts);

出错 two_step.utils.solve (第 41 行)
        [sol, info] = optimize(solver, x0);

3)GLIBC版本过低

参考此方案解决,安装后最好重启以下电脑
注意:glibc错误会导致终端无法使用,替换前先备份原版本的文件,要是遇到删除后终端无法打开的情况,用同系统的启动盘复制原始文件替换即可恢复。

https://github.com/UMich-BipedLab/Cassie_CFROST
https://github.com/ayonga/frost-dev
https://github.com/UMich-BipedLab/Cassie_Model

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

写代码时记录的小技巧

本文是记录自己写代码时候遇到的一些感觉比较有用/有意思的技巧,怕自己忘了记录一下。如果有想要分享的思路/纠正改进的地方欢迎交流。 如何输出结果 (Verbose Trick) 有关类的输出 1. 如果想在**模型的 forward 中输出相关变量**,但又不希望反复输出影…

Oracle如何删除归档日志文件?

Oracle如何删除归档日志文件? Oracle启用归档日志的状态下,会在指定的归档日志目录生成大量的日志文件,而且这些日志文件默认是不会定期清理。长时间运行下,会占用大量的存储空间,最终可能导致Oracle没有足够的空间维持…

Linux集成环境部署tomcat+Linux

Linux环境部署 tomcat redisTomcat 安装配置Redis安装配置Tomcat 安装配置 下载tomcat安装包,将安装包上传至自己的linux服务器中,将安装包传到linxu环境中的/usr/local/tomcat下,使用tar -xvf 命令解压 2. 进入到bin目录下,给所…

Allegro如何查找和高亮PAD Stack类型操作指导

Allegro如何查找和高亮PAD Stack类型操作指导 Allegro可以在板子上查找并且高亮PAD的类型,查找的范围包括器件的pad,以及过孔的pad,具体操作如下 用Allegro的was performance L模式下,并且勾选Allegro Productivity Toolbox选项 选择Tools-padstack finder 会出现padsta…

数字图像处理 - 图像采样和量化

1、 目标 获取图像的方法有很多种,但最终的目标是一致的:从传感数据生成数字图像。大多数传感器的输出是连续的电压波形,其幅度和空间行为与被感测的物理现象有关。要创建数字图像,我们需要将连续感测数据转换为数字格式。这就需要…

扩散模型的源码学习diffusion_model

1.diffusion_model有几个主要的部分, (1)Unet,主干网络。 (2)GaussianDiffusion,也就是主要的训练策略。 2. 生成一个测试用的tensor来进行实验。 3.进入到高斯模型的内部,发现…

(六) Redis缓存读写策略

一 引言 缓存的引入后极大的提高了服务器的访问速率,但是当持久化数据发生变化时,如何更新缓存成为了研发中不可规避的问题,不同的方案决定缓存的最终的一致性,本文就redis的缓存读写策略,以及其他的缓存读写策略做简要概述 二 Cache Aside Pattern(旁路缓存模式&…

Vue学习:键盘事件

input表单占位符-显示输入先的提示文本-placeholder属性 键盘事件keydown——按下 不需要松手 keyup&#xff1a;按下松手 根据按键编码进行判断 --输出event上有一个属性-keyCode -按键编码--回车13 <!-- 准备容器 --><div idroot> <input type"text&quo…

Docker安装和使用

一&#xff1a;docker安装 链接: https://pan.baidu.com/s/1A1g7rSOMoV4__Me_zJoB3Q?pwd6bqi 提取码: 6bqi 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 --来自百度网盘超级会员v4的分享。 二&#xff1a;docker使用 1.docker和虚拟机的区别&#xff1a; …

Word文档如何设置成不可编辑的模式?

把Word文档设置成“不可编辑模式”&#xff0c;也就是“限制编辑”&#xff0c;可以防止意外更改文档内容&#xff1b;对于只想给他人读阅&#xff0c;禁止复制和更改的情况&#xff0c;也能起到一定的保护作用。 Word文档里自带设置限制保护的选项&#xff0c;在菜单中选择【…

【Uni-App】uniapp使用uview实现弹出键盘输入密码/验证码功能

目录&#xff08;一&#xff09;效果图&#xff08;二&#xff09;使用组件说明keyboard属性&#xff1a;keyboard事件&#xff1a;&#xff08;五&#xff09;js代码实现&#xff08;一&#xff09;效果图 &#xff08;二&#xff09;使用组件说明 组件使用的是uview组件&…

MATLB|多微电网及分布式能源交易

目录 一、概述 二、数学模型 三、结果可视化 四、Matlab代码实现 一、概述 在人类、工业和电动汽车的能源需求的推动下&#xff0c;全球能源需求预计将在未来几年稳步增长&#xff1b;更准确地说&#xff0c;预计到 2030 年增长将达到 40%。这种需求是由人类日益依赖能源的…

Linux配置网络,增添网络会话,Wget下载,yum仓库配置

配置网络 从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名&#xff0c;该方式可以根据固件、设备 拓扑、设备类型和位置信息分配固定的名字。网络接口的名称的前两个字符为网络类型符号。如: en——表示以太网(Ethernet)、wl表示无线局域网(wlan)、ww表示无…

[附源码]Python计算机毕业设计SSM基于的高校在线办公系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【玩转ChatGPT |OpenAI超级对话模型】手把手带你玩转ChatGPT

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;喜欢编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…

【深度学习】PyTorch深度学习实践 - Lecture_10_Basic_CNN

文章目录一、CNN基础流程图二、CNN的两个阶段三、卷积的基本知识3.1 单信道的卷积3.2 三信道的卷积3.3 N信道卷积3.4 输入N信道-输出M信道卷积3.5 卷积层的常见参数3.5.1 Padding3.5.2 Stride3.5.3 下采样&#xff08;MaxPooling&#xff09;四、实现一个简单的CNN4.1 网络结构…

【案例教程】气象数值预报WRF-DA资料同化系统理论、运行与变分、混合同化新方法技术

【视频教程】WRF DA资料同化系统理论、运行与与变分、混合同化新方法技术应用https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247518760&idx1&snddbc45296acc595402434b88bc179a27&chksm9be39538ac941c2eabab2492e997827d0e1269de3b229fadee72f1223bbcd…

机器学习实战教程(三):决策树实战篇

一、前言 上篇文章机器学习实战教程&#xff08;二&#xff09;&#xff1a;决策树基础篇之让我们从相亲说起机器学习实战教程&#xff08;二&#xff09;&#xff1a;决策树基础篇_M_Q_T的博客-CSDN博客机器学习实战教程&#xff08;二&#xff09;&#xff1a;决策树基础篇之…

web前端期末大作业 html+css+javascript汽车销售网站 学生网页设计实例 企业网站制作

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

JQuery高级(回调函数 clearInterval 插件)

回调函数&#xff1a; 定义&#xff1a;回调函数被认为是一种高级函数&#xff0c;一种被作为参数传递给另一个函数的高级函数。回调函数的本质是一种模式(一种解决常见问题的模式)&#xff0c;因此回调函数也被称为回调模式。 简而言之&#xff1a;一个函数在另一个函数中…