目录

  • 一.ROS
    • 二.入门的实践练习
      • 三.实验成果
        • 四.参考网站

一.ROS

带你认识ROS

什么是ROS

ROS(Robot Operating System)是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功能。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目。到2008年,主要由威楼加拉吉继续该项目的研发。

ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。目前ROS主要支持Ubuntu。

ROS可以分成两层,低层是上面描述的操作系统层,高层则是广大用户群贡献的实现不同功能的各种软件包,例如定位绘图,行动规划,感知,模拟等等。

ROS(低层)使用BSD许可证,所有是开源软件,并能免费用于研究和商业用途。而高层的用户提供的包则可以使用很多种不同的许可证。

ROS的特点

ROS的主要目标是为机器人研究和开发提供代码复用的支持。ROS是一个分布式的进程(即“节点”)框架,这些进程被封装在易于被分享和发布的程序包和功能包中。ROS也支持一种类似于代码储存库的联合系统,这个系统也可以实现工程的协作及发布。可以使一个工程的开发和实现从文件系统到用户接口完全独立决策(不受ROS限制)。同时,所有的工程都可以被ROS的基础工具整合在一起。

(1)点对点设计
(2)不依赖编程语言
(3)精简与集成
(4)便于测试
(5)开源
(6)强大的库及社区:

ROS发展壮大的原因

随着技术的发展及人们需求的提高,机器人集成了越来越多的功能、传感器,对用户来说这越来越方便,但对开发者来说恰恰相反,功能的增加带来开发与集成难度迅速上升,机器人操作系统的出现有效缓解了这种问题。从计算机和智能手机的发展过程来看,合适与成熟的操作系统是智能机器人行业大规模发展和在人们的生活中普及的必要条件。可以预见,未来几年将会出现众多机器人操作系统,在经过充分的发展竞争后将会有为数不多的几个操作系统会发展壮大并占据绝大部分市场,就像曾经的计算机操作系统和现在的手机操作系统。

二.入门的实践练习

实践练习:在Ubuntu16或18系统中,安装对应版本的ROS软件;熟悉ROS基本命令;运行小海龟demo例子,通过键盘控制小海龟运动。记录整个实践过程。

1.安装
(1)设置安装源

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'


(2)设置密匙
使用如下命令:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116


(3)更新软件列表
在更新软件列表之前需要安装公钥,否则无法验证签名,命令如下:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

更新命令:

sudo apt update

(4)安装ROS
如下命令:

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

如果出现如图情况:

解决办法,执行如下命令

ls /var/lib/dpkg/lock-frontend
sudo rm -r -f /var/lib/dpkg/lock-frontend
sudo  rm  -r -f /var/lib/dpkg/lock


如果出现如下如问题:

可以使用如下命令强制解锁:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock


(5)初始化rosdep

初始化大家差不多都会遇到这个问题:

···Website may be down 或者 ···ERROR: unable to process source

只能放弃在线安装,先把所需的文件都存在本地,再来尝试了

在这里我借鉴了同学的博客进行了安装并配置文件,点此处学习

重新 rosdep update,结果如下图所示,则说明该步骤已经成功了


(6)添加 ROS 环境变量
命令:

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


(7) 安装 rosinstall
命令:

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

(8)第一次启动ROS时,需要进行环境变量配置
执行如下命令:

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

三.实验成果

先开启三个终端,然后分别依次输入如下命令:

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

出来吧,龟精

四.参考网站

https://blog.csdn.net/xwmrqqq/article/details/114292547?spm=1001.2014.3001.5501

https://blog.csdn.net/qq_44830040/article/details/106049992

http://www.linuxdiyf.com/view_411290.html

