ros2项目(1)open-rmf 安装与运行

1,720 阅读5分钟

1.项目介绍

1.rmf项目git:github.com/open-rmf/rm…
2.rmf-demo项目git(可以忽略):github.com/open-rmf/rm…
3.rmf-web项目git:github.com/open-rmf/rm…

外国的项目,可能需要多刷新几次。 下面这些问题也都是在没有‘科学软件’或’vpn代理‘的情况下遇到的,如果可以科学,那就按照git项目里一步一步安装即可成功,出现的问题会少很多很多。所以尽可能的科学,像这种改‘cnpm’等操作失败率极高。

运行按照序号顺序依次运行,我主要负责前端工作,所以主要研究rmf-web项目。后续将更新rmf-web的文章。

注意: 该项目老外也是今年中旬才开始写,项目也是处于更新频繁的阶段,本文章针对项目时间为2021/12/21日。

2.基于ubuntu20.04系统

安装 ubuntu20.04
如果是双系统的话会更好一点,因为项目运行起来还是比较吃内存的,虚拟机会略卡,双系统会更顺畅一下。

如果是虚拟机的建议虚拟硬盘 搞大点。项目大概得占20多个G,建议设置100G。
Ubuntu 20.04支持图形界面直接更换源了,操作上简便了不少。参考链接: Ubuntu 20.04 apt 更换国内源的实现方法

3.ROS2安装

参考ros2安装:Ubuntu 20.04安装ROS2 Galactic
该文章写的很详细,我安装的是桌面版,可能还是会遇到下面的问题文章中没有提及,可以参考一下。

增加ROS 2 apt软件仓库 遇到的问题

问题1:W: GPG 错误

如果 sudo apt-get update 出现W: GPG 错误,参考: sudo apt-get update出现W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名:

问题2:no module named pip 的问题

//如果未安装pip 先安装下面这句
//sudo apt-get install python3-pip
python3 -m pip install flask-socketio

参考ubuntu下运行python提示: no module named pip,注意文中python版本的问题

sudo rosdep init 遇到的问题

问题1 ip 过期

参考 ROS系统安装——sudo rosdep init失败问题解决

rosdep update 遇到的问题

这步是比较麻烦的,解决起来也是浪费了很长时间。
参考ROS安装过程中如何解决 rosdep update 命令出现错误

// 需要将里面所有的2.7 改为 python3 ,打开的文件位置也为python3才有
// $ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
$ sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py  

注意:文章中 所有的2.7 都要换成对应自己的版本 python3

第5个地址编译报错,注意是个大坑 下面是解决方法

// hit5 这个应该写在 202行  will output a warning 这个的下面 (。。注意。。)
// 并且注意 是单引号'XX' ,双引号会报错的
gbpdistro_url = 'https://ghproxy.com/' + gbpdistro_url

vcs import src < rmf.repos 遇到的问题

这步是比上步还麻烦,解决起来也是浪费了更长时间。
你可能会报ssl 错误参考方法blog.csdn.net/tmaccs/arti…

最好的解决方法 还是 科学上网,如果不能的话就试试下面这几种(我都失败了)
ssl 解决后会遇到 git443 报错 (网上找到下面方法都不行,可以试一试。) 终端输入

sudo gedit /etc/hosts

hosts 添加这两行 访问www.ipaddress.com/网址查询下面所需的地址对应的IP,查询github.com ,github.global.ssl.fastly.net的IP:

然后host 配置这两个

github.com\     192.168.xxx
github.global.ssl.fastly.net    xxx.xxx.xxx

配置完成后记得终端输入下面。重启网络才生效

//修改完 host 需要重启网络
service network-manager restart

以上方式试过了还是不行,最后参考这个成功搞定: vcs import src < ros2.repos失败

//注意 如果没安装vim 请先安装vim 参考: sudo vim报错command not found解决办法

以上 rmf 便搞好了,但是不一定真的都好了,可能有些并没有安装成功,没注意到也是很正常的。
建议先 跑一下rmf-demo 看一下是否可以正常运行。

4.rmf-demo启动(可跳过)

这步仅仅是用来测试自己rmf 是否安装成功的,并无实际作用。
终端输入

//启动1个 demo 就行了
source ~/rmf_ws/install/setup.bash
ros2 launch rmf_demos_gz hotel.launch.xml

可能会很卡,因为这是启动的ROS2的gazebo软件,挺吃内存的。启动成功后的效果图如下

image.png 如果你也成功唤起了这个软件,那么恭喜你最难搞的rmf便完成了,接下来就可以rmf-web了。

5.rmf-web

web 项目目前更新频繁,并且一直在重构,最初的lern打包也给改成了shell脚本写的打包,后续可能还会改动,所以注意对照版本

克隆地址

git clone https://github.com/open-rmf/rmf-web
//克隆太慢 可以换成 cnpm 进行克隆  
//git clone https://`github.com/github.com.cnpmjs.org/open-rmf/rmf-web

安装rmf-dashboard依赖出现问题

注意: 只需要安装 rmf-dashboard 依赖即可,如果全安装需要耗时更久,而且极易失败。

安装依赖是对npm、node版本要求很严格的,注意npm和node版本一致并符合要求。 //如果出现问题 尝试卸载清空npm node 相关后, 重新安装node 再安装npm。

//如果安装的特别快,大概率是失败了, 卸载npm node后再次尝试即可,正常情况是需要安装很长时间的依赖
scripts/bootstrap.sh rmf-dashboard

docker 数据库

数据库推荐docker安装,如果没有安装过docker的话,安装docker指令

sudo apt install docker.io

初次docker会报下面问题
Docker“Got permission denied while trying to connect to the Docker daemon socket
参考: 解决Ubuntu18.04启动Docker“Got permission denied while trying to connect to the Docker daemon socket“问题

注意:使用docker数据库的话,每次电脑重启运行都需要docker镜像一下数据库环境。

npm run start

注意 每次启动前都要确定一下是否已经映射了这个,否则即使编译成功,弹出的页面也没有内容。

source ~/rmf_ws/install/setup.bash

启动时可能会看到 pip错误,有可能是因为pip没有全局的问题,留意一下,如果出现了记得解决一下。我还没有遇到过。

启动成功的话就会看到下面这个了。

image.png

6.总结

后续将针对rmf-web进行学习研究,老外写的前端项目不得不说,确实很不错。无论是代码规范、设计思想、组件封装都有学习的地方。 主要技术用到: react、hooks、leaflet2、node、socket,后面将试着开源一个类似项目,分享一下学习记录。 贴一张rmf-web目录:

9{M42W{}JV)6~U4E)O@BFUU.png 一个简单的组件封装,也有测试,有storybook展示,与主项目独立开。

参考

www.jb51.net/article/187…
blog.csdn.net/amuro_ray02…
blog.csdn.net/wangxue_123…
blog.csdn.net/qq_36269513…
blog.csdn.net/qq_32705211…
zhuanlan.zhihu.com/p/392082731
blog.csdn.net/tmaccs/arti…
blog.csdn.net/qq_39854159…
www.jianshu.com/p/86bf7e797…
blog.csdn.net/liangllhaha…