• Ubuntu20.04安装ROS-noetic


    描述

    在Ubuntu20.04上安装ROS-noetic

    安装步骤

    大体上都是按照ROS wiki上的操作来的

    http://wiki.ros.org/cn/noetic/Installation/Ubuntu

    安装完之后执行小乌龟命令来判断是否安装成功

    roscore
    rosrun turtlesim turtlesim_node
    
    • 1
    • 2

    错误

    错误1

    执行安装命令时报错

    sudo apt-get install ros-noetic-desktop-full
    
    • 1

    错误内容提示

    E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken ...
    
    • 1

    我使用aptitude命令来修复依赖

    sudo aptitude install ros-noetic-desktop-full
    
    • 1

    系统自己给出了安装方案,以为能很容易修复,结果再次报错

    由于出现了太多错误,处理过程被中止了
    
    • 1

    暂时不知道是什么原因,做了一次不求甚解的人,从网上找了一个解决方案,很好用

    错误1解决方案

    第一步:备份
    $ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk
    第二步:新建
    $ sudo mkdir /var/lib/dpkg/info
    第三步:更新
    $ sudo apt-get update
    $ sudo apt-get -f install
    第四步:替换
    $ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bk
    //把更新的文件替换到备份文件夹
    第五步:删除
    $ sudo rm -rf /var/lib/dpkg/info
    //把自己新建的info文件夹删掉
    第六步:还原
    $ sudo mv /var/lib/dpkg/info.bk /var/lib/dpkg/info
    //把备份的info.bk还原
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    而后重新执行命令

    sudo aptitude install ros-noetic-desktop-full
    
    • 1

    成功安装

    错误2

    安装ros成功后,执行命令roscore后失败,报错内容

    Traceback (most recent call last):
      File "/opt/ros/noetic/bin/roscore", line 37, in 
        from roslaunch.nodeprocess import DEFAULT_TIMEOUT_SIGINT, DEFAULT_TIMEOUT_SIGTERM
      File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/__init__.py", line 62, in 
        from .scriptapi import ROSLaunch
      File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/scriptapi.py", line 42, in 
        import roslaunch.parent
      File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/parent.py", line 54, in 
        import roslaunch.server
      File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/server.py", line 80, in 
        from rosgraph_msgs.msg import Log
      File "/opt/ros/noetic/lib/python3/dist-packages/rosgraph_msgs/msg/__init__.py", line 1, in 
        from ._Clock import *
      File "/opt/ros/noetic/lib/python3/dist-packages/rosgraph_msgs/msg/_Clock.py", line 6, in 
        import genpy
      File "/opt/ros/noetic/lib/python3/dist-packages/genpy/__init__.py", line 34, in 
        from . message import Message, SerializationError, DeserializationError, MessageException, struct_I
      File "/opt/ros/noetic/lib/python3/dist-packages/genpy/message.py", line 64, in 
        import numpy as np
      File "/home/chen/.local/lib/python3.8/site-packages/numpy/__init__.py", line 108, in 
        from ._globals import (
    ValueError: source code string cannot contain null bytes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    这个错误很奇怪,我注意到报错内容的最后一行提示在路径/home/chen下竟然有一个.local文件夹

    错误2解决方案

    我的解决方案是,备份了这个隐藏文件夹,然后删除了隐藏文件夹

    cp -r /home/chen/.local /home/chen/local_bak
    sudo rm -rf /home/chen/.local
    
    • 1
    • 2

    之后,执行命令roscore,可以成功

    错误2补充

    很奇怪的是,删除了.local后,我的Ubuntu微信图标(绿色的)没了,变成了一个像设置按钮一样的默认白图标。

    这时我仿佛知道了刚才roscore失败的原因,有可能是微信的某个中文设置导致了失败。

    我这时进行了很多操作:重启、重装微信、并且不停的执行roscore来判断是否有误
    奇怪的是,乱七八糟执行一通后,.local文件夹还保留的情况下,roscore也不执行失败了。真的不知道为啥了。。。暂时就这样把。

  • 相关阅读:
    通过JavaScript 实现简单的全选、不全选的思想
    低代码+RPA,会发生什么?
    论文阅读-----使用可分离脚印的x射线3D CT向前和向后投影
    Android基础开发-选择图片,发送彩信
    1-(3-磺酸基)丙基-1-甲基-2-吡咯烷酮三氟甲磺酸盐[C3SO3Hnmp]CF3SO3
    刷爆力扣之第三大的数
    设计模式之适配器模式
    PTA 7-6 盲盒包装流水线(单调栈)
    SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?
    android U广播详解(二)
  • 原文地址:https://blog.csdn.net/weixin_42156097/article/details/126272801