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

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

1 ROS機器人綜合應用

  • PR2:造就了ROS的機器人平臺,徹底基於ROS開發,功能豐富、強大;
  • TurtleBot:ROS社區中最流行的高性價比機器人平臺,先後共發佈三代;
  • Universal Robot:工業領域的協做工業機器人定義者;
  • HRMRP:基於ARM+FPGA的異構實時移動機器人平臺,能夠實現SLAM、導航、圖像處理、多機器人協做等功能;
  • Kungfu Arm:基於ROS-I框架的機械臂控制系統,集成了機器視覺、語音、靈巧手等豐富的傳感器和執行器。

1.1 PR2

PR2,Personal Robot2git

  • Willow Garage公司設計;
  • 兩條手臂,每條手臂七個關節,手臂未端是一個能夠張合的夾爪;
  • 依靠底部的四個輪子移動;
  • 在頭部、胸部、肘部、夾爪上分別安裝有高分辨率攝像頭、激光測距儀、慣性測量單元、觸覺傳感器等;
  • 底部有兩臺八核電腦做爲機器人各硬件的控制和通訊中樞,而且都安裝了Ubuntu和ROS系統。

1.2 PR2實踐

一、安裝PR2功能包github

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

二、啓動Gazebo仿真編程

$ roslaunch pr2_gazebo pr2_empty_world.launch                   # 啓動Gazebo仿真

三、在仿真環境中添加障礙物模型,並使用rviz顯示PR2的傳感器信息安全

rosrun rviz rviz

四、鍵盤控制bash

$ roslaunch pr2_teleop teleop_keyboard.launch

在控制PR2移動時,rviz中的Fixed Frame須要修改成odom_combined微信

五、啓動SLAM建圖app

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

六、機械臂控制框架

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

七、機械臂Movelt!控制dom

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

八、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實踐

一、安裝Turtlebot功能包

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

二、啓動仿真環境

# 先設置仿真環境的地圖,經過環境變量的形式作啓動的;
$ 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的傳感器信息

三、鍵盤控制

$ roslaunch turtlebot_teleop keyboard_teleop.launch

四、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

五、自主導航

# 構建好地圖以後,保存地圖
$ 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實踐

一、安裝Turtlebot3功能包

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

TurtleBot 3目前有兩種模型:burger和Waffle,啓動以前必須經過環境變量的方式設置所須要的模型,這裏選擇burger。

二、啓動仿真環境

# 須要聯網加載
$ export TURTLEBOT3_MODEL=burger        
$ roslaunch turtlebot3_gazebo_ros turtlebot3_world.launch

三、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實踐

一、安裝UR功能包

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

二、啓動仿真環境

$ roslaunch ur_gazebo ur5.launch

三、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

一、模型顯示

$ roslaunch mbot_description display_mbot_pro_xacro.launch

二、仿真環境

$ roslaunch mbot_gazebo view_mbot_pro_with_laser_kinect_gazebo.launch

三、物體跟蹤

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

2.2 marm pro

一、模型顯示

$ roslaunch marm_description view_arm.launch

二、仿真環境

$ roslaunch marm_gazebo arm_world.launch

三、Movelt!視覺集成

$ roslaunch marm_gazebo arm_bringup_moveit.launch

2.3 mbot+marm

一、模型顯示

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

二、Movelt!控制

$ roslaunch mbot_with_arm_moveit_config demo.launch

三、gazebo仿真

$ roslaunch marm_gazebo mbot_with_arm_world.launch

四、Movelt!+gazebo控制

$ roslaunch marm_gazebo mbot_with_arm_bringup_moveit.launch

微信公衆號:喵哥解說 公衆號介紹:主要研究機器學習、計算機視覺、深度學習、ROS等相關內容,分享學習過程當中的學習筆記和心得!期待您的關注,歡迎一塊兒學習交流進步!同時還有1200G的Python視頻和書籍資料等你領取!!!

相關文章
相關標籤/搜索