ros的安装与使用(代码片段)

arxive arxive     2023-05-07     355

关键词:

一、apt方式安装

安装

说起ROS,可能大家现在或多或少都有所了解。现如今世界机器人发展之迅猛犹如几十年前计算机行业一样,机器人也逐渐进入到千家万户,大到工业机器人,小到家用的服务型机器人,各式各样,为各种人们生活所需的机器人以计算机技术的发展为基础的机器人也是如雨后春笋。机器人可主要分为硬件层和软件层两个大的主要方向。每一种类型的机器人都需要以硬件的实际情况编写符合用户需要的功能,渐渐的人们发现,这样的机器人代码的复用率很低,大大阻碍了机器人的发展。因此ROS便是为机器人在研发的过程中的代码复用提供支持.ROS是Robot Operating System(机器人操作系统)的简称.ROS开始于2007年,在斯坦福大学人工智能实验室斯坦福AI机器人项目的支持下开发了ROS。从2010年3月2日发布的第一版ROS Box Turtle至今(截止到2018年8月)已有12个版本。对 ROS 兼容性最好的当属 Ubuntu 操作系统了。其中三个长期支持版本,并对应着的Ubuntu的三个LTS版本具体如下:

ROS版本      发行时间       截止支持时间      对应的Ubuntu的版本

ROS Indigo    2014年7月22    2019年4月  Ubuntu 14.04

ROS Kinetic   2016年5月23    2021年4月  Ubuntu 16.04

ROS Melodic 2018年5月23    2023年4月  Ubuntu 18.04

 

ROS支持的Python,C ++,JAVA等编程语言。因为ROS主要支持Ubuntu的操作系统,因此本教程也是在Ubuntu的系统下安装的。这里比较建议安装的Ubuntu系统或者的Windows的双系统,这样可以更便于ROS学习接 下来为大家详细讲解ROS的安装。

 

(1)配置的Ubuntu的系统

“软件和更新”界面中,打开后按照下图进行配置(确保你的"restricted", "universe," 和 "multiverse."前是打上勾的),最好将源设置为中国。

技术图片

 

 

(2)打开终端,快捷键是按Ctrl + Alt + T键,配置sources.list

设置计算机可以从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‘

(3)设置秘钥

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116

 

(4)安装

重新定向ROS服务器

sudo apt-get update

然后我们就可以安装 ROS 啦,但是问题又出现了,ROS kinetic 也有很多版本,比如工业版,基础版,高级版,豪华版,至尊豪华..

ROS,那就安装至尊豪华全功能版吧,指令如下

$ sudo apt-get install ros-kinetic-desktop-full

 

安装完成后,可以用下面的命令来查看可使用的包:

$ apt-cache search ros-kinetic

 

(5)初始化ros

在使用ROS之前,必须先安装和初始化rosdep命令行工具。这样便可以使你轻松的安装库和源代码时的系统依赖。与此同时,ROS中的一些核心组件也需要rosdep,因此rosdep默认安装在ROS中。可以使用下面的命令安装和初始化rosdep。

sudo rosdep init

rosdep updata

(6)初始化环境变量

你已经成功的安装了ROS系统了。但是为了每次打开新的终端不用执行脚本来配置环境变量,需要在.bashrc中的脚本文件结束时添加脚本,用下面这个命令来完成。

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

要是配置生效,必须使用下面的命令来执行这个文件

source ~/.bashrc

上面两句非常非常非常重要,很多小伙伴在日常的开发过程中,有的找不到 Package, 找不到node, 很多情况下都是没有添加source。

(7)安装rosinstall

rosinstall。是一种常用的命令行工具,使你可以使用一个命令轻松下载ROS包的许多源,输入下面的命令安装这个工具:

sudo apt-get install python-rosinstall

到此为止,你已经在电脑上安装了一个较为完整的ROS系统了。

对了,这里要提醒一下,ros中很多的第三方插件的安装格式是

$ sudo apt-get install ros-kinetic-...

例如:

$ sudo apt-get install ros-kinetic-turtlebot*

 

