RK3399 ,64位,Ubuntu16.04系统安装ROS-kinetic方法总结

2023-11-14

1.第一步是修改hosts

vi  /etc/hosts
在127.0.0.1 localhost 后边添加 rpdzkj(自己的ubuntu用户名)
127.0.0.1  localhost rpdzkj
  1. 设置sources.list,我选择的是中科大的。
sudo mkdir -p /etc/apt/sources.list.d/ && sudo touch /etc/apt/sources.list.d/ros-latest.list

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

3.添加私钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4.软件库更新

sudo apt-get update && sudo apt-get upgrade
有选择的地方,就一路 Y
若安装过后,出现了  Sub-process /usr/bin/dpkg returned an error code (1)这样的问题,
可以按下面的方法解决:
打开终端,输入
cd /var/lib/dpkg
sudo mv info info.bak #即备份一个info
sudo mkdir info #新建一个新的info目录
sudo apt install -f
就把安装失败的软件自动安装好了。
然后,再运行一次
sudo apt-get update && sudo apt-get upgrade


5.安装ROS kinetic完整版

sudo apt-get install ros-kinetic-desktop-full
有选择的地方,就一路 Y

6.初始化
rosdep init
rosdep update

sudo apt-get install python-pip
sudo apt-get install ros-melodic-desktop-full
sudo rosdep init
rosdep update

但在rosdepc update时,由于要从raw.githubusercontent.com下载文件,这个是国外的网址,需要用代理,否则会出错。也有的说查询IP属地,用IP地址代替,但效果不佳。

reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml]:
        <urlopen error [Errno 111] Connection refused> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml)
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]:
        <urlopen error [Errno 111] Connection refused> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml)
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml]:
        Failed to download target platform data for gbpdistro:
        <urlopen error [Errno 111] Connection refused>
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
ERROR: error loading sources list:
        <urlopen error <urlopen error [Errno 111] Connection refused> (https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml)>
        

其实,最好的办法,是从https://codeload.github.com/ros/rosdistro/zip/refs/heads/master,把整个文件都下载下来,然后解压后,通过USB口,将文件全部拷贝到/home/rpdzkj/Downloads/rosdistro/***下,然后修改在/etc/ros/rosdep/source.list.d/下的20-default.list文件, 按如下操作:


cd  /etc/ros/rosdep/sources.list.d/
rm 20-default.list   //删除原有的文件,如没有可以直接跳过此步
sudo touch 20-default.list

这样,就在/etc/ros/rosdep/source.list.d/中建立文件20-default.list,然后把下面的代码拷贝进来。

一定要注销掉原来的带有raw.githubusercontent.com的这些语句:
yaml https://raw.githubusercontent.com/*********
# 首先是特定于操作系统的列表
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
yaml file:///home/rpdzkj/Downloads/rosdistro/rosdep/osx-homebrew.yaml osx
# 通用的
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml file:///home/rpdzkj/Downloads/rosdistro/rosdep/base.yaml

#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
yaml file:///home/rpdzkj/Downloads/rosdistro/rosdep/python.yaml
yaml file:///home/rpdzkj/Downloads/rosdistro/rosdep/ruby.yaml

#gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
gbpdistro file:///home/rpdzkj/Downloads/rosdistro/releases/fuerte.yaml fuerte
# 更新的发行版(Groovy、Hydro、...)不得再列出,而是从 rosdistro index.yaml 中获取

下面三个文件中也要修改,修改方式同上,查看你的python2.7
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
/usr/lib/python2.7/dist-packages/rosdistro/init.py
对于index-v4.yaml的错误,按下面的方法修改:

sudo vim /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
找到这一行,
'DEFAULT_INDEX_URL ='https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

修改为:

#'DEFAULT_INDEX_URL ='https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
'DEFAULT_INDEX_URL ='file:/home/rpdzkj/Downloads/rosdistro/index-v4.yaml'

对于fuerte.yaml的错误,按下面的方法修改:

  sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
  # FUERTE_GBPDISTRO_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml'
  FUERTE_GBPDISTRO_URL = 'file://home/rpdzkj/Downloads/rosdistro//releases/fuerte.yaml'
  ```
对于targets.yaml的错误,按下面的方法修改:   


```c
  sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
  # REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
  REP3_TARGETS_URL = 'file:/home/rpdzkj/Downloads/rosdistro/releases/targets.yaml'
