ROS中阶笔记(十):ROS机器人综合应用

本文详细介绍了ROS(机器人操作系统)中几种主流机器人平台的应用实践,包括PR2、TurtleBot、Universal Robots(UR)、HRMRP及KungfuArm等。涵盖了从安装配置到具体功能实现的全过程,如SLAM建图、自主导航、机械臂控制等。

ROS中阶笔记(十):ROS机器人综合应用

1 ROS机器人综合应用

  • PR2:造就了ROS的机器人平台,完全基于ROS开发,功能丰富、强大;
  • TurtleBot:ROS社区中最流行的高性价比机器人平台,前后共发布三代;
  • Universal Robot:工业领域的协作工业机器人定义者;
  • HRMRP:基于ARM+FPGA的异构实时移动机器人平台,可以实现SLAM、导航、图像处理、多机器人协作等功能;
  • Kungfu Arm:基于ROS-I框架的机械臂控制系统,集成了机器视觉、语音、灵巧手等丰富的传感器和执行器。

1.1 PR2

PR2,Personal Robot2

  • Willow Garage公司设计;
  • 两条手臂,每条手臂七个关节,手臂未端是一个可以张合的夹爪;
  • 依靠底部的四个轮子移动;
  • 在头部、胸部、肘部、夹爪上分别安装有高分辨率摄像头、激光测距仪、惯性测量单元、触觉传感器等;
  • 底部有两台八核电脑作为机器人各硬件的控制和通信中枢,并且都安装了Ubuntu和ROS系统。

1.2 PR2实践

1、安装PR2功能包

$ sudo apt-get install ros-kinetic-pr2-*                         # 安装PR2功能包

2、启动Gazebo仿真

$ roslaunch pr2_gazebo pr2_empty_world.launch                   # 启动Gazebo仿真

3、在仿真环境中添加障碍物模型,并使用rviz显示PR2的传感器信息

rosrun rviz rviz

4、键盘控制

$ roslaunch pr2_teleop teleop_keyboard.launch

在控制PR2移动时,rviz中的Fixed Frame需要修改为odom_combined

5、启动SLAM建图

$ roslaunch PR2 pr2_build_map.launch
$ roslaunch pr2_teleop teleop_keyboard.launch

6、机械臂控制

$ roslaunch pr2_gazebo pr2_empty_world.launch
$ roslaunch pr2_teleop_ general pr2 teleop_ general_ keyboard.launch   

7、机械臂Movelt!控制

$ git clone https://github.com/davetcoleman/pr2_moveit_config.git
$ catkin_make
$ roslaunch pr2_moveit_config demo.launch

8、Movelt!+gazebo控制

$ roslaunch pr2_gazebo pr2_empty_world.launch
$ roslaunch pr2_moveit_config move_group.launch 
$ roslaunch pr2_moveit_config moveit_rviz.launch

1.3 TurtleBot

  • ROS中最为重要、资源最为丰富的机器人之一;
  • 给入门级的机器人爱好者提供一个基础平台;
  • 可以直接使用TurtleBot自带的软硬件,专注于应用程序的开发;
  • 它伴随ROS一同成长,一直都作为ROS开发前沿的机器人。

1.3.1 TurtleBot2实践

1、安装Turtlebot功能包

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

2、启动仿真环境

# 先设置仿真环境的地图,通过环境变量的形式做启动的;
$ export TURTLEBOT_GAZEBO_WORLD_FILE=
"/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"

$ roslaunch turtlebot_gazebo turtlebot_world.launch

$ rosrun rviz rviz     # 使用rviz显示Turtlebot的传感器信息

3、键盘控制

$ roslaunch turtlebot_teleop keyboard_teleop.launch

4、SLAM建图

$ export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"

$ roslaunch turtlebot_gazebo turtlebot_world.launch 
$ roslaunch turtlebot_gazebo gmapping_demo.launch 
$ roslaunch turtlebot_rviz_launchers view_navigation.launch
$ roslaunch turtlebot_teleop keyboard_teleop.launch

5、自主导航

# 构建好地图之后,保存地图
$ roslaunch turtlebot_ gazebo amcl_demo.launch map_file:=/home/hcx/turtlebot_ test_map.yaml

