
0-1双足机器人仿真环境搭建记录
以github开源双足机器人hunter行走项目为目标,从0到1搭建Linux系统内仿真环境的过程
目标是复现一个双足机器人NMPC+WBC控制项目,基于如下仿真环境(ubuntu(操作系统) + ROS(机器人操作系统-理解为次级操作系统) + mujoco(动力学引擎) + OCS2(优化计算工具箱) + Clion(额外添加的代码编辑器,为以后修改调试算法准备)),项目地址为https://github.com/bridgedp/hunter_bipedal_control。
由于对Linux系统不太熟悉,导致从头到尾搭建仿真环境过程花费了不少精力。记录下遇到的坑和解决方案。文中链接是比较好的教程,一个个花时间找和尝试出来的。
本文不打算给出具体的过程,只是展示了从0到1搭建仿真环境的比较全面的信息,给入门linux机器人仿真的小白入门提供些许帮助,至少知道做这个仿真需要安装什么依赖软件。
- Vmare虚拟机软件安装-找淘宝安装的
- Ubuntu20.04安装
1)下载iso:最终选择desktop版
ubuntu20.04.06分为桌面版(desktop)和服务器版(live-server),具体下载地址为https://www.releases.ubuntu.com/focal/,也可以直接到官网。【避坑:一开始不知道随便选择了server版,安装后没有出现图形化界面,不知道怎么用。只能删除再重新下载安装desktop版:ubuntu-20.04.6-desktop-amd64.iso】
2)安装:
参考教程https://zhuanlan.zhihu.com/p/355314438
一些细节:安装路径选择在了D盘,和windows系统盘分开比较好。主要设置为虚拟机磁盘大小520G(实际D盘才300G),内存4g/8g,CPU 8个x1/8x2核
【经验:虚拟机加速。后面发现,安装完成后,虚拟系统内存、CPU、硬盘仍然可以重新设置的:右键→添加硬件向导界面查询】
3)ubuntu系统常见基本问题与设置方法:
①网络配置问题:我采用的是NAT模式,参考的是【?待补充】
【模糊记忆中主要流程:虚拟机主界面(编辑→虚拟网络编辑器→建立VMnet9(NAT)模式网络(有网址自动输入要求,具体忘记了))→进入虚拟机ubuntu系统内设置网络(网址自动输入匹配)→退到虚拟机主界面(右键ubuntu系统→设置→手动选择刚才设置好的VMnet9(NAT))即可】
②没有中文输入法的问题(尝试多种方法,并没有解决!)
③系统字太小的问题(桌面图标和图标字体):可以用指令更改字体大小,参考https://blog.csdn.net/m0_65641637/article/details/132036663
④ubuntu界面占不满虚拟机屏幕问题:是分辨率问题,右键settings→displays→修改分辨率即可。https://zhuanlan.zhihu.com/p/431078596
⑤虚拟机速度慢/卡顿问题:这个有点随机,尝试了很多网上的方法,有的时候跟安装方式有关。有用的几个点:1)关闭打印机+声卡,2)在虚拟机 设置-显示 中去除3D图形加速比较有用,3)开启虚拟机虚拟化引擎(这个没成功,无法虚拟化)。
⑥虚拟机与主机共享复制粘贴问题:通过设置,使得可以非常方便的将主机信息复制粘贴到虚拟机https://blog.csdn.net/qq_39362509/article/details/119740379。 【经验:虚拟机终端里面的复制粘贴 快捷键 与一般图形化界面不一样,为:ctrl+shift+c, ctrl+shift+v】 - ROS 安装(neotic)
1)注意:每一个版本的Ubuntu都有(唯一)适配的ROS版本,不能混起来,版本适配信息在https://blog.csdn.net/maizousidemao/article/details/119846292。
2)ubuntu20.04对应ROS neotic 版本
较好安装教程https://zhuanlan.zhihu.com/p/515361781。简单总结下ROS安装流程:
①准备:Ubuntu系统软件源、添加ROS源和密钥
②安装ROS:很简单,一条指令
③后续处理(比较多,老实照抄就行):设置环境变量→初始化rosdep→安装rosinstall→运行与自检(roscore开启→roswtf自检)
④案例测试:小海龟仿真
3)ros机器人应用中主要辅助工具(可选)
①可视化工具 rqt:图形化界面显示ROS节点通信数据(完全版自带)
②RViz:urdf可视化工具–用于查看机器人urdf模型https://blog.csdn.net/baidu_38485156/article/details/81201079
以上为系统基础环境
—————————分界线—————————————
以下为项目特殊工作环境
-
OCS2安装(其实是下载+编译)
OCS2安装的官网https://leggedrobotics.github.io/ocs2/installation.html#prerequisites,也有较好的中文教程https://zhuanlan.zhihu.com/p/682704448。建议使用中文的教程。具体的流程大致总结如下:
1)首先是安装依赖的库
Eigen3(C++的矩阵运算库):自动安装的最新版本3.3.7
catkin编译系统相关内容:即ros的编译系统【安装python的相关编译工具】
其他依赖库
2)其次是正式下载编译OCS2
值得注意的是,安装OCS2的路径是 ROS的一个工作空间 ocs2_ws,即OCS2作为 ROS的一个功能包安装(编译),这个功能包依赖于其他很多功能包。这一步是最麻烦的部分。
【小问题:在上述中文教程中,有个小错误:python3 -m pip install -r ~/git/ocs2/ocs2_mpcnet/ocs2_mpcnet_core/requirements.txt,这句话中git,应该替换为ocs2_ws/src。】
【经验1:git加速经验。下载git clone github.com/…的时候,想要提高效率,改为git clone githubfast.com/… 或者git clone kkgithub.com/…很好用】
【经验2:编译错误问题的经验。 在按照上述流程操作后,编译的时候仍然出现了编译失败:1 package,abundon 60+ package等问题。(经过非常多的折腾,才发现编译失败的绝大部分原因,都是依赖库的安装没有完成!)
①git clone 自动调用与梯子问题:catkin build 指令执行后,有些地方需要git clone一些包,而自己build的时候没有搭梯子,所以遇到了无法下载的问题,从而导致了后续一连串的错误!(一个功能包编译错误/缺少,导致后续所有依赖于这个包的功能包都被abundon)
②缺少依赖包的问题: 有 could not find 的错误一般都是缺少ros依赖包,查询并安装即可(一般sudo apt-get install libxxx-dev即可安装, xxx是特定包名称,错误提示中会有描述,但是错误提示的只是关键词而不是全称; 有些则需要特定的下载安装方式)。
】
【经验3:编译错误C++: fatal error: Killed signal terminated program cc1plus,其实是临时虚拟机内存不足,我的解决方案是,扩大分配内存到16g,解决了】
【经验4:编译一个功能包的时候,这个包自动git clone失败,而且搭梯子也没用的时候,可以根据错误提示,找到这个包的路径下的cmakelist.txt 文件,将其中的默认下载路径改为 经验1中的 两个替代路径,基本可以成功】
下面是编译成功结果 -
Hunter仿真下载编译
1)hunter的编译,上一节ocs2安装教程后就有(https://zhuanlan.zhihu.com/p/682704448)。
hunter机器人 (相对于 ocs2的ros工作空间) 重新单独建立了一个ros工作空间。
【经验:两个ros工作空间的链接,是通过ros设置环境变量实现的(每个工作空间都需要向~/.bashrc文件写入自己的路径,同时source一下),上述教程,下载hunter并新建ros工作空间后,没有提示。可以按照下面的教程,专门设置环境变量https://blog.csdn.net/weixin_42237429/article/details/90238000】
按照github编译hunter的时候,尽管还未安装mujoco,按照官方例程好像也可以完成编译。下面是编译成功的界面:
2)hunter的初步使用
视频教程在这里
https://www.bilibili.com/video/BV18w4m1Z76H/?spm_id_from=333.337.search-card.all.click
严格按照视频的顺序执行,走起来了。下一步是熟悉这个仿真设置界面,然后再研究控制算法替换 -
mujoco210 安装
根据hunter项目编译结果,mujoco没有安装,也能打开mujoco相关的包。听人说是安装了LCM就可以了。
本处仍然记录mujoco的安装过程,可能后续会用到。(mujoco先于ocs2安装,会有ros编译问题,会改变catkin build的依赖包的默认路径(python相关的,会调用conda内部的,而不是Ubuntu系统自带的)。此问题原因不明,所以将mujoco放在ocs2后面是最好的)
mujoco210是 mujoco2.1.0的简写。安装教程:https://zhuanlan.zhihu.com/p/535806578
主要流程为:
1)mujoco本体安装
①准备工作:安装anaconda,安装git
【安装anaconda不是上述链接那么简单,步骤很少但还是有点,参考https://blog.csdn.net/thy0000/article/details/122878599。 并且遇到安装成功后不能conda init的现象,提示“未找到conda 命令”,是环境配置的问题,解决方案在这里https://blog.csdn.net/m0_37872216/article/details/107951206#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%9A】
②安装mojoco210:wget-获取安装包,mkdir选择安装路径,tar解压【个人理解:Linux中似乎很多软件都没有安装过程,只是解压后就可以使用了(具体是进入到解压包的某个路径,通过终端打开某个文件),包括后续的Clion这款编辑器】
③环境变量配置:添加.bashrc中关于mujoco210的内容, 并执行source ~/.bashrc【告诉操作系统,现在添加了这个 mujoco 这个软件,以便于mujoco引用系统的库】
④测试mujoco是否正式安装好
2)安装mujoco-py流程:
【个人理解:不知道这个软件包是什么意思,据说是mojoco+python强化学习这一套餐中需要用到,暂时理解为:mujoco使用python的接口,python负责强化学习控制算法编写,mujoco则负责动力学仿真计算以及可视化展示。】
①conda创建一个虚拟环境
②安装python编译开发环境:一大堆东西,装就完了
③下载安装mujoco-py
④测试是否正式完成
———————————分界线——————————————
以下为可选开放配置
- Clion安装(可选)
参考教程:https://blog.csdn.net/qq_40574123/article/details/121276502。Clion不是开源软件,需要激活。
采用的是“Linux其余安装,一”这部分:
1)下载;官网下载即可https://www.jetbrains.com/clion/download/other.html
2)解压:放到希望的路径解压即可
3)进入到clion/bin目录,sudo ./clion.sh 即可打开(每次打开都需要找到这个目录)。【对于用惯了windows系统的我来说,新概念,amazing!所谓安装,就是解压】
*)激活:初次打开后会出现激活界面,激活这部分,网上大部分激活码都是无效的!激活就各凭本事了!
以上是个人经验,如有错误描述之处,请大家指正。并且本文将持续更新!
更多推荐
所有评论(0)