从装ubuntu20.0.4 -> rmf运行的历程(1)
根据电脑选择 传统 还是 efi去安装ubuntu
实验室电脑是uefi故参考:
https://blog.csdn.net/nienelong3319/article/details/79948847
安装完后,由于我是双显示屏,而其中一个显示屏又不亮,亮的显示屏又是副屏,导致误以为安装失败
看到屏幕啥都没有,快速移动鼠标,发现鼠标 直接输入密码,按enter就进来了。 tnnd
安装google
把梯子(clash)搭好后,下载google并安装
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
安装ros2(galactic)
一开始用的源服务器,几个包无法下载,就换成了mirros.huawei的
安装参考:
https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html
构建rmf----(1)
此处依然使用上面的华为源(安装的过程中,不要中断!如果一定要中断,把包删干净,再重新下)
1.注意!!!!!!!!rmf-demos-gz完全没必要下载!!!可见后面
2.rmf.repos需要修改!!!见后面
sudo apt-get clean ros-galactic-rmf-demos-gz
sudo apt clean ros-galactic-rmf-demos-gz
//用于清理包
最后换成了腾讯的源。还遇到了两个问题:
1.文件尺寸不符,您使用的镜像正在同步中?
soul:修改 /etc/apt/sources.list 里的源,http 改为 https 后问题解决
2.更新系统时出现Hash校验和不符的错误
//使用如下命令清除临时文件:
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
构建rmf----(2)
这一部分 跟着官网来就行了
sudo apt update && sudo apt install \
git cmake python3-vcstool curl \
qt5-default \
-y
python3 -m pip install flask-socketio
sudo apt-get install python3-colcon*
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
mkdir -p ~/rmf_ws/src
cd ~/rmf_ws
wget https://raw.githubusercontent.com/open-rmf/rmf/main/rmf.repos
vcs import src < rmf.repos
cd ~/rmf_ws
rosdep install --from-paths src --ignore-src --rosdistro galactic -y
构建rmf----(3)
最捉摸不定的地方来了哈!!!
https://github.com/open-rmf/rmf_ros2 (是rmf中的一个包,我怀疑官方在这里没有对其很好的适配,希望以后可以修复。)
下载源码,尝试对其colcon build
出现问题:
意思大概是rmf_traffic-config这个包是1.4.0.的,但编译rmf_ros2需要版本到达2.0.0以上,因此:
https://github.com/open-rmf/rmf_traffic/tree/2.0.0,来到此网站,下载2.0.0版本的rmf_ros2的包,将其下载并解压到与rmf_ros2的统计目录即可。
但是我发现,在原来下的rmf包中,包含了rmf_traffic,但是,还是编译还是出错!经过查询发现是因为,rmf_ros2链接了旧的rmf_traffic,有一种解决方案是,把ros-galactic-rmf-*删除!因此:
sudo apt purge ros-galactic-rmf- *
之后,在进行编译,又有问题:
经过查询,需要下载galactic版本的ros_ign,故先删除之前编译的,修改rmf.repos,将其中的rod_ign版本改为galactic,再进行编译。
终于成功!
附上最终rmf.repos:
repositories:
rmf/rmf_battery:
type: git
url: https://github.com/open-rmf/rmf_battery.git
version: main
rmf/rmf_internal_msgs:
type: git
url: https://github.com/open-rmf/rmf_internal_msgs.git
version: main
rmf/rmf_api_msgs:
type: git
url: https://github.com/open-rmf/rmf_api_msgs.git
version: main
rmf/rmf_ros2:
type: git
url: https://github.com/open-rmf/rmf_ros2.git
version: main
rmf/rmf_task:
type: git
url: https://github.com/open-rmf/rmf_task.git
version: main
rmf/rmf_traffic:
type: git
url: https://github.com/open-rmf/rmf_traffic.git
version: 2.0.0
rmf/rmf_utils:
type: git
url: https://github.com/open-rmf/rmf_utils.git
version: main
rmf/ament_cmake_catch2:
type: git
url: https://github.com/open-rmf/ament_cmake_catch2.git
version: main
rmf/rmf_visualization:
type: git
url: https://github.com/open-rmf/rmf_visualization.git
version: main
rmf/rmf_visualization_msgs:
type: git
url: https://github.com/open-rmf/rmf_visualization_msgs.git
version: main
rmf/rmf_building_map_msgs:
type: git
url: https://github.com/open-rmf/rmf_building_map_msgs.git
version: main
rmf/rmf_simulation:
type: git
url: https://github.com/open-rmf/rmf_simulation.git
version: main
rmf/rmf_traffic_editor:
type: git
url: https://github.com/open-rmf/rmf_traffic_editor.git
version: main
demonstrations/rmf_demos:
type: git
url: https://github.com/open-rmf/rmf_demos.git
version: main
thirdparty/menge_vendor:
type: git
url: https://github.com/open-rmf/menge_vendor.git
version: master
thirdparty/nlohmann_json_schema_validator_vendor:
type: git
url: https://github.com/open-rmf/nlohmann_json_schema_validator_vendor.git
version: main
thirdparty/pybind11_json_vendor:
type: git
url: https://github.com/open-rmf/pybind11_json_vendor.git
version: main
thirdparty/ros_ign:
type: git
url: https://github.com/ignitionrobotics/ros_ign.git
version: galactic