机器人操作系统(ROS)入门相关推荐

  1. python机器人编程教程入门_机器人操作系统(ROS)入门必备:机器人编程一学就会

    本书是针对机器人操作系统(ROS)初学者的入门教程,从基础的如何安装ROS,到ROS的框架介绍和C/C++.Python编程基础概念介绍,直至完整搭建一个机器人项目,每一个部分都有详细的操作过程和相应 ...

  2. (嵌入式)机器人操作系统(ROS)入门

    目录 一.ROS简介 1.什么是ROS 2.ROS产生.发展和壮大的原因和意义 二.在Ubuntu系统中,安装对应版本的ROS软件 1.确定Ubuntu配置 2.添加ROS软件源 3.添加密钥 4.安 ...

  3. 计算机操作系统(OS)安装机器人操作系统(ROS)实现物联网功能

    博客中大量介绍了将Ubuntu等Linux系统借助机器人操作系统ROS实现机器人控制设计开发和物联网功能案例,并可基于OpenAI等实现人工智能相关训练. 这篇博文围绕windows系统展开,之前也写 ...

  4. 一文读懂自动驾驶中的机器人操作系统ROS

    一.什么是机器人操作系统ROS 1.ROS(Robot Operating System)是一个操作系统 ROS是对机器人的硬件进行了封装,不同的机器人.不同的传感器,在ROS里可以用相同的方式表示( ...

  5. 机器人操作系统ROS 编程开发--详细总结

    最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家. ROS基本介绍 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发 ...

  6. 机器人操作系统ROS(4)话题编程

    此节的前提是已经创建好工作空间,请参考 工作空间 一.话题通讯模型 二.话题编程实现 1. 实现发布者(Talker) a.在~/catkin_ws/src/learning_communicaton ...

  7. 从零打造一个机器人002【初识机器人操作系统--ROS】

    从零打造一个机器人002[初识机器人操作系统–ROS] 1.ROS是什么 ROS是一个适用于机器人的开源的元操作系统.其实它并不是一个真正的操作系统,其底层的任务调度.编译.寻址等任务还是由Linux ...

  8. 关于机器人操作系统(ROS)学习前须知二三

    ROS基础资料 1.什么是ROS? ROS(机器人操作系统,Robot Operating System),是专为机器人软体开发所设计出来的一套电脑作业系统架构.它是一个开源的元级操作系统(后操作系统 ...

  9. <笔记>机器人操作系统ROS理论与实践--第一讲:认识ROS

    <笔记>机器人操作系统ROS理论与实践--第一讲:认识ROS 前言 一.为什么需要ROS 二.ROS的总体设计 1.一个目标 2.五个特点 3.四位一体 三.ROS的系统实现--三个层次 ...

最新文章

  1. 监控神器Prometheus用不对,也就是把新手村的剑
  2. 获取有效工作日封装类(原创)
  3. linuc和python常用命令是一样的么_Linux常用命令大全(非常全!!!)(2)|简明python教程|python入门|python教程...
  4. vb获取数组长度_如何实现数组的二分查找
  5. ORA-04031:unable to allocate 4120 bytes of shared memory ‘obj stat mem’故障解决
  6. error: ‘for‘ loop initial declarations are only allowed in C99 mode
  7. 【解决】linux磁盘扩容大全:新增磁盘、原磁盘扩容、home分区root分区扩容
  8. 护理管理学复习题及参考答案
  9. 基于Java的微小企业人事管理系统的设计与实现 毕业设计-附源码231012
  10. 百度搜索结果显示“我喜欢”按钮
  11. 物联网浪潮之下,前端工程师如何迎刃而上?
  12. MySQL数据库,emp,dept等表
  13. java后台怎么设置转盘抽奖_[Java教程]转盘抽奖
  14. 机器的崛起:隐藏的控制论历史
  15. 在双线式麦克风电路中使用MEMS麦克风
  16. MTL-FFDET:基于多任务学习的森林火灾探测模型
  17. python批量重命名工具
  18. AWC / Advanced SystemCare Pro(专业版)V3.7.0+有效注册码
  19. 2020茶艺师(初级)考试题库及茶艺师(初级)在线考试
  20. 奇幻到android studio 的DUANG 蛮捄三

热门文章

  1. 菜鸟落泪:配置python 环境时,遇到关于 lmdb 模块的问题。
  2. Live2D项目,桌面可爱玩偶(可以动的),html桌面化(exe)的实现
  3. 达*芬奇密码 文字版小说 下载
  4. java将图片变灰、去噪、反色
  5. OpenPDF使用教程及样例代码
  6. 应用系统性能测试六大步
  7. RFC2544 网络基准测试(Benchmarking Methodology for Network Interconnect Dev)
  8. win7安装IIS 防火墙设置
  9. Dagger2使用详解
  10. word保存为pdf文件