admin管理员组

文章数量:1660164

odqp作为二次规划库具有非常重要的作用,可以运用于模型预测控制算法(MPC)

ROS C++库调用方式可以参考这篇文章ROS c++调用osqp-eigen库的具体操作步骤

按如下过程就能正常地在python中使用osqp库。

准备工作

1.获取测试程序

在这个例子中我所使用的是osqp官网的python程序,用来设计MPC控制器:

运用osqp求解MPC优化问题

2.放入功能包

将这个文件放入我们自己的功能包的scripts文件夹下:

 右键属性,允许作为可执行文件

 osqp库的调用

python调用osqp库中会遇到一些问题,我的版本是Ubuntu18.04+ROSmelodic,默认的python版本是python2.7。安装osqp会有如下提示:

这说明python2.7版本已经不行了,需要更换解释器,所以我打算 换成python3.6解释器。

接下来就是安装步骤了

步骤1:安装pip3

~$ sudo apt install python3-pip

步骤2:安装osqp库和其他需要的库

~$ pip3 install osqp
~$ pip3 install catkin-tools
~$ pip3 install rospkg

 我们可以查看osqp的安装位置:

~$ pip show osqp
~$ pip3 show osqp

Name: osqp
Version: 0.6.2.post5
Summary: OSQP: The Operator Splitting QP Solver
Home-page: https://osqp/
Author: Bartolomeo Stellato, Goran Banjac
Author-email: bartolomeo.stellato@gmail
License: Apache 2.0
Location: /home/zhz/.local/lib/python3.6/site-packages
Requires: numpy, scipy, qdldl

 osqp库保存在.local/lib/python3.6/site-packages中

步骤3:更改程序

编辑测试程序,将解释器更换为python3或python3.6(具体看保存在python哪个版本中)

#!/usr/bin/env python3     ######更改解释器为python3或者python3.6
# -*- coding=utf-8 -*-
import osqp
import numpy as np
import scipy as sp
from scipy import sparse

测试结果

1.常规测试

启动roscore,命令行输入

~$ rosrun  <your_package_name>  mpc_test_file.py

这里我将时间步更改为3步,同时打印控制输出的第一个元素,测试结果如下:

zhz@zhzrobot:~$ rosrun path_track mpc_test_file.py 
-----------------------------------------------------------------
           OSQP v0.6.2  -  Operator Splitting QP Solver
              (c) Bartolo

本文标签: 操作步骤rosPythonosqp