卸载ROS

sudo apt-get purge ros-*

sudo rm -rf /etc/ros

edit ~/.bashrc

二、官方方式安装

安装

按照ROS安装说明Ubuntu install of ROS Melodic)完成安装

注意: 如果你是使用类似apt这样的软件管理器来安装ROS的,那么安装后这些软件包将不具备写入权限,当前系统用户比如你自己也无法对这些软件包进行修改编辑。当你的开发涉及到ROS软件包源码层面的操作或者在创建一个新的ROS软件包时,你应该是在一个具备读写权限的目录下工作,就像在你当前系统用户的home目录下一样。

管理环境

安装ROS期间,你会看到提示说需要 source 多个setup.*sh文件中的某一个,或者甚至提示添加这条‘source‘命令到你的启动脚本里面。这些操作是必须的,因为ROS是依赖于某种组合空间的概念,而这种概念就是通过配置脚本环境来实现的。这可以让针对不同版本或者不同软件包集的开发更加容易。

如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚本环境。一个检查的好方法是确保你已经设置了像ROS_ROOTROS_PACKAGE_PATH这样的环境变量,可以通过以下命令查看:

$ export | grep ROS

如果发现没有配置,那这个时候你就需要‘source‘某些‘setup.*sh’文件了。

ROS会帮你自动生成这些‘setup.*sh’文件,通过以下方式生成并保存在不同地方:

  • 通过类似apt的软件包管理器安装ROS软件包时会生成setup.*sh文件。
  • rosbuild workspaces中通过类似rosws的工具生成。
  • 编译 或 安装 catkin 软件包时自动生成。

 

注意: 在所有教程中你将会经常看到分别针对rosbuild 和 catkin的不同操作说明,这是因为目前有两种不同的方法可以用来组织和编译ROS应用程序。一般而言,rosbuild比较简单也易于使用,而catkin使用了更加标准的CMake规则,所以比较复杂,但是也更加灵活,特别是对于那些想整合外部现有代码或者想发布自己代码的人。关于这些如果你想了解得更全面请参阅catkin or rosbuild

如果你是通过ubuntu上的 apt 工具来安装ROS的,那么你将会在‘/opt/ros/<distro>/‘目录中看到setup.*sh文件,然后你可以执行下面的source命令:

# source /opt/ros/<distro>/setup.bash

请使用具体的ROS发行版名称代替<distro>。

比如你安装的是ROS Indigo,则上述命令改为:

$ source /opt/ros/indigo/setup.bash

在每次打开终端时你都需要先运行上面这条命令后才能运行ros相关的命令,为了避免这一繁琐过程,你可以事先在.bashrc文件(初学者请注意:该文件是在当前系统用户的home目录下。)中添加这条命令,这样当你每次登录后系统已经帮你执行这些命令配置好环境。这样做也可以方便你在同一台计算机上安装并随时切换到不同版本的ROS(比如fuerte和groovy)。

此外,你也可以在其它系统平台上相应的ROS安装目录下找到这些setup.*sh文件。

创建ROS工作空间

这些操作方法只适用于ROS Groovy及后期版本,对于ROS Fuerte及早期版本请选择rosbuild。

下面我们开始创建一个catkin 工作空间

$ mkdir -p ~/catkin_ws/src

$ cd ~/catkin_ws/src

即使这个工作空间是空的(在‘src‘目录中没有任何软件包,只有一个CMakeLists.txt链接文件),你依然可以编译它:

$ cd ~/catkin_ws/

$ catkin_make

catkin_make命令在catkin 工作空间中是一个非常方便的工具。如果你查看一下当前目录应该能看到‘build‘和‘devel‘这两个文件夹。在‘devel‘文件夹里面你可以看到几个setup.*sh文件。source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层,想了解更多请参考catkin文档。接下来首先source一下新生成的setup.*sh文件:

$ source devel/setup.bash

要想保证工作空间已配置正确需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:

$ echo $ROS_PACKAGE_PATH

/home/<youruser>/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