rosdep update

可以了。

7 为了每次打开新的终端时可以自动配置好 ros 相关环境,需要将ROS环境变量添加到.bashrc文件中。

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

8.安装rosinstall等工具

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

若在这个过程中,出现了 Sub-process /usr/bin/dpkg returned an error code (1)这样的问题,仍按下面的方法解决:

打开终端,输入
cd /var/lib/dpkg
sudo mv info info.bak #即备份一个info
sudo mkdir info #新建一个新的info目录
sudo apt install -f
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

9.验证ROS是否安装成功,每条命令都需要新开一个终端

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RK3399 ,64位,Ubuntu16.04系统安装ROS-kinetic方法总结 的相关文章

  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • 在 Ubuntu 中执行 .cgi 文件

    我在 Ubuntu 下运行 Apache PHP 当我运行 cgi 文件时 通过http localhost mycgi cgi 浏览器将显示代码而不是运行它 如何让浏览器执行 CGI 文件而不是显示其内容 将这些行添加到您的 apache
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 我需要启用哪些权限才能使 Docker 卷正常工作?

    假设我有一个保存一些数据的 Docker 容器 我希望这些数据能够持续存在 如果容器被停止 删除 升级等 我仍然希望数据位于主机操作系统文件系统上的可访问位置 目前 我的解决方案是创建一个目录 srv service name在我的主机上
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • ubuntu中R的igraph包的安装

    我使用以下命令在 ubuntu 中安装 R 的 igraph 包 install packages igraph 但我收到一条错误消息 警告 无法访问存储库的索引 http ftp iitm ac in cran src contrib h
  • 从 Python 调用 PARI/GP

    我想打电话PARI GP http pari math u bordeaux fr dochtml gpman html仅从Python计算函数nextprime n 对于不同的n是我定义的 不幸的是我无法得到帕里蟒蛇 http code
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include

