ROS中階筆記(十):ROS機器人綜合應用


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM