ROS实践(1)-环境搭建

2023-05-16

一 介绍

ROS官网:http://www.ros.org/

ROS中文社区:http://www.robotos.net/forum.php

ROS版本:ROS的版本名称是按字母顺序E-F-G-H-I-J排列的,Electric-->Fuerte-->Groovy-->Hydro–>Indigo–>Jade...,我们采用的是Indigo

ROS客户端:节点需要使用roscpp或rospy的ROS客户端编写,我们采用的是roscpp

 

1 文件系统 stack和package

二 安装

  1. 环境:4核 8G内存 1T硬盘 dell主机 ubuntu 14.04.3 (U盘安装,开机按F12选择U盘启动),环境ok后,继续下面步骤;
  2. 设置安装源(确保你的main源是ubuntu的官方源,切换阿里云、163等源可能存在问题)
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  3. 设置key
    sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 0xB01FA116
  4. 安装完整版ros,选择版本indigo
    sudo apt-get update
    sudo apt-get install ros-indigo-desktop-full
    echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
    source ~/.bashrc
  5. 初始化ros依赖
    sudo rosdep init
    sudo rosdep update
    sudo apt-get install python-rosinstall python-rosdep

 

三 运行

报错:

yangkai04@yangkai04-Inspiron-3650:~$ roscore

Traceback (most recent call last):

  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 257, in main

    write_pid_file(options.pid_fn, options.core, options.port)

  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 110, in write_pid_file

    with open(pid_fn, "w") as f:

IOError: [Errno 13] Permission denied: '/home/yangkai04/.ros/roscore-11311.pid'



解决:

yangkai04@yangkai04-Inspiron-3650:~/project/baidu/adu/perception$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
yangkai04@yangkai04-Inspiron-3650:~/project/baidu/adu/perception$ ls
autotest    build.log       COMAKE          obstacle       production
BCLOUD      build.sh        error.log       obstacle_mock  README.md
BCLOUD.cov  cmake           lib             onboard        tools
build       CMakeLists.txt  local_build.sh  output         traffic_light
yangkai04@yangkai04-Inspiron-3650:~/project/baidu/adu/perception$ su root
Password:
root@yangkai04-Inspiron-3650:/home/yangkai04/project/baidu/adu/perception# vim ~/.bashrc
添加:source /opt/ros/indigo/setup.bash

root@yangkai04-Inspiron-3650:/home/yangkai04/project/baidu/adu/perception# source ~/.bashrc
root@yangkai04-Inspiron-3650:/home/yangkai04/project/baidu/adu/perception#roscore
... logging to /root/.ros/log/d448ba6c-a498-11e6-bcd2-f48e38af57c0/roslaunch-yangkai04-Inspiron-3650-12974.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://yangkai04-Inspiron-3650:40229/
ros_comm version 1.11.20


SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.20

NODES

auto-starting new master
process[master]: started with pid [12986]
ROS_MASTER_URI=http://yangkai04-Inspiron-3650:11311/

setting /run_id to d448ba6c-a498-11e6-bcd2-f48e38af57c0
process[rosout-1]: started with pid [12999]
started core service [/rosout]


 

四 ROS文件系统导览

root@yangkai04-Inspiron-3650:/home/yangkai04/project/baidu/adu/perception#rospack find turtlesim
/opt/ros/indigo/share/turtlesim

root@yangkai04-Inspiron-3650:/home/yangkai04/project/baidu/adu/perception#rosls turtlesim
cmake  images  msg  package.xml  srv

root@yangkai04-Inspiron-3650:/home/yangkai04/project/baidu/adu/perception#roscd turtlesim
root@yangkai04-Inspiron-3650:/opt/ros/indigo/share/turtlesim# pwd
/opt/ros/indigo/share/turtlesim

 

五 创建工作空间

root@yangkai04-Inspiron-3650:/home/yangkai04/dev/rosbook/chapter2_tutorials# echo $ROS_PACKAGE_PATH
/opt/ros/indigo/share:/opt/ros/indigo/stacks
root@yangkai04-Inspiron-3650:/home/yangkai04/dev/rosbook/chapter2_tutorials# cd ~
root@yangkai04-Inspiron-3650:~# mkdir -p dev/rosbook
root@yangkai04-Inspiron-3650:~# echo "export ROS_PACKAGE_PATH=~/dev/rosbook:${ROS_PACKAGE_PATH}" >> ~/.bashrc
root@yangkai04-Inspiron-3650:~# tail -n 2 ~/.bashrc


export ROS_PACKAGE_PATH=~/dev/rosbook:/opt/ros/indigo/share:/opt/ros/indigo/stacks
root@yangkai04-Inspiron-3650:~# source ~/.bashrc

 

六 创建ROS功能包

root@yangkai04-Inspiron-3650:~# cd ~/dev/rosbook/

root@yangkai04-Inspiron-3650:~/dev/rosbook# ls

root@yangkai04-Inspiron-3650:~/dev/rosbook# roscreate-pkg chapter2_tutorialsstd_msgs rospy roscpp

Created package directory /root/dev/rosbook/chapter2_tutorials

Created include directory /root/dev/rosbook/chapter2_tutorials/include/chapter2_tutorials

Created cpp source directory /root/dev/rosbook/chapter2_tutorials/src

Created package file /root/dev/rosbook/chapter2_tutorials/Makefile

Created package file /root/dev/rosbook/chapter2_tutorials/manifest.xml

Created package file /root/dev/rosbook/chapter2_tutorials/CMakeLists.txt

Created package file /root/dev/rosbook/chapter2_tutorials/mainpage.dox

Please edit chapter2_tutorials/manifest.xml and mainpage.dox to finish creating your package

root@yangkai04-Inspiron-3650:~/dev/rosbook# rospack find chapter2_tutorials
/root/dev/rosbook/chapter2_tutorials
root@yangkai04-Inspiron-3650:~/dev/rosbook# rospack depends chapter2_tutorials
[rospack] Error: the rosdep view is empty: call 'sudo rosdep init' and 'rosdep update'

root@yangkai04-Inspiron-3650:~/dev/rosbook# sudo rosdep init
ERROR: default sources list file already exists:
    /etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize

root@yangkai04-Inspiron-3650:~/dev/rosbook# rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Warning: running 'rosdep update' as root is not recommended.
  You should run 'sudo rosdep fix-permissions' and invoke 'rosdep update' again without sudo.
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index.yaml
Add distro "groovy"
Add distro "hydro"
Add distro "indigo"
Add distro "jade"
Add distro "kinetic"
updated cache in /root/.ros/rosdep/sources.cache

root@yangkai04-Inspiron-3650:~/dev/rosbook# rospack depends chapter2_tutorials
cpp_common
rostime
roscpp_traits
roscpp_serialization
catkin
genmsg
genpy
message_runtime
std_msgs
gencpp
genlisp
message_generation
rosbuild
rosconsole
rosgraph_msgs
xmlrpcpp
roscpp
rosgraph
rospack
roslib
rospy

root@yangkai04-Inspiron-3650:~/dev/rosbook#rosls chapter2_tutorials

CMakeLists.txt  include  mainpage.dox  Makefile  manifest.xml  src

root@yangkai04-Inspiron-3650:~/dev/rosbook#roscd chapter2_tutorials

root@yangkai04-Inspiron-3650:~/dev/rosbook/chapter2_tutorials# pwd

/root/dev/rosbook/chapter2_tutorials

root@yangkai04-Inspiron-3650:~/dev/rosbook/chapter2_tutorials#


 

七 编译ROS功能包

root@yangkai04-Inspiron-3650:~/dev/rosbook/chapter2_tutorials#rosmake chapter2_tutorials

........................

[ rosmake ] Results:                                                            

[ rosmake ] Built 25 packages with 0 failures.                                  

[ rosmake ] Summary output to directory                                         

[ rosmake ] /root/.ros/rosmake/rosmake_output-20161108-154400

 

八 启动ROS

root@yangkai04-Inspiron-3650:~/dev/rosbook/chapter2_tutorials# roscore
... logging to /root/.ros/log/abddcc94-a587-11e6-bcd2-f48e38af57c0/roslaunch-yangkai04-Inspiron-3650-20120.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://yangkai04-Inspiron-3650:40461/
ros_comm version 1.11.20

SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.20

NODES

auto-starting new master
process[master]: started with pid [20132]
ROS_MASTER_URI=http://yangkai04-Inspiron-3650:11311/

setting /run_id to abddcc94-a587-11e6-bcd2-f48e38af57c0
process[rosout-1]: started with pid [20145]
started core service [/rosout]

九 停止ROS

^C[rosout-1] killing on exit

[master] killing on exit

shutting down processing monitor...

... shutting down processing monitor complete

done


root@yangkai04-Inspiron-3650:/home/yangkai04#rosnode list
ERROR: Unable to communicate with master!
root@yangkai04-Inspiron-3650:/home/yangkai04#rosnode list
ERROR: Unable to communicate with master!

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

ROS实践(1)-环境搭建 的相关文章

  • NVMe CLI 命令使用

    1 下载地址 https github com linux nvme nvme cli 2 安装 unzip nvme cli master zip cd nvme cli master zip make amp amp make inst
  • 我这一年写的博文

    总结2013 xff0c 展望2014 xff0c gt gt 我的2013年终总结 在苦与乐中成长 下面是我这一年所写的博客 xff0c 主要涉及C xff0c Net Framework xff0c SQL Server xff0c S
  • 我的2013年终总结——在苦与乐中成长

    写在前面 最近正好在三亚旅游 xff0c 空闲下来时 xff0c 便开始进行年终总结 由于去年年末较忙 xff0c 便错过了2012 年的年终总结 xff0c 所以本文将会对 2012 与 2013 两年一起进行总结 说说工作 学生 到 码
  • 走过2014,2015我将继续前行

    写在前面 一转眼 xff0c 一年时光就这么溜走了 在这辞旧迎新之际 xff08 这说法是不是很官方啊 xff0c 呵呵 xff01 xff09 xff0c 我将对即将过去的2014 年进行一番总结 xff0c 并对即将来临的 2015 年
  • csr867x入门之串口AT指令协议(三)

    目录 功能简介 功能实现 功能调试 功能简介 通过封装串口AT指令 xff0c 我们可以把8670作为一个蓝牙外设 xff0c 通过串口的AT指令协议与外部mcu通讯 比如当csr8670连接到pc端 xff0c 再pc端通过串口工具发送指
  • 今天了解Linux体系结构

    上一章我们了解了Linux的一些发展历史 xff0c 那么这一章我们来深入了解一下 xff0c Linux的体系及构成 Linux采用分层设计 xff0c 分层结构 xff0c 它包括 4 个层次 每层只能与相邻的层通信 xff0c 层次间
  • Ubuntu操作系统下Python多版本的安装与切换

    安装替代Python版本 打开终端 xff0c 看下系统中默认安装了按个版本的python 运行以下命令 xff1a python version 如果使用的是Ubuntu 20 04 xff0c 则默认情况下拥有的python版本3 8
  • 51单片机LCD1602液晶屏显示字符,字符串,(有)无符号整数,十六进制数,二进制数等

    1 前言 LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块 液晶显示模块具有体积小 功耗低 显示内容丰富 超薄轻巧等优点 xff0c 在嵌入式应用系统中得到越来越广泛的应用 xff0c 这讲中向大家介绍的LCD1602 液晶显示模
  • 51单片机——DS1302时钟

    目录 1 前言 1 1 实验现象 2 DS1302的介绍 2 1 DS1302的引脚定义以及应用电路 2 2 DS1302内部结构 2 21 DS1302内部特殊寄存器 2 22 时序 2 3 BCD码 3 源码 3 1 main c 3
  • 编译安装GCC12.2.0

    编译安装GCC 记录一下 xff0c 免得每次到处找 安装GCC12 2 0 xff0c 其他版本一样 源码下载地址 xff1a https ftp gnu org gnu gcc 备注 xff1a 配置若有不明白的 xff0c 多用 co
  • 安装vim

    sudo apt get install vim 确认后按y就行了 vim的三种模式 1 普通模式 当vim打开的时候就直接进入普通模式 在普通模式下可以进入命令 插入模式 2 插入模式 可以通过普通模式进入插入模式 插入模式可以编辑文本
  • jetson tx2 刷机,安装 cuda、opencv 详细教程

    jetson tx2 刷机 xff0c 安装 cuda opencv 详细教程 jetson tx2 的详细介绍和用途可见官网 xff1a Nvidia jetson tx2 接下来主要说明jetson tx2 详细刷机过程以及在过程中踩过
  • PX4 编译报错问题解决方法、PX4切换固定版本编译

    PX4 Autopilot 编译报错问题解决方法 1 make 2 没有规则可制作目标 dirlinks 停止 1 1159 Generating platforms nuttx NuttX nuttx config FAILED plat
  • ubuntu 系统狠慢 或者很卡的原因

    1 涉及内存小或者虚拟SWAP分区调整问题 可以通过 系统监视器 进行查看 在UBUNTU系统里面 xff0c 并不是你的物理内存全部耗尽之后 xff0c 系统才使用swap分区 xff01 系统的swappiness设定值 xff0c 对
  • 技巧1——怎样查看linux发行版本名称和版本号?

    假如我们加入了一家新公司 xff0c 需要为开发团队安装所需要的软件并且重启服务 首先要弄清楚它们运行在什么发行版本上以及在哪个版本的系统上 xff0c 才能正确的完成后续的工作 作为一名系统管理员 xff0c 充分了解系统信息是首要的任务
  • 种群共生模型

    种群共生模型 种群共生模型 1 1 背景 1 2 参数假设 1 3 分析 1 4 模型构建 1 5 模型求解 1 6 讨论平衡点稳定性 种群共生模型 1 1 背景 在自然界中 种族的共生现象是比较普遍的 如鳄鱼与千鸟 千鸟不但在鳄鱼身上寻找
  • opendaylight学习笔记——Flows

    Flow java中 private static final String WEB NAME 61 34 Flows 34 定义了在网页中显示时的名称 private static final String WEB ID 61 34 fl
  • NB-IoT 物理层相关

    写在前面 本文作为简单说明 xff0c 详细需具体查阅文档 1 关于 PRB 的理解 RB xff08 Resource Block xff09 xff0c 用于描述某些物理信道到资源元素的映射 xff0c 它有两个概念 xff1a VRB
  • 以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

    网络设备中肯定离开不MAC和PHY xff0c 本篇文章将详细介绍下以太网中一些常见术语与接口 MAC和PHY结构 从硬件角度来看以太网是由CPU xff0c MAC xff0c PHY三部分组成的 xff0c 如下图示意 xff1a 上图
  • ubuntu(linux)下smb完整搭建流程-----原来如此简单,一步到位!!!!!!

    1 查看ubuntu版本号命令 lsb release a 2 下载安装 sudo apt get insall samba FAQ 如果出现apt install时候遇到E Unable to fetch some archives ma