随机推荐

  • 在pycharm上安装Tensorflow1.13 win10

    Tensorflow安装教程 清明回家就折腾了几天的tensorflow 我是使用pycharm安装的 所以下面基于pycharm进行安装 tensorflow1 13 0基础配置 python3 7 cuda10 0 适合cuda的cuD
  • 《数字图像处理》笔记—灰度变换

    3 1 背景 本章主要讲解空间域的图像处理方法 直接对图像中的像素进行操作 主要包括 灰度变换和空间滤波 灰度变换是对图像的各个像素进行操作 空间滤波是对每个像素的邻域进行操作 3 1 1 灰度变换和空间滤波基础 空间域处理可以表达为 邻域
  • 漫画:排序算法系列 第一讲(利用插入算法思想解题)

    在本系列中 将为大家讲解排序算法相关内容 同时 由于网上排序相关的教程太多了 我会尽可能的讲解一些不一样的内容 而不是按照 排序讲解 标准Titile 什么 十大排序算法 经典排序算法 排序算法必知必会 之类的一个一个来进行讲解 所以 如果
  • JDK1.8下载步骤

    JDK概述 JDK是 Java 语言的软件开发工具包 主要用于移动设备 嵌入式设备上的java应用程序 JDK是整个java开发的核心 它包含了 JAVA开发工具 jdk bin 基础开发库 jdk jre lib rt jar 基础开发库
  • windows11测评

    微软在今年6月正式发布了新一代Windows 11操作系统 作为微软近6年来首次推出新的Windows操作系统 Windows 11带来了众多新功能和新特性 例如全新应用商店 新版右键菜单 分离式通知中心 优化的设置面板以及UI界面的重新设
  • 汽车零配件行业MES规划与落地

    汽车零部件行业作为汽车整车行业的上游 是汽车工业发展的基础 汽车制造业的竞争很大程度上也是其零部件产业水平的竞争 近年来 国内汽车零部件企业通过技术引进 合资合作 自主发展 多元化投资等相关措施 在装备水平 制造技术 产品质量 管理水平等方
  • nextcloud 安装教程 windows 中nextcloud 安装方法

    一 准备工作 1 windows server 中可以用WM 虚拟机 再安装docker 虚拟机磁盘只要20G就够了 云盘数据可以映射到其它盘中 2 在虚拟机中设置好共享文件夹名称为nextcloud 用来存放云盘数据 所以请选一个大一点的
  • 【C++】3、排序算法 C++ 实现

    文章目录 排序算法程序 1 冒泡排序 2 直接插入排序 3 希尔排序 4 快速排序 5 总结 排序算法程序 1 冒泡排序 通过对相邻数据的元素进行交换 逐步将待排序序列排成有序序列的过程 如升序排列 扫描整个待排序序列 非整个序列 不扫描已
  • 关系数据库中表示层级结构

    Managing Hierarchical Data in MySQL What are the options for storing hierarchical data in a relational database Trees in
  • 微信小程序地图导航源码、地图导航小程序源码

    最近研究了微信小程序地图功能 编写了地图导航功能的Demo 文章尾部附有下载地址 1 用户定位功能 用户同意小程序获取位置权限 并定位用户当前位置 2 选择目的地 并开始自动导航功能 2 选择交通工具 显示里程数 及显示相似目的地功能 地图
  • JSP页面分页显示数据

    效果如上图所示 最多显示10条 完整jsp和后台代码如下
  • Meetup回顾

    近期 社区组织了专场线上Meetup 分享了v3 0在2022年的研发路线及开发部署方式 直播间讨论十分热烈 我们把一些开发者们比较关心的问题进行了梳理 整理成这一篇关于v3 0的常见问题和解答 供大家学习参考 Q 目前v3 0性能是多少
  • 动态规划之详解01背包和完全背包

    一 总述 在动态规划中 01背包和完全背包可以说是动态规划最典型的应用了 先介绍一下定义 动态规划 英 Dynamic Programming 简称DP 动态规划是一种多阶段决策最优解模型的思想 如果某 问题有很多重叠 问题 使 动态规划
  • Unity调试真机VS中找不到手机设备

    这个问题困扰了我好几天 网上各种百度没有解决 在VS中 调试 gt 附加 Unity 调试程序 一直找不到AndroidPlayer 最后检查了一下手机的系统版本是10 0 而我电脑中下载的版本缺少10 0的一些配置 Android SDK
  • Eclipse安装FindBugs插件

    上菜 一 FindBugs说明 Findbugs 是一个静态分析工具 它检查类或者 JAR 文件 将字节码与一组缺陷模式进行对比以发现可能的问题 利用这个工具 就可以在不实际运行程序的情况对软件进行分析 它可以帮助改进代码的质量 二 Fin
  • COLA之架构演变(一)

    一 常用架构 1 分层架构 2 CQRS架构 3 六边形架构 4 洋葱圈架构 二 COLA介绍 COLA 是 Clean Object Oriented and Layered Architecture的缩写 代表 整洁面向对象分层架构 目
  • Eclipse中配置Tomcat热部署

    在Eclipse中配置VM参数使Tomcat自动加载部署修改后的项目 如果在第二张图中选择了通过xml文件发布项目则还需要配置在xml中配置文件的信息
  • 什么是七牛云?七牛云的使用

    一 什么是七牛云 七牛云是国内知名的云计算及数据服务提供商 主要提供了现在网络上占据百分之就是打非结构化数据 也就是图片 音频 视频的云存储服务 二 七牛云的使用 1 注册账号 2 绑定邮箱 3 实名认证 必须进行 4 创建一个存储空间 5
  • 高效的学习方法(几个小技巧)

    几个学习小技巧 1 价值导向性学习法 发现 赋予学习内容意义或者使命感 价值导向性学习法是一种高效的思维方式 可以传递出这样的一种观点 学习上有意义 有价值的行为 而不是消极的 被动式的学习 首先 最重要的是赋予学习内容以意义 其次 定制清
  • RK3399 ,64位,Ubuntu16.04系统安装ROS-kinetic方法总结

    1 第一步是修改hosts vi etc hosts 在127 0 0 1 localhost 后边添加 rpdzkj 自己的ubuntu用户名 127 0 0 1 localhost rpdzkj 设置sources list 我选择的是