# 在保存的地图上完成导航
$ roslaunch turtlebot_rviz_launchers view_navigation.launch

1.3.2 TurtleBot3实践

1、安装Turtlebot3功能包

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

TurtleBot 3目前有两种模型:burger和Waffle,启动之前必须通过环境变量的方式设置所需要的模型,这里选择burger。

2、启动仿真环境

# 需要联网加载
$ export TURTLEBOT3_MODEL=burger        
$ roslaunch turtlebot3_gazebo_ros turtlebot3_world.launch

3、SLAM建图

$ roslaunch turtlebot3_slam turtlebot3_slam.launch
$ rosrun turtlebot3_teleop turtlebot3_teleop_key

1.4 UR

Universal Robots,优傲机器人

  • 一家引领协作机器人全新细分市场的先驱企业
  • 关注机器人的用户可操作性和灵活度
  • 安全度高、无需安全围栏、编程简单、灵活度高
  • UR5,自重18公斤,负载高达5公斤,工作半径85cm
  • UR3,自重11公斤,有效负载3公斤,所有腕关节均可360度旋转,未端关节可作无限旋转。
  • UR10的有效负载为10公斤,工作半径130cm。

1.5 UR实践

1、安装UR功能包

$ sudo apt-get install ros-kinetic-universal-robot

2、启动仿真环境

$ roslaunch ur_gazebo ur5.launch

3、Movelt!+gazebo

$ roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
$ roslaunch ur5_moveit_config moveit_rviz.launch config:=true

*终端查看规划的轨迹可使用如下命令:

$ rostopic echo /arm_controller/follow_joint_trajectory/goal

2 构建综合机器人平台

$ sudo apt-get install ros-kinetic-velodyne-simulator
$ sudo apt-get install ros-kinetic-hector-gazebo-plugins
$ sudo apt-get install ros-kinetic-pcl-conversions ros-kinetic-pointcloud-
to-laserscan
$ catkin_make

2.1 mbot pro

1、模型显示

$ roslaunch mbot_description display_mbot_pro_xacro.launch

2、仿真环境

$ roslaunch mbot_gazebo view_mbot_pro_with_laser_kinect_gazebo.launch

3、物体跟踪

$ roslaunch mbot_gazebo view_mbot_pro_with_laser_kinect_gazebo.launch 
$ roslaunch mbot_follower follower_bringup_nodelet.launch

2.2 marm pro

1、模型显示

$ roslaunch marm_description view_arm.launch

2、仿真环境

$ roslaunch marm_gazebo arm_world.launch

3、Movelt!视觉集成

$ roslaunch marm_gazebo arm_bringup_moveit.launch

2.3 mbot+marm

1、模型显示

$ roslaunch marm_description view_mbot_with_arm.launch
$ roslaunch marm_description view_mbot_with_arm_kinect.launch

2、Movelt!控制

$ roslaunch mbot_with_arm_moveit_config demo.launch

3、gazebo仿真

$ roslaunch marm_gazebo mbot_with_arm_world.launch

4、Movelt!+gazebo控制

