Windows下Webots+VScode配置MPC库--Eigen和qpOASES库

1、基础环境

  1. windows下安装好webots,默认会使用Webots新建项目和c++控制器
  2. 下载vscode,基础配置可以先不管
  3. 下载mingw64并配置好环境变量

2、Eigen库下载

  1. 直接下载eigen压缩包,解压到你的某个路径下,注意路径里不要有中文和空格,eigen根目录为\eigen-3.4.0,该目录里能看见Eigen子文件夹。在你的项目里只需要包含这个根目录:\eigen-3.4.0

3、qpOASES库下载

  1. 我在官网上打不开下载界面,从别的地方扣来了源码,直接下载qpOASES压缩包,一样保存到没有中文和空格的路径下,解压后进入\qpOASES-master这个根目录,

4、Webots项目的建立

  1. 用Webots新建好你的机器人项目后,并建立一个c++控制器,选用编译器的时候,选用Webots自带的cmake,此时在控制器路径下产生一个makefile文件。

5、VScode下编译qpOASES库

  1. 编译的目的只是生成一个静态链接库 libqpOASES.a 文件
  2. vscode打开上面下载出来的文件夹\qpOASES-master,打开后,vscode左侧有一个cmakelists文件,点击他,这个时候理论上vscode就会推荐安装cmake插件了,或者手动安装,如下图:三个应该都要装
    在这里插入图片描述
  3. 打开文件夹内的make.mk文件,在里面选择window系统:把其他三行注释,解注释window那一行,如下:

TOP = $(realpath $(dir $(lastword $(MAKEFILE_LIST))))

# include ${TOP}/make_linux.mk
#include ${TOP}/make_cygwin.mk
include ${TOP}/make_windows.mk
#include ${TOP}/make_osx.mk

  1. 观察vscode下面的状态栏,是否出现build按钮,没有重启vscode看看。
    在这里插入图片描述

    点击build按钮,他会根据文件夹的cmakelists文件进行编译qpOASES库,点击build后,第一次应该顶 上出现选择编译器,选用上面安装配置的mingw64,或者根据你自己有的vs的编译器,带x64应该都可以
    在这里插入图片描述编译成功后左侧输出栏应该会显示finished
    在这里插入图片描述
    此时点击回到vscode资源管理器里,应该会出现build文件夹,里面的libs里的链接库即为我们所需要的
    在这里插入图片描述

6、VScode下配置webots环境

  1. 我习惯用vscode作为平时开发环境,用vscode开发webots项目,实现的是在vscode里写代码,并且能够查看webots库函数啥的,然后回到webots里面点击编译按钮,并运行
  2. vscode安装后,先安装插件,例如:1. 中文汉化、2.cmake 3. c/c++。可以不用刻意去装,直接用vscode打开你的webots项目文件夹ROBOT,打开cpp文件,应该vscode右下角会推荐你安装c++的插件,点击安装就好
    在这里插入图片描述
  3. 在打开的文件夹下,创建一个叫做.vscode的文件夹,并在里面新建c_cpp_properties.json文件,在里面复制以下内容:并且根据你自己安装的eigen库和qpOASES库的具体路径修改
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}",
                "D:\\Webots\\include\\controller\\cpp",//你的webots安装路径的include里找找
                "D:\\Webots\\include\\controller\\c",//你的webots安装路径的include里找找
                "D:\\qpOASES-master\\include",//你的qpOASES-master路径的里找找
                "D:\\eigen-3.4.0"//你的eigen路径的里找找
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "${default}",
                "path": [
                    "${workspaceFolder}",
                    "D:\\Webots\\lib\\controller",//你的webots安装路径的include里找找
                    "D:\\qpOASES-master\\build\\libs",//你的qpOASES-master路径的里找找
              		"D:\\eigen-3.4.0"//你的eigen路径的里找找
                ]
            },
            "intelliSenseMode": "${default}",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "compilerPath": "${default}"
        }
    ],
    "version": 4
}
  1. 打开当前工作文件夹内的makefile,复制以下内容
# CXX_SOURCES = $(wildcard *.cpp) # 这一句是编译文件夹内所有cpp文件,多个cpp文件可以直接这样
CXX_SOURCES =robot.cpp  robot2.cpp  

# 下面这里三个路径根据自己的eigen库路径和qpOASES路径修改
INCLUDE = -I D:/qpOASES-master/include -I D:/eigen-3.4.0 -I D:/qpOASES-master/include/qpOASES
# 下面这个路径就是我们编译出来的静态链接库的路径,例如文件叫做libqpOASES.a,那么就要去除前面lib和后面.a写成-lqpOASES
LIBRARIES = -L "D:/qpOASES-master/build/libs" -lqpOASES
# D:\QT\Mylibs\qpLibs\qpOASES-master\build\libs

### Do not modify: this includes Webots global Makefile.include
null :=
space := $(null) $(null)
WEBOTS_HOME_PATH=$(subst $(space),\ ,$(strip $(subst \,/,$(WEBOTS_HOME))))
include $(WEBOTS_HOME_PATH)/resources/Makefile.include

7、webots里编译运行

  1. 我们利用vscode写代码能够具备智能补写,跳转函数之类的非常方便的功能,写好代码后,最后去webots里编译代码
  2. window下安装qpOASES主要是注意编译后,webots里的makefile修改,而且一开始我用的别人编译好的,到自己这里就出问题,所以最后还是自己编译才成功了。
  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值