到此你的工作环境已经搭建完成,接下来可以继续学习 ROS文件系统教程.

 

三、测试

为了保险,重启一下,测试测试我们的ROS吧....

ROS是依靠终端来运行的系统。所以还需要打开终端。这里给大家演示一个基本的案例--turtlrsim小海龟。运行下面的命令你便可以看到一个有小海龟的界面。

Roscore

rosrun turtlrsimn turtlesim_node

上面的第二行命令需要从新打开一个终端来输入,因为你会发现当输入roscore运行后终端是无法输入有效的命令来运行的。

 技术图片

 

 

如何使用键盘是小海龟运动起来呢?就需要输入下面的命令。

rosrun turtlesim turtle_teleop_key

 

四、参考文章

ROS学习(一)ROS入门

【学习ROS】linux安装并配置ROS环境

 

ros操作系统快速入门(代码片段)

文章目录一、简介模块化、分布式的系统设计二、安装虚拟机与ROS系统安装虚拟机的缺点安装ubuntu20.04三、ROS系统安装切换镜像源视频教程四、ROS应用商城APT源简介与指令介绍案例ros应用商城介绍五、GIthub建立如下目录结构:... 查看详情

ros的roslibjs基本功能使用测试(代码片段)

文章目录小结进行roslibjs的安装安装nodejs安装roslibjs进行测试参考小结成功测试了roslibjs的基本功能。进行roslibjs的安装安装nodejsjohn@ubuntu:~$sudoapt-getinstallnodejsjohn@ubuntu:~$sudoapt-getinstallnpm安装roslibjsjohn@ubuntu:~/roslib 查看详情

ros的roslibjs基本功能使用测试(代码片段)

文章目录小结进行roslibjs的安装安装nodejs安装roslibjs进行测试参考小结成功测试了roslibjs的基本功能。进行roslibjs的安装安装nodejsjohn@ubuntu:~$sudoapt-getinstallnodejsjohn@ubuntu:~$sudoapt-getinstallnpm安装roslibjsjohn@ubuntu:~/roslib 查看详情

树莓派4b安装ubuntu18.04与melodic版ros(代码片段)

使用的树莓派RaspberryPi4——8GB在这个连接中http://old-releases.ubuntu.com/releases/bionic/或http://cdimage.ubuntu.com/releases/18.04/release/找到该镜像:ubuntu-18.04.5-preinstalled-server-armhf+raspi4.img.xz下载后 查看详情

使用rosserial实现ros与windows的service服务通信(代码片段)

...顾:rosserialwindows实现rostopic的发布和订阅正题:使用rosserial实现ROS与Windows的service服务通信启动roscore启动add_two_ints的服务并测试使用rosserialWindowsclientC++实现与ROS的add_two_intsservice服务通信成功的测试结果参考小结使 查看详情

ros环境下android客户端与orbslam2(代码片段)

ROS环境下Android客户端与ORBSLAM2ROS环境下编译ORBSLAM-2ROS安装(Ubuntu18.04)ORB-SLAM2算法环境搭建跑通Android客户端Android客户端开源代码RVIZ如何接收IMU和图像数据Android摄像头的相机标定基于ROS协议的收发数据如何Reszie接收图像的大小ROS环... 查看详情

机器人操作系统(ros)入门与实践--1(代码片段)

...ROS简介1.1什么是ROS?1.2ROS设计目标1.3ROS发行版本列表2.ROS的安装2.1虚拟机及操作系统安装2.1.1虚拟机VMware下载2.1.2虚拟机VMware安装2.1.3Ubuntu操作系统下载2.1.4Ubuntu操作系统安装及配置2.2ROS桌面版安装与测试2.2.1ROS桌面版安装2.2.2ROS桌面... 查看详情

ros实验笔记之——eventcamera产生ts与em(代码片段)

...OS学习笔记之——ESVO复现及DAVIS346测试》已经介绍过ESVO了安装1.driver的安装,之前已经安装过了,所以这里跳过2.依赖安装(也装过了~)而单纯是包esvo_time_surface应该就可以 查看详情

