ros介绍

ROS是什么?

ROS 历史起源

在这里插入图片描述

ROS 发展背景
  • 问题:机器人跨学科特点,系统庞大,工程应用涉及面广,硬件繁多,软件开发困难、低级重复
  • 基础:机器人研究相关领域发展迅速:计算机视觉,异构计算加速,室内移动机器人算法的成熟等等
  • 需求:机器人研究过程中需要统一开发/测试平台
  • 解决方法:机器人软件中间件
ROS总体设计
一个目标

提高机器人开发中的代码复用率
在这里插入图片描述

五个特点
  • 免费且开源
    • BSD许可,可修改,可复用,可商用
    • 软件包数量级数增长,良好生态环境
  • 工具包丰富
    • 3D可视化工具 rviz
    • 物理仿真环境 gazebo
    • 数据记录工具 rosbag
    • QT工具箱 rqt*
  • 精简与集成
    • 每个功能节点单独编译
    • 集成众多开源项目
    • 同一接口,代码复用率高
  • 多语言支持
    ROS现在支持许多种不同的语言,例如C++、Python、Octave和LISP,也包含其他语言的多种接口实现
  • 点对点
    在这里插入图片描述
    • 一个使用ROS的系统包括一系列进程,这些进程存在于多个不同的主机并且在运行过程中通过端对端的拓扑结构进行联系。虽然基于中心服务器的那些软件框架也可以实现多进程和多主机的优势,但是在这些框架中,当各电脑通过不同的网络进行连接时,中心数据服务器就会发生问题
    • ROS的点对点设计以及服务和节点管理器等机制可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战

ROS是开源的,是用于机器人的一种后操作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库用于获取、建立、编写和运行多机整合的程序
ROS是对机器人的硬件进行封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用

四位一体

在这里插入图片描述
ROS提供了全新的通信机制全面的开发工具多样的应用功能完整的生态系统。提供了机器人开发的统一标准

总结

在这里插入图片描述

ROS 不足
  • 目前基于Ubuntu系统,移植嵌入式系统困难
  • 通信实时性能有限
  • 体积较大
  • 系统整体运行效率低
  • 系统稳定性尚不满足工业级要求,不擅长开发成熟的商业产品
  • 安全性上没有防护措施
  • 主要支持的操作系统是Linux(Ubuntu),windows刚宣布支持不久,但不够成熟

操作小记

乌龟爬爬爬
# 启动节点
$ roscore

# 生成小乌龟
$ rosrun turtlesim turtlesim_node

# 使用键盘上的箭头按键控制乌龟移动
$ rosrun turtlesim turtle_teleop_key
效果

在这里插入图片描述


pr2机器人体验
# 安装pr节点
$ sudo apt-get install ros-kinetic-pr2-*

# 启动机器人三维仿真模型
$ roslaunch pr2_gazebo pr2_empty_word.launch

# 启动键盘控制机器人在仿真环境下移动
$ roslaunch pr2_teleop_general pr2_teleop_general_keyboard.launch
效果

在这里插入图片描述


中国大学MOOC《机器人操作系统入门》课程代码示例体验
$ sudo apt-get install git

$ cd 
$ mkdir -p tutorial_ws/src
$ cd tutorial_ws/src
$ git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git

$ cd ~/catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

$ gazebo -v   #确认7.0以上,推荐7.9

$ ~/tutorial_ws
$ catkin_make
$ source ~/tutorial_ws/devel/setup.bash #刷新环境 方法一
$ rospack profile #刷新环境 方法二
$ echo "source ~/tutorial_ws/devel/setup.bash" >> ~/.bashrc  #刷新环境 方法三(永久)

# 启动机器人
$ rospack profile
$ roslaunch robot_sim_demo robot_spawn.launch
# 另一个终端
# 键盘控制
$ rosrun robot_sim_demo robot_keyboard_teleop.py
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值