$ roslaunch marm_gazebo mbot_with_arm_bringup_moveit.launch
Exbot易科机器人实验维护书籍,提供学习镜像包括indigo和kinetic等,努力为ROS爱好者和开发人员提供力所能及的服务。, 本书第2版概括性地介绍了ROS系统的各种工具。ROS是一个先进的机器人操作系统框架,现今已有数百个研究团体和公司将其应用机器人行业中。对于机器人技术的非专业人士来说,它也相对容易上手。在本书中,你将了解如何安装ROS,如何开始使用ROS的基本工具,以及最终如何应用先进的计算机视觉和导航工具。, 在阅读本书的过程中无需使用任何特殊的设备。书中每一章都附带了一系列的源代码示例和教程,你可以在自己的计算机上运行。这是你唯一需要做的事情。, 当然,我们还会告诉你如何使用硬件,这样你可以将你的算法应用到现实环境中。我们在选择设备时特意选择一些业余用户负担得起的设备,同时涵盖了在机器人研究中最典型的传感器或执行器。, 最后,由于ROS系统的存在使得整个机器人具备在虚拟环境中工作的能力。你将学习如何创建自己的机器人并结合功能强大的导航功能包集。此外如果使用Gazebo仿真环境,你将能够在虚拟环境中运行一切。第2版在最后增加了一章,讲如何使用“Move it!”包控制机械臂执行抓取任务。读完本书后,你会发现已经可以使用ROS机器人进行工作了,并理解其背后的原理。, 主要内容, 第1章介绍安装ROS系统最简单的方法,以及如何在不同平台上安装ROS,本书使用的版本是ROS Hydro。这一章还会说明如何从Debian软件包安装或从源代码进行编译安装,以及在虚拟机和ARM CPU中安装。, 第2章涉及ROS框架及相关的概念和工具。该章介绍节点、主题和服务,以及如何使用它们,还将通过一系列示例说明如何调试一个节点或利用可视化方法直观地查看通过主题发布的消息。, 第3章进一步展示ROS强大的调试工具,以及通过对节点主题的图形化将节点间的通信数据可视化。ROS提供了一个日志记录API来轻松地诊断节点的问题。事实上,在使用过程中,我们会看到一些功能强大的图形化工具(如rqt_console和rqt_graph),以及可视化接口(如rqt_plot和rviz)。最后介绍如何使用rosbag和rqt_bag记录并回放消息。, 第4章介绍ROS系统与真实世界如何连接。这一章介绍在ROS下使用的一些常见传感器和执行器,如激光雷达、伺服电动机、摄像头、RGB-D传感器、GPS等。此外,还会解释如何使用嵌入式系统与微控制器(例如非常流行的Arduino开发板)。, 第5章介绍ROS对摄像头和计算机视觉任务的支持。首先使用FireWire和USB摄像头驱动程序将摄像头连接到计算机并采集图像。然后,你就可以使用ROS的标定工具标定你的摄像头。我们会详细介绍和说明什么是图像管道,学习如何使用集成了OpenCV的多个机器视觉API。最后,安装并使用一个视觉里程计软件。, 第6章将展示如何在ROS节点中使用点云库。该章从基本功能入手,如读或写PCL数据片段以及发布或订阅这些消息所必需的转换。然后,将在不同节点间创建一个管道来处理3D数据,以及使用PCL进行缩减采样、过滤和搜索特征点。, 第7章介绍在ROS系统中实现机器人的第一步是创建一个机器人模型,包括在Gazebo仿真环境中如何从头开始对一个机器人进行建模和仿真,并使其在仿真环境中运行。你也可以仿真摄像头和激光测距传感器,为后续学习如何使用ROS的导航功能包集和其他工具奠定基础。, 第8章是两章关于ROS导航功能包集中的第1章。该章介绍如何对你的机器人进行使用导航功能包集所需的初始化配置。然后用几个例子对导航功能包集进行说明。, 第9章延续第8章的内容,介绍如何使用导航功能包集使机器人有效地自主导航。该章介绍使用ROS的Gazebo仿真环境和rviz创建一个虚拟环境,在其中构建地图、定位机器人并用障碍回避做路径规划。, 第10章讨论ROS移动机器人机械臂的一个工具包。该章包含安装这个包所需要的文档,以及使用MoveIt!操作机械臂进行抓取、放置,简单的运动规划等任务的演示示例。, 预备知识, 我们写作本书的目的是让每位读者都可以完成本书的学习并运行示例代码。基本上,你只需要在计算机上安装一个Linux发行版。虽然每个Linux发行版应该都能使用,但还是建议你使用Ubuntu 12.04 LTS。这样你可以根据第1章的内容安装ROS Hydro。, 对于ROS的这一版本,你将需要Ubuntu 14.04之前的版本,因为之后的版本已经不再支持Hydro了。, 对于硬件要求,一般来说,任何台式计算机或笔记本电脑都满足。但是,最好使用独立显卡来运行Gazebo仿真环境。此外,如果有足够的外围接口将会更好,因为这样你可以连接几个传感器和执行器,包括摄像头和Arduino开发板。, 你还需要Git(g
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

少云清

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

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

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

打赏作者

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

抵扣说明:

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

余额充值