本文已参与「新人创作礼」活动,一起开启掘金创作之路。
在Ros Melodic版本下,直接运行sudo apt-get install ros-melodic-moveit
会出现以下错误:
下列软件包有未满足的依赖关系:
ros-melodic-moveit-full : 依赖:xxxxx 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
正确的安装方法是先从源码编译解决环境冲突问题,具体步骤如下:
1. 准备工作
更新软件包版本
rosdep update
sudo apt-get update
sudo apt-get dist-upgrade
下载依赖文件
sudo apt-get install python-wstool python-catkin-tools clang-format-3.9
2. 源码编译
创建工作区
mkdir ~/ws_moveit
cd ~/ws_moveit
下载源代码
wstool init src
wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall
wstool update -t src
rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
Tip:这一步中,wstool update -t src
由于网络问题可能会导致速度很慢,解决方法是在浏览器中进入https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall
网站,可以看到如下信息:
# This file is intended for users who want to build MoveIt from source.
# Used with wstool, users can download source of all packages of MoveIt.
- git:
local-name: moveit_msgs
uri: https://github.com/ros-planning/moveit_msgs.git
version: master
- git:
local-name: moveit_resources
uri: https://github.com/ros-planning/moveit_resources.git
version: master
- git:
local-name: geometric_shapes
uri: https://github.com/ros-planning/geometric_shapes.git
version: noetic-devel
- git:
local-name: moveit
uri: https://github.com/ros-planning/moveit.git
version: master
- git:
local-name: rviz_visual_tools
uri: https://github.com/PickNikRobotics/rviz_visual_tools
version: master
- git:
local-name: moveit_visual_tools
uri: https://github.com/ros-planning/moveit_visual_tools.git
version: master
- git:
local-name: moveit_tutorials
uri: https://github.com/ros-planning/moveit_tutorials.git
version: master
- git:
local-name: panda_moveit_config
uri: https://github.com/ros-planning/panda_moveit_config.git
version: melodic-devel
记载的是要编译的各个仓库和分支,所以如果由于网络问题,可以在src文件夹下键入git clone -b 分支名 +地址
,其中的分支名为version的内容。
安装编译器缓存(可选环节)
安装ccache:
sudo apt-get install ccache
配置环境
echo 'export PATH=/usr/lib/ccache:$PATH' >> $HOME/.bashrc
source $HOME/.bashrc
利用ccache可以查看build过程中命中率和缓存使用情况的统计信息:
ccache --show-stats
编译Moveit
catkin build
Tip:编译中可能会出现的各种问题:
-
catkin build导致系统经常卡死,这是由于编译默认采用全部核,可以在后面加上
-j2或-j4
-
当出现如下错误时:
/opt/ros/kinetic/lib/libresource_retriever.so:对‘curl_easy_init@CURL_OPENSSL_3’未定义的引用 /opt/ros/kinetic/lib/libresource_retriever.so:对‘curl_easy_perform@CURL_OPENSSL_3’未定义的引用 /opt/ros/kinetic/lib/libresource_retriever.so:对‘curl_easy_setopt@CURL_OPENSSL_3’未定义的引用 /opt/ros/kinetic/lib/libresource_retriever.so:对‘curl_easy_cleanup@CURL_OPENSSL_3’未定义的引用 ......
则表示ROS和Anaconda的出现兼容问题,意思就是在编译过程中所使用的curl与libcurl无法匹配
解决方法(直接删除
libcurl.so.4
,将libcurl.so.4
指向ros使用的版本/usr/lib/x86_64-linux-gnu/libcurl.so.4
:):cd ~/anaconda3/lib sudo rm libcurl.so.4 sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0 libcurl.so.4
-
当出现如下错误时:
//usr/lib/x86_64-linux-gnu/libapr-1.so.0:对‘uuid_generate@UUID_1.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libSM.so.6:对‘uuid_unparse_lower@UUID_1.0’未定义的引用
同样是由ROS和Anaconda的出现的兼容问题导致
解决方法:
sudo rm ~/anaconda3/lib/libuuid.so.1 sudo ln -s /lib/x86_64-linux-gnu/libuuid.so.1 ~/anaconda3/lib/libuuid.so.1
4. 安装Moveit
终端键入:
sudo apt-get install ros-melodic-moveit
5. 检验安装
打开roscore:
roscore
启动Moveit-Setup-Assistant:
roslaunch moveit_setup_assistant setup_assistant.launch
启动成功后出现如下界面,恭喜你已经成功安装Ros Melodic下的Moveit!
今天的文章ROS-Melodic 编译Moveit全过程记录和错误解决方案分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/20697.html