Ubuntu20.04安装ROS-noetic

描述

在Ubuntu20.04上安装ROS-noetic

安装步骤

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

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

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

roscore
rosrun turtlesim turtlesim_node

错误

错误1

执行安装命令时报错

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

错误内容提示

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

我使用aptitude命令来修复依赖

sudo aptitude install ros-noetic-desktop-full

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

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

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

错误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还原

而后重新执行命令

sudo aptitude install ros-noetic-desktop-full

成功安装

错误2

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

Traceback (most recent call last):
  File "/opt/ros/noetic/bin/roscore", line 37, in <module>
    from roslaunch.nodeprocess import DEFAULT_TIMEOUT_SIGINT, DEFAULT_TIMEOUT_SIGTERM
  File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/__init__.py", line 62, in <module>
    from .scriptapi import ROSLaunch
  File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/scriptapi.py", line 42, in <module>
    import roslaunch.parent
  File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/parent.py", line 54, in <module>
    import roslaunch.server
  File "/opt/ros/noetic/lib/python3/dist-packages/roslaunch/server.py", line 80, in <module>
    from rosgraph_msgs.msg import Log
  File "/opt/ros/noetic/lib/python3/dist-packages/rosgraph_msgs/msg/__init__.py", line 1, in <module>
    from ._Clock import *
  File "/opt/ros/noetic/lib/python3/dist-packages/rosgraph_msgs/msg/_Clock.py", line 6, in <module>
    import genpy
  File "/opt/ros/noetic/lib/python3/dist-packages/genpy/__init__.py", line 34, in <module>
    from . message import Message, SerializationError, DeserializationError, MessageException, struct_I
  File "/opt/ros/noetic/lib/python3/dist-packages/genpy/message.py", line 64, in <module>
    import numpy as np
  File "/home/chen/.local/lib/python3.8/site-packages/numpy/__init__.py", line 108, in <module>
    from ._globals import (
ValueError: source code string cannot contain null bytes

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

错误2解决方案

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

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

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

错误2补充

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

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值