ROS系列——Ubuntu18.04下ros Melodic安装mavros过程中遇到问题及解决-定期更新版

本文详细记录了在Ubuntu18.04系统中安装ROS Melodic的mavros时遇到的问题,包括wstool更新、rosdep安装、rosinstall_generator命令执行以及catkin build过程中的错误,同时提供了针对每个问题的具体解决步骤,帮助读者顺利解决安装过程中遇到的难题。

问题

问题一:运行 wstool update -t src -j8 时,出错如下:

请添加图片描述

问题二:运行 rosdep install --from-paths src --ignore-src -y 时,出错如下:

请添加图片描述

问题三:运行 rosinstall_generator --rosdistro melodic mavlink | tee /tmp/mavros.rosinstall 时,出错如下:

 rosinstall_generator --rosdistro melodic mavlink | tee /tmp/mavros.rosinstall
Traceback (most recent call last):
  File "/usr/bin/rosinstall_generator", line 11, in <module>
    load_entry_point('rosinstall-generator==0.1.22', 'console_scripts', 'rosinstall_generator')()
  File "/usr/lib/python2.7/dist-packages/rosinstall_generator/cli.py", line 163, in main
    upstream_version_tag=args.upstream, upstream_source_version=args.upstream_development)
  File "/usr/lib/python2.7/dist-packages/rosinstall_generator/generator.py", line 267, in generate_rosinstall
    wet_package_names, unreleased_repo_names = _get_packages_for_repos(distro_name, repo_names, source=upstream_source_version)
  File "/usr/lib/python2.7/dist-packages/rosinstall_generator/generator.py", line 93, in _get_packages_for_repos
    wet_distro = get_wet_distro(distro_name)
  File "/usr/lib/python2.7/dist-packages/rosinstall_generator/generator.py", line 224, in get_wet_distro
    _wet_distro = _get_wet_distro(distro_name)
  File "/usr/lib/python2.7/dist-packages/rosinstall_generator/distro.py", line 45, in get_distro
    index = get_index(get_index_url())
  File "/usr/lib/python2.7/dist-packages/rosdistro/__init__.py", line 104, in get_index
    yaml_str = load_url(url)
  File "/usr/lib/python2.7/dist-packages/rosdistro/loader.py", line 59, in load_url
    raise URLError(str(e) + ' (%s)' % url)
urllib2.URLError: <urlopen error <urlopen error [Errno 111] Connection refused> (https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml)>

请添加图片描述

问题四:运行 catkin build时,出错如下:

/my_mavros_ws/src/mavros/mavros/src/plugins/sys_status.cpp:265:65: error: ‘PROPULSION’ is not a member of ‘STS {aka mavlink::common::MAV_SYS_STATUS_SENSOR}’
   if (last_st.onboard_control_sensors_enabled & enum_value(STS::PROPULSION))
                                                                 ^~~~~~~~~~
/home/nuc/my_mavros_ws/src/mavros/mavros/src/plugins/sys_status.cpp:266:121: error: ‘PROPULSION’ is not a member of ‘STS {aka mavlink::common::MAV_SYS_STATUS_SENSOR}’
    stat.add("propulsion (actuator, esc, motor or propellor)", (last_st.onboard_control_sensors_health & enum_value(STS::PROPULSION)) ? "Ok" : "Fail");
                                                                                                                         ^~~~~~~~~~
make[2]: *** [CMakeFiles/mavros_plugins.dir/src/plugins/sys_status.cpp.o] Error 1
make[1]: *** [CMakeFiles/mavros_plugins.dir/all] Error 2
make: *** [all] Error 2
cd /home/my_mavros_ws/build/mavros; catkin build --get-env mavros | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
...............................................................................
Failed     << mavros:make                  [ Exited with code 2 ]              
Failed    <<< mavros                       [ 5.1 seconds ]                     
Abandoned <<< mavros_extras                [ Unrelated job failed ]            
Abandoned <<< test_mavros                  [ Unrelated job failed ]            
[build] Summary: 2 of 5 packages succeeded.                                    
[build]   Ignored:   None.                                                     
[build]   Warnings:  None.                                                     
[build]   Abandoned: 2 packages were abandoned.                                
[build]   Failed:    1 packages failed.                                        
[build] Runtime: 6.3 seconds total.  

请添加图片描述

解决

问题一:

手动下载源码包,将其放到 my_mavros_ws/src,源码包下载

问题二:

执行sudo apt-get update 后,再执行步骤一次该命令;
如果还未解决,并且出现类似错误:
E: Unable to locate package ros-melodic-mavlink
则:
终端输入:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
备注:出现Unable to locate package ros-melodic-***时,已可以通过以上方式解决

问题三:

原因是:查看File “/usr/lib/python2.7/dist-packages/rosdistro/init.py”, line 104, in get_index
yaml_str = load_url(url) 和 File “/usr/lib/python2.7/dist-packages/rosdistro/loader.py”, line 59, in load_url
raise URLError(str(e) + ’ (%s)’ % url),里面需要链接到https://raw.githubusercontent.com这个网址,可能是网络问题,链接失败,所以作如下修改:

1)终端输入:

sudo gedit /etc/hosts  

2)打开文件后,末尾输入如下内容:

199.232.68.133  raw.githubusercontent.com

3)保存,退出,重新执行出错的命令

rosinstall_generator --rosdistro melodic mavlink | tee /tmp/mavros.rosinstall

问题四:

重新执行了wstool update -t src -j4命令,通过该命令下载下了mavros和mavlink功能包,然后安装就正常了。
通过命令下载的mavros和mavlink功能包链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值