ros系统服务数据的定义与使用(代码片段)

如何自定义服务数据定义srv文件在package.xml中添加功能包依赖在CMakeLists.txt添加编译选项编译生成语言相关文件cd~/catkin_ws/src/learning_servicemkdirsrvcdsrvtouchPerson.srvPerson.srv文件内容stringnameuint8ageuint8sexuint8unknown=0uint8male= 查看详情

ros与激光雷达入门-ros中使用激光雷达(rplidar)(代码片段)

...半径的范围。它适合用于构建地图,SLAM,和建立3D模型。安装建立工作空间(也可以利用现有的),编译包$mkdir-p~/catkin_ws/src$cd~/catkin_ws/src##激光雷达rplidar一代驱动$gitclonehttps://github.com/ncnynl/rplidar_ros.git添加环境变量,在~/.bashrc... 查看详情

安装并配置ros环境(代码片段)

安装ROSUbuntu版本:14.04在开始学习这些教程之前请先按照ROS安装说明完成安装。注意:如果你是使用类似apt这样的软件管理器来安装ROS的,那么安装后这些软件包将不具备写入权限,当前系统用户比如你自己也无法对这... 查看详情

从零开始的ros学习之环境配置,ros安装(代码片段)

环境(Linux)我使用的虚拟机,装了两个版本,Ubuntu18.04和Ubuntu20.04,推荐在学习阶段使用Ubuntu18.04,否则后面跑例程会遇到很多坑,血泪教训。终端换为zsh(个人习惯可跳过)oh-my-zsh可以极大的... 查看详情

ros实验笔记之——intelrealsensel515激光相机的使用(代码片段)

最近实验室购买了IntelRealsensel515相机。本博文记录使用过程~ 驱动安装先到官网安装驱动:https://github.com/IntelRealSense/realsense-roshttps://github.com/IntelRealSense/realsense-ros安装realsense2_camerasudoapt-getinstallros-melod 查看详情

ros架构(代码片段)

1.5ROS架构到目前为止,我们已经安装了ROS,运行了ROS中内置的小乌龟案例,并且也编写了ROS小程序,对ROS也有了一个大概的认知,当然这个认知可能还是比较模糊并不清晰的,接下来,我们要从宏观上来介绍一下ROS的架构设计。... 查看详情

ros2机器人操作系统入门和安装以及如何使用.net进行开发(代码片段)

...;简单介绍了ROS系统,以及介绍ROS2系统在Ubuntu22.04中的安装(使用gitee和清华源)以及其中错误的解决。最后对其优势进行总结,为什么选择ROS。最后介绍简单Demo和如何使用.NET接入的其中一种方式。什么是ROSROSÿ... 查看详情

ubuntu18.04配置carla0.9.11踩坑与解决方法总结,同时解决安装carla-ros-bridge遇到的问题,并复现opencda成功与ros关联(代码片段)

Ubuntu18.04配置carla0.9.11踩坑与解决方法总结,同时解决安装carla-ros-bridge遇到的问题,并复现OpenCDA成功与ros关联背景:主要是为了复现叶小飞的OpenCDA仿真环境,方便验证自己的多车协同算法。又重新捡起了carla仿真。一... 查看详情

unity-ros与navigation2(代码片段)

...运行ROS2中的“Navigation2”以及“slam_toolbox”。1.代码编译安装步骤如下所示,首先先下载“Navigation2SLAMExampleDemo”仓库gitclone--recurse-submodulegit@github.com:Unity-Technologies/Robotics-Nav2-SLAM-Example.git然后确保在Unity的版本以及开发包... 查看详情

在ros使用自己安装的eigen时的cmake错误(代码片段)

...munity.bwbot.org)[http://community.bwbot.org]在我在自己的ROS系统中安装最新的eigen后,在自己的工作空间执行catkin_make后出现了如下的错误CMakeErrorat/opt/ros/kinetic/share/eigen_conversions/cmake/eigen_conversionsConfig.cmake:106(message):Project'eigen_conver... 查看详情