ROS环境搭建步骤总结

2023-11-08

ROS环境搭建踩坑总结

Ubuntu 16.04安装ROS Kinetic

ROS安装

  1. 进入到 ROS官网选择安装的版本和系统
  2. 配置Ubuntu的repositories,以允许“restricted”,“ universe”和“ multiverse”。 可以按照Ubuntu指南中的说明进行操作。
  3. 设置接受来自package.ros.org的软件。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

中国也可以使用其他源,例如

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

或者

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  1. apt升级一下到最新版本
sudo apt-get update
  1. 安装完整版本
sudo apt-get install ros-kinetic-desktop-full

可以通过下面这条命令来寻找可供下载的package

apt-cache search ros-kinetic

ROS环境搭建

  1. 每次启动新的shell时,将ROS环境变量自动添加到bash session中,很方便:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 安装一些其他依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
  1. 安装rosdep
    rosdep使我们能轻松地为要编译的源安装系统依赖,并且是运行ROS中某些核心组件所必需的。 如果在上一步中没有安装,一定要装。
sudo apt install python-rosdep
  1. 初始化rosdep
sudo rosdep init

这一步可能会报下面的错误:

sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

大概有下面几种可能:

  • ca-certificates问题,证书不对,重新安装
sudo apt-get install ca-certificates
  • 系统时间同步问题,同步系统时间
sudo apt-get install ntpdate
sudo ntpdate cn.pool.ntp.org
sudo hwclock --systohc
  • ssl certs问题
sudo c_rehash /etc/ssl/certs 
sudo -E rosdep init
  • python-rosdep问题
sudo apt-get install python-rosdep

但是发现并没有用,之后在
在/etc目录下,新建了/ros/rosdep/sources.list.d/20-default.list这么个文件(注意sudo rosdep init失败时,/etc下并没有/ros目录,需要依次逐级新建),然后将https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list内容粘贴进去,如下:

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/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
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

根据网上的总结,到这一步应该就没有问题了,或者是会报错但不影响继续往下走的步骤,但实际上,往下走到5依旧会出错。
最终发现:这一步需要科学上网
5. 初始化rosdep

rosdep update

如果没有科学上网,这一步是会报错的,并且按照所谓的步骤:

#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133  raw.githubusercontent.com
#保存后退出再尝试
rosdep update

是无效的。

ROS环境设置

  1. 如果完成了上面的步骤,就可以来确认一下是否安装正确了
printenv | grep ROS
  1. 打开的每个新Shell上都要先运行下面的命令,以访问ROS命令,除非我们将此行添加到.bashrc中。 这一步使我们可以在同一台计算机上安装多个ROS版本并在它们之间进行切换。
source /opt/ros/kinetic/setup.bash
  1. 创建ROS工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

catkin_make命令是用于使用catkin workspace的便捷工具。 第一次在workspace运行它,它将在src文件夹中创建一个CMakeLists.txt链接。
当前目录中应该有一个build和devel文件夹。 在devel文件夹中,可以看到有多个setup. sh文件。运行任何一个都会覆盖整个环境。

要确保安装脚本正确覆盖了您的工作区,请确保ROS_PACKAGE_PATH环境变量包含你所在的目录。

echo $ROS_PACKAGE_PATH
/home/youruser/catkin_ws/src:/opt/ros/kinetic/share

这样,ROS环境就搭建好了。

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

ROS环境搭建步骤总结 的相关文章

  • (转)四元数概念及其应用

    1 采用右手坐标系 OpenGL 2 旋转次序 x gt y gt z 3 矩阵是列优先存储 1 什么是四元数 直接用数学上的定义来解释 因为我很难在现实生活中找到可以描述明白的例子 i j k 为虚数 Q w xi yj zk 其中w是实

随机推荐

  • 图像分类算法—KNN、SVM、BP、CNN

  • Yarn日志过大无法拉取java.lang.RuntimeException: The total log size is too large.The log size limit is 10240M

    yarn拉取日志命令 yarn logs applicationId application 1624172467753 3988 appOwner root size limit mb 1 gt application 162417246
  • 多线程竞争及解决方法

    线程是非独立的 同一个进程里线程的数据是共享的 当各个线程访问数据资源时会出现竞争状态 即 数据几乎同步会被多个线程占用 造成数据混乱 即所谓的线程不安全 解决多线程问题的方法 锁 锁的好处 确保了某段关键代码 共享数据资源 只能有一个线程
  • 树莓派3B+安装Raspbian简易教程

    刚买的树莓派3B 没过一周 树莓派4就出来了 不过算了 基本上用起来差不多 所以大家继续看吧 最近有点忙 所以就不BB了 直接上主题 下载Raspbian Raspbian是树莓派的官方系统 推荐大家使用 如果不喜欢它的话 可以自己安装Ub
  • DynamicDataSource是如何解决多数据源的事务问题?

    多数据源的真面目DynamicRoutingDataSource DynamicRoutingDataSource是什么 该类实现了DataSource接口并在内部维护了一个map 其中存放了多个真实的DataSource 而key则是不同
  • 启动 GDB 调试

    使用 GDB 调试程序一般有三种方式 gdb filename gdb attach pid gdb filename corename 这也对应着本节课的核心内容 直接调试目标程序 附加进程 调试 core 文件 接下来我们逐一讲解 直接
  • Vim重复命令

    1 vim重复命令 重复执行上次命令 普通模式下输入 x 删除第一个字符 然后输入 会再次删除一个字符 重复了 x 的操作 执行指定次数相同的命令 普通模式下输入 N N表示重复后面的次数 例如 输入10x 删除10个连续字符 输入3dd
  • Jquery水平滚动字幕(marquee效果)

    水平滚动字幕 html div class txt scroll div class scrollbox div class txt div div div css txt scroll width 100 line height 1rem
  • VS或者Qt调用外部动态链接库dll的方法

    1 VS调用外部动态链接库dll的方法 Windows 1 1 建立一个Win32控制台应用程序 1 2 如果搭建的是64位应用 需将平台调整为x64 1 3 将程序源码和头文件 动态链接库和静态连接库拷贝到项目对应的文件夹中 1 4 将上
  • Spring依赖注入和控制反转

    文章目录 1 依赖注入 1 1 依赖注入和控制反转的概念 1 2 依赖注入的实现方式 1 3 控制反转的具体实现 1 4 依赖注入的具体实现 1 5 依赖注入和控制反转总结 1 依赖注入 1 1 依赖注入和控制反转的概念 依赖注入 Depe
  • 前后端分离(axios发送数据请求,路由导航守卫,web会话跟踪,token)

    目录 1 前端登录发起请求 a 在 main js 中配置 axios b 组装请求数据 3 连接数据库 4 后端响应 5 前端处理 6 来到main组件时 需在前端判断用户是否登录 7 web会话跟踪技术 token 8 响应拦截器 9
  • os.path.expanduser

    path os path expanduser linux系统path为 home newt windows系统path为 C Users newt 其中newt为我的用户名
  • XSS攻击修改服务器的代码,XSS攻击的定义,类型以及防御方法

    经常跟大家讲 CC攻击 好像还没有给大家分享过XSS攻击它的类型怎么去防御 今天云都小编就带大家了解下 什么是XSS攻击 XXS 攻击全称跨站脚本攻击 是一种在Web应用中的计算机安全漏洞 它允许恶意Web用户将代码植入到提供给其他使用的页
  • 《机器学习》实验五:实现K-means聚类

    机器学习 实验五 实现K means聚类 机器学习 实验五 实现K means聚类 实验目的 实验原理 实验内容与要求 实验器材 设备 元器件 实验步骤 心得体会 机器学习 实验五 实现K means聚类 实验目的 了解聚类的基本概念 掌握
  • javascript对象小探之三——undefined和undeclared

    一 undefined undefined是javascript的一个数据类型对象 var i 那么i的值就是undefined 二 undeclared undeclared是一种语法错误 不是数据类型 不要误会了 但是js引擎不会报错
  • R语言学习笔记(三)数据处理

    本文的示例数据框集 egData 如下 值标签 if FALSE 值标签 levels代表变量实际值 labels代表标签值 egData sex lt factor egData sex levels c 1 2 labels c mal
  • WSL2+Docker+IDEA一站式开发调试

    WSL2 Docker IDEA一站式开发调试 将就看吧 不知道为什么CSDN无法转储并展示jsdelivr的图片 但博客园正常展示 前言 我们知道 Docker是一个容器引擎 对于开发者来说 使用Dokcer容器部署各种开发需要的中间件
  • linux端口开放指定端口的两种方法

    开放端口的方法 方法一 命令行方式 1 开放端口命令 sbin iptables I INPUT p tcp dport 8080 j ACCEPT 2 保存 etc rc d init d iptables save 3 重启服务 etc
  • 正则表达式和三剑客

    正则表达式与三剑客 Linux正则表达式 由一类特殊字符及文本字符所编写的模式 其中有些字符不表示其字面意义 而是用于表示控制或通配符的功能 分两类 基本正则表达式 BRE 扩展正则表达式 ERE 基本正则表达式DRE集合 元字符 作用 只
  • ROS环境搭建步骤总结

    ROS环境搭建踩坑总结 Ubuntu 16 04安装ROS Kinetic ROS安装 进入到 ROS官网选择安装的版本和系统 配置Ubuntu的repositories 以允许 restricted universe 和 multiver