随机推荐

  • xilinx fpga xdma

    一 下载XDMA文件 输入命令 sudo git clone https github com Xilinx dma ip drivers 二 编译文件 进入xdma文件夹 xff1a cd dma ip drivers XDMA linu
  • 网络通信原理及流程

    网络通信原理 1 1 互联网的本质就是一系列的网络协议 一台硬设有了操作系统 xff0c 然后装上软件你就可以正常使用了 xff0c 然而你也只能自己使用像这样 xff0c 每个人都拥有一台自己的机器 xff0c 然而彼此孤立吗 xff0c
  • LTE核心网介绍

    1 LTE网络架构 EPS包括核心网EPC xff08 EPC又包括MME xff08 信令处理部分 xff09 S GW xff08 数据处理部分 xff09 P GW xff09 E UTRAN xff08 只包含基站eNodeB一个网
  • FreeRTOS启动第一个任务和任务的切换(Cortex-M4)

    调度器是FreeRTOS操作系统的核心 xff0c 主要负责任务切换 xff0c 即在就绪任务中找出最高优先级的任务 xff0c 并使之获得CPU运行权 调度器并非自动运行的 xff0c 需要人为启动它 API函数vTaskStartSch
  • 1G~5G 网络结构演进过程

    无线接入网 xff1a 负责接收用户终端的无线信号 xff0c 由此接入到通信网络 xff1b 核心网 xff1a 对用户数据的管理及具体业务处理 xff0c 并作为承载网络提供到外部网络的接口 1 GSM网络结构 xff08 2G xff
  • 1G-5G 基站架构演进

    1 2G 2G通信系统采用3级网络架构 xff0c 即 xff1a BTS BSC 核心网 2G核心网同时包含CS域和PS域 2G通信系统起初主要采用一体式基站架构 一体式基站架构如下图所示 xff0c 基站的天线位于铁塔上 xff0c 其
  • NTP服务器

    1 NTP服务器 NTP协议是网络时间协议 Network Time Protocol xff0c 它是用来同步网络中各个计算机的时间的协议 它的用途是把计算机的时钟同步到世界协调时UTC xff0c 其精度在局域网内可达0 1ms xff
  • 对视频图像进行OSD叠加

    频叠加就是将图片和文字信息叠加到视频信号中 xff0c 如电视台的LOGO xff0c 电影的字幕 xff0c 电视机的菜单 xff0c 都是通过视频叠加的形式显示在视频图像中的 区别于用于专业影视编辑行业的字幕叠加器 xff0c 字符叠加
  • H.264编码四种画质级别

    H 264编码四种画质级别 D1是数字电视系统显示格式的标准 xff0c 共分为以下 5 种规格 xff1a D1 xff1a 480i 格式 xff08 525i xff09 xff1a 720 480 xff08 水平 480 线 xf
  • I 帧时间间隔

    GOP xff08 Group of Pictures xff09 策略 影响编码质量 xff1a 所谓GOP xff0c 意思是画面组 xff0c 一个GOP就是一组连续的画面 MPEG编码将 画面 xff08 即帧 xff09 分为I
  • 吴恩达推荐点赞的深度学习专项课程精炼图笔记丨附下载)

    金猿奖 2019年度征集评选 大数据产业创新服务媒体
  • petalinux 2020.2 离线编译

    链接 xff1a https www xilinx com support download index html content xilinx en downloadNav embedded design tools html 2 在ub
  • qemu镜像转化

    qemu img convert f raw redhat6 7 kvm postgresql9 2 3 8disk pulsar2 2 O qcow2 redhat6 7 kvm postgresql9 2 3 8disk pulsar2
  • brew install 慢的解决方法

    brew install 慢的原因 brew install 会先去执行 brew update 而 brew update xff0c 会依次更新 brew homebrew core homebrew cask 而以上三个的来源都在 g
  • 在linux ubuntu18.04版本中安装ceres solver

    在linux ubuntu18 04版本中安装ceres solver 本文是参照ceres solver的官方网站的按照教程来写的 xff0c 并对其做了适当的修改以便能成功安装 ceres官方教程链接为http www ceres so
  • KITTI Odometry dataset中00-21系列的相机内参设置

    一些声明 见data odometry calib文件夹中的calib txt文件 xff0c 其中P0表示左边灰度相机的3 4内参矩阵 xff0c P1表示右边灰度相机的3 4内参矩阵 依据这两个矩阵 xff0c 求解 f x f x f
  • CMakeLists.txt模板+常用库头文件添加和库文件链接+调用头文件

    CMakeLists txt模板 声明要求的cmake最低版本 span class token function cmake minimum required span span class token punctuation span
  • CLion 乱码 中文编码设置(UTF8、GBK)(Windows、WSL)——持续更新ing

    目录 问题描述解决方案一 xff1a CLion的简单设置见证奇迹 博主使用CLion如果里面有中文经常会遇到输出乱码问题 xff0c 本篇博文将告诉你多种问题的解决方案 问题描述 我们新建一个CLion工程 xff1a span clas
  • GRUB(bootloader)

    GRUB grub legacy版本 grub 0 x xff1a grub legacy Centos 5 6 stage2及内核等通常放置于一个基本磁盘分区 boot分区 配置文件 xff1a boot grub grub conf g
  • ROS实践(1)-环境搭建

    一 介绍 ROS官网 xff1a http www ros org ROS中文社区 xff1a http www robotos net forum php ROS版本 xff1a ROS的版本名称是按字母顺序E F G H I J排列的