ROS【机器人操作系统】新手攻略

第一步、我们要使用ROS首先要知道ROS是什么?

ROS—(Robot Operating System)是一个机器人软件平台,提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(如传感,控制,状态,规划等等)。目前ROS主要支持Ubuntu,是开源软件,并能免费用于研究和商业用途。

第二步、掌握ROS的基本操作

ROS基本操作方法这里就不介绍了,网上有很多比较详细的教程,下面列举一些比较好的ROS学习网站,建议先按这些教程操作一遍,对ROS的一些基本概念与操作有一个了解,比如什么是ROS节点、怎么创建ROS程序包,怎么发布订阅话题、怎么查看发布的话题内容等等

  1. ROS教程
    这是ROS官网,上面介绍了ROS环境搭建与配置,ROS程序包、节点、话题、服务与参数的基本概念,ROS基本指令的使用,以及简单的消息发布与订阅,ROS相关工具的介绍,通过这个网站的学习ROS就基本入门了
  2. ROS源码
    这是GitHub上的源码,怎么快速使用ROS看看源码就知道了,后续开发可以参照这些源码,能更快的上手
  3. ROS视频教程
    这是中国大学慕课,是ROS视频讲解,给不想看文档的同仁提供了另一个选择,内容大同小异,这是它的讲义地址:https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/
  4. https://www.ncnynl.com/
    这个网站关于ROS的资料比较多,有跟语言相关的、有跟开发平台相关的、也有跟各种传感器相关的,有兴趣的上去看看就知道
  5. https://blog.csdn.net/hcx25909
    这是我觉得比较好的个人博客,图文并茂,看看也许能提供些帮助

第三步、机器人上玩转ROS

这一步我只说个大概,有兴趣的可以不看,因为细说的话需要大量篇幅~~
现在假如你手头有台使用了ROS的机器人

  1. 像我们通常是使用Teamviewer通过IP远程连上机器人(连同一个wifi更稳定)

  2. 进入机器人后,开启ros服务
    终端1:roscore
    终端2:roslaunch 你自己的启动脚本.sh
    开启所有结点后ROS就在机器人上运行起来了,可以用指令查看订阅与发布的相关信息

  3. 用手机APP控制运动
    安装Teleop, 连接到相应的wifi上,打开APP
    Master URL:http://192.168.1.99:11311/,然后CONNECT
    之后就可以在手机上进行遥控,可查看手机下发话题:rostopic echo /cmd_vel

  4. 可视化工具:rviz
    可以直接在终端中输入rviz即可打开,这个工具可以看到各种各样的传感器可视化信息,用tf转换一下rviz可识别的数据,比如超声波:rosrun tf static_transform_publisher 0.18 0 0 0 0 0 base_link sonar_link1 100

注意事项

  1. 环境初始化:如:source ~/.bash,有些是source ~/.zshrc
    这个很重要,像你代码更新重新编译之后,因为结点更新了,你如果用roslaunch指令启动,你就需要
    source一下环境,不然你启动的可能就不是最新结点

  2. 单独编译某个node
    我们知道整体编译,是在根目录下如:/catkin_ws下:catkin_make一下,不过当结点多了你只想编译其中一个结点,同样在:/catkin_ws下,使用该指令:catkin_make -DCATKIN_WHITELIST_PACKAGES=“kinco” //””中跟的是包名

  3. 单独运行某个node
    运行某个node的方式有多种,比如到node当前目录./运行,或者rosrun 包名 node名运行,
    还有就是用roslaunch文件运行,我们使用的是第三种,如:roslaunch base.launch

  4. 模拟导航发布数据
    rostopic pub -r 10 /cmd_nav geometry_msgs/Twist “linear:
    x: 100.0
    y: 0.0
    z: 0.0
    angular:
    x: 0.0
    y: 0.0
    z: 0.0”
    其中-r 10表示以10hz的频率一直发布

5.测试,可参考ROS指令总结
rostopic list //查看有哪些话题
rosropic echo //查看某个话题的发布内容
rosnode list //查看开启了哪些节点
rosnode info //查看某节点的信息

目前我们YYD机器人上所用的版本是Ubuntu16.04 + Kinetic,雷达是倒装的,需要用到tf转换.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东皇※太一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值