IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【python+ROS+路径规划】五、pyomo非线性规划工具 -> 正文阅读

[开发工具]【python+ROS+路径规划】五、pyomo非线性规划工具

看到了这篇博客无人车系统(十):c++与python非线性规(优)划(化)工具
突然发现python也有mpc工具,所以干脆不用matlab了,直接使用python做mpc的轨迹跟踪。

pyomo的简单了解

pyomo的安装

VSCode上面安装了半天,各种BUG,最后还是先安装了Ananconda,然后再安装pyomo

在Ubuntu20.04 + Anaconda环境下安装pyomo与ipopt:

conda update conda
conda install -c conda-forge ipopt
conda install -c conda-forge coincbc
conda install -c conda-forge pyomo
conda install -c conda-forge pyomo.extras

Anaconda与ros结合使用

在调好Anaconda之后打开VSCode,使用roscore命令会报错:

Command 'roscore' not found, but can be installed with:

sudo apt install python3-roslaunch

这个时候

source ./devel/setup.bash

一下就好了
而且发现也可以使用rosrun,Anaconda里面的包也都可以使用。

基本使用

官网:pyomo之后有空会翻译一下。

例子

尝试解决优化问题:
m i n i m i z e x 1 x 4 ( x 1 + x 2 + x 3 ) + x 3 s . t . x 1 x 2 x 3 x 4 ≥ 25 x 1 2 + x 2 2 + x 3 2 + x 4 2 = 40 1 ≤ x 1 , x 2 , x 3 , x 4 ≤ 5 \small{minimize} \quad x_1x_4(x_1+x_2+x_3)+x_3\\s.t.\qquad x_1x_2x_3x_4≥25\\\qquad \qquad \qquad x_1^2+x_2^2+x_3^2+x_4^2=40\\\qquad \qquad \qquad1≤x_1,x_2,x_3,x_4≤5 minimizex1?x4?(x1?+x2?+x3?)+x3?s.t.x1?x2?x3?x4?25x12?+x22?+x32?+x42?=401x1?,x2?,x3?,x4?5

import numpy as np
from pyomo.environ import *
from pyomo.dae import *

model = ConcreteModel()
model.x = Var(RangeSet(1, 4), bounds=(1, 5))
model.cons1 = Constraint(rule=lambda model: 40==model.x[1]**2+model.x[2]**2+model.x[3]**2+model.x[4]**2)
model.cons2 = Constraint(rule=lambda model: 25<=model.x[1]*model.x[2]*model.x[3]*model.x[4])
model.obj = Objective(expr = model.x[1]*model.x[4]*(model.x[1] + model.x[2] + model.x[3]) + model.x[3], sense=minimize) 
SolverFactory('ipopt').solve(model)
solutions = [model.x[i]() for i in range(1, 5)]
print("solutins is :"+str(solutions))

在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:14:24  更:2022-02-04 11:14:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:08:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码