ROS实战_1.1 Pioneer-3DX 移动机器人平台介绍与学习指南
来源:互联网 发布:淘宝免费申请试用理由 编辑:程序博客网 时间:2024/06/05 15:46
1. Available Packages
You may choose to use one of three packages for using these robots with ROS: ROSARIA or p2os for velocity control of the platform, or ros-arnl to use Adpept MobileRobot's optional ARNL localization autonomous navigation system.
1.1 ROSARIA
ROSARIA provides an interface between ROS and (parts of) Adept MobileRobots' open source ARIA library. When using ROSARIA, communications with the robot, and the differences between some robot platforms and configurations is taken care of automatically by ARIA (and customizations on specific robots can be configured in ARIA). When ROSARIA is built (with catkin or rosmake), it automatically downloads the current ARIA release from MobileRobots.
ROSARIA provides interfaces to the mobile robot control and position estimate; use device-specific ROS nodes for sensors and other devices on the robot base.
MobileRobots' Advanced Robot Interface for Applications (ARIA) is a C++ library (software development toolkit or SDK) for all MobileRobots/ActivMedia platforms. ARIA can dynamically control your robot's velocity, heading, relative heading, and other motion parameters either through simple low-level commands or through its high-level Actions infrastructure. ARIA also receives position estimates, sonar readings, and all other current operating data sent by the robot platform.
ARIA provides tools to integrate I/O with your own custom hardware—digital, analog, and serial—and includes comprehensive support for all MobileRobots/ActivMedia robot accessories, including various types of laser-range finders, control of pan-tilt-zoom camera or pan-tilt units, Pioneer Gripper and Arm, and more. (Some other devices are supported by separate software libraries, either provided by us or the original device manufacturer.)
ARIA also includes a library called ArNetworking which implements an extensible infrastructure for easy remote network operations for your robots, user interfaces, and other networked services. Through a server executing on the robot's PC, ArNetworking-enabled clients connect from another computer on the network to get data and issue commands. Download and use our dynamic MobileEyes operator GUI client, to view robot data and issue commands remotely via ArNetworking.
ARIA does not have any installation or runtime dependencies,You only need to download the ARIA package appropriate for your operating system to get started.
ARIA 2.9.1 - Ubuntu 12.04.2 (precise) or later, amd 64-bit architecture (libaria_2.9.1+ubuntu12_amd64.deb)
=====================================Important============================================
- ARIA 2.9.1 API Reference Manual
- ArNetworking 2.9.1 API Reference Manual
Manuals page
http://robots.mobilerobots.com/wiki/Main_Page
========================================================================================
Getting Started
(1). To get started using ARIA, the first document you should read is your robot operations manual shipped with the robot or available on the Manuals page. This will show you the components of the robot, and how it can be controlled from a client program.
In a Linux installation, ARIA can be found in /usr/local/Aria. In a Windows installation, you can find it in the Start menu under MobileRobots->Aria. If your robot has an onboard computer, ARIA and all other libraries needed for that robot have been preinstalled.
(2). Next, read the ARIA README.txt file. This will give a brief practical overview of the ARIA SDK.
(3). Next, read the ARIA API reference manual (Aria-Reference). This manual includes a longer discussion of robot software development, what ARIA offers and how to use it, as well as documentation of each class and method in ARIA.
Finally, ARIA includes many example programs in the 'examples' directory.
Other libraries and packages you install will also include their own documentation, in the form of a README text file and/or a reference manual similar to ARIA's.
Recommended Additional Downloads
MobileSim http://robots.mobilerobots.com/wiki/MobileSim
- To simulate a robot and enviornment before trying your code on a real robot, use the MobileSim simulator. (SRISim is no longer available.)
- MobileEyes http://robots.mobilerobots.com/wiki/MobileEyes
- Customers may also want to download our proprietary MobileEyes application so that you can have a GUI to remotely watch and control what the robot is doing. MobileEyes connects to a server program on an robot onboard computer. using ArNetworking (library included with ARIA) across a wireless network, letting you view and control the robot's movements and environment without slowing it down. See the ArNetworking library documentation for details on developing custom server programs.
- ArVideo http://robots.mobilerobots.com/wiki/ArVideo
- ArVideo provides access to control and images from Axis ethernet cameras, as well as images acquired from analog framegrabbers.
1.2 ros-arnl
If you have purchased the ARNL laser navigation system, you can also use ros-arnl to send the robot to goal points in a mapped environment. ros-arnl partially implements the same interface as the standard ROS navigation stack. See ros-arnl for details.
2. Available Robots
Different robots have different capabilities, and different robot types and your individual robot's configuration may require different parameters.For example, some robots have one onboard computer, some have multiple, some have none and are either operated remotely by wifi or by adding your own laptop. Different configurations are discussed in the documentation of ROSARIA and in the overview below.
3. Getting Started with ROSARIA
For step by step instructions on downloading and building the ROSARIA package and using the RosAria node, see ROSARIA/Tutorials/How to use ROSARIA.
4. Robot Model Descriptions (URDF)
Models of some robots are available in the http://github.com/MobileRobots/amr-ros-config repository. (This repository provides a ROS package called amr-ros-config so you can refer to files via that package name if in your ROS path.) See the README files in amr-ros-config for more information. If you would like to help create new URDF files or improve the existing ones, please discuss via the ros-sig-pioneer mailing list.
5. Launch Files and Other Configuration
Some example launch files are available in the http://github.com/MobileRobots/amr-ros-config repository. (This repository provides a ROS package called amr-ros-config so you can refer to files via that package name if in your ROS path.) See the README files in amr-ros-config for more information. You can copy and modify these launch files as needed.
6. Simulation
ARIA will automatically connect to the MobileSim simulator from MobileRobots if it is running. Therefore, one easy way to do simple simulation of the robot in 2D is to just run MobileSim before running the RosAria node. However, note that not everything provided by MobileSim will be available through the RosAria node -- only what data and commands the RosAria node includes i.e. mobile robot base state, position and control, as well as sonar and bumpers. Laser rangefinders, cameras, and other separate accessories are not available via RosAria.
For more full-featured simulation in ROS, use Stage, STDR Simulator or Gazebo instead of MobileSim and RosAria. However, configuration for Pioneer 3 and other MobileRobots platforms is not complete for Gazebo or STDR simulator; discuss development of this configuration on ros-sig-pioneer mailing list.
7. Laser Rangefinders
There are several options for connecting to laser rangefinder sensors. If you are using ROSARIA, you can set the ~publish_aria_lasers parameter to true. If set to true, then in addition to connecting to the mobile robot, RosAria will connect to any laser rangefinders configured in the [http://robots.mobilerobots.com/wiki/Robot_Parameters ARIA robot parameter files]. If your robot came with a laser rangefinder installed and configured by MobileRobots, then this will generally work by default. RosAria will use ARIA to read and interpret laser rangefinder data, and provide this as a 2D point cloud topic in the robot global odometry coordinate frame. It also provides raw range values as a laserscan topic.
Alternatively, for more customization, you can run a ROS node dedicated to a specific type of laser rangefinder. See the list below for links to possible ROS node choices for different laser rangefinder types.
Note for LMS-200 on Pioneer 3: If using the sicktoolbox_wrapper node to connect to a SICK LMS-200 installed by MobileRobots on a Pioneer 3 robot (P3DX, P3AT, or PeopleBot), then you must set its ~connect_delay parameter to allow time for the LMS-200 to switch on and initialize. For example: rosrun sicktoolbox_wrapper sicklms _connect_delay:=30
You can use laser filter nodes to modify laser data from a laser rangefinder. For example, on some robots (PatrolBot, PioneerLX, Seekur), edges or parts of the robot itself are within the field of view of some lasers, and those readings should be discarded. In addition, on some robots, the laser is mounted upside down to achieve a lower sensing plane. ARIA normally handles this if running ROSARIA with ~publish_aria_lasers set to true, but with separate laser driver nodes you will need to use ROS to handle these cases. Sometimes this can be configured in the laser driver node, but if the laser driver doesn't support it, the laser data needs to be filtered, inverted or reversed. Various other ways of processing or modifying laser data is also available in the laser filter nodes. For more information, see laser_pipeline/Tutorials/IntroductionToWorkingWithLaserScannerData, laser_filters/Tutorials/Laser filtering using the filter nodes, and the other documentation associated with the laser_pipeline, laser_filters, and laser_assembler packages.
8. Library Overview
8.1 Basic Configuration
Capability
ROS package/stack
Robot base control and data
ROSARIA or p2os-purdue
Robot models (URDF)
See https://github.com/MobileRobots/amr-ros-config/tree/master/description (or p2os_urdf for alternative P3DX]]
8.2 Hardware Drivers and Simulation
Component
ROS package/stack
Tested on a robot? (Contact ReedHedges if you have tested it)
Mobile Robot Platform
ROSARIA or p2os-purdue
yes
Sonar
ROSARIA or p2os-purdue
yes
Bumper switches
ROSARIA
yes
Pioneer Gripper
not yet supported in ROSARIA, available in p2os-purdue
no
General purpose digital I/O
not yet supported
not yet
Canon VCC Camera Pan/Tilt/Zoom Control
not yet supported ?
not yet
Sony D30 Camera Pan/Tilt/Zoom Control
unsupported
no
FLIR/Directed Perception DPPTU-46 Pan/Tilt Unit
flir_ptu_driver. Move connection to a computer serial port if currently connected to robot controller AUX serial port. Use its ~port parameter to specify serial port device name.
not yet
FLIR/Directed Perception DPPTU-47 Pan/Tilt Unit
dp_ptu47_pan_tilt_stage
not yet
SICK LMS-200 laser rangefinder
sicktoolbox_wrapper or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA. Note: on most Pioneer-2 and -3 family robots, the laser is only powered on when software opens a serial connection to the laser. Run the laser node after the main robot control node (p2os or rosaria), and set the ~connect_delay parameter to 20 or 30 seconds to allow the laser time to power on and initialize.
yes?
SICK LMS-100 and LMS-111 laser rangefinders
Use LMS1xx, or use Clearpath's fork of sicktoolbox_wrapper2, or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA.
yes?
SICK LMS-500 laser rangefinder
Try LMS1xx package. If it doesn't work, try rebuilding LMS1xx node using the most recent version of liblms1xx from github. Or, use Clearpath's fork of sicktoolbox_wrapper2. Or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA.
yes?
SICK S300 laser rangefinder
cob_sick_s300 or sicks300 with this patch applied, or enable ~publish_aria_lasersparameter when running ROSARIA. Set serial port parameter, and baud rate to 230400 or other value depending on laser's configuration, and inverted flag if inverted.
yes
Hokuyo URG laser rangefinders
urg_node or hokuyo_node or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA.
not yet
SICK TiM laser rangefinder
sick_tim or enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA robot parameters
no
SICK S3000 laser rangefinder
Enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA robot parameters
no
Keyence SZ-16D laser rangefinder
Enable ~publish_aria_lasers parameter when running ROSARIA and configure laser in ARIA robot parameters
no
Kinect version 1
Use freenect_stack (uses libfreenect, recommended, newer) or use openni_kinect (uses OpenNI, may have more features, but not as recently updated)
?
Kinect version 2
See https://github.com/code-iai/iai_kinect2 and http://robots.mobilerobots.com/wiki/Kinect_Version_2_Notes
yes
Cyton Gamma manipulator arm
see Robots/Cyton-Gamma for interface to Actin/CytonViewer. For direct control of joint modules, can also try https://github.com/bandi13/cyton_gamma_300_ROS
?
GPS Receiver
nmea_navsat_driver (or nmea_gps_driver with Fuerte or Groovy), or gpsd_client
no?
Firewire cameras (not stereo)
camera1394
?
USB Camera
usb_cam
?
Video Images (Analog) from Canon, Sony, RVision, cameras via Sensoray 311 analog framegrabber
gscam (configure before running with: export GSCAM_CONFIG="v4l2src ! video/x-raw-yuv, width=320, height=240 ! ffmpegcolorspace"), or any other driver using v4l
not yet
Video Images from Axis ethernet camera or framegrabber
axis_camera
yes
PointGrey Bumblebee Stereo Camera
pointgrey_camera_driver
?
PowerCube Arm (PowerBot Arm)
use schunk_bringup to setup the schunk_powercube_chain (use schunk_bringup_sim for simulation
no
TCM2 Compass
not supported
no
Kinova Jaco2 Arms
wpi_jaco or jaco_ros
Schunk LWA4P/Powerball Arm
schunk_canopen_driver
not yet
- ROS实战_1.1 Pioneer-3DX 移动机器人平台介绍与学习指南
- ROS实战_1.3 通过ROSARIA控制Pioneer 3DX机器人(单台)
- ROS实战_1.2 Pioneer 3DX ROSARIA使用教程
- ROS实战_1.4 ROSCPP (基于Pioneer 3dx )
- 先锋机器人pioneer-3DX主要类库函数
- 基于ROS平台的移动机器人-3-小车底盘与ROS的通信
- 基于ROS平台的移动机器人-目录
- 先锋机器人学习笔记_1-4 Pioneer SDK与VS2010编程配置
- 【ROS】移动机器人导航仿真(1)——3D建模与简单移动
- ROS实战_1.5 ROS调试与可视化
- ROS实战_1.6 通过ROS同时运行多台机器人
- pioneer 移动机器人实现平滑轨迹
- ROS想说爱你不容易 英特尔开源ROS移动机器人平台丨机器人大家说
- 基于ROS平台的移动机器人-1-小车底盘的搭建
- 基于ROS平台的移动机器人-2-小车底盘控制
- 基于ROS平台的移动机器人-7-使用Kinect2建图
- 基于ROS平台的移动机器人-8-使用Kinect2导航
- ROS移动机器人之SLAM(1)
- IBM V3500存储更换控制器一例
- 重拾java基础(二十二):集合、IO流总结附带Excel资料
- 求第n个斐波那契数(非递归与递归方法实现)
- 关于SSH中异常处理的冲突引起的无限循环-Infinite recursion detected: [……]-问题处理
- android 窗口类型分析
- ROS实战_1.1 Pioneer-3DX 移动机器人平台介绍与学习指南
- SVG(可缩放矢量图形)虚线相关属性与线条动画原理:一条会动的线
- 浅谈MDN CSS
- 整体二分 【Poi2011】 Meteors bzoj2527
- 看 刻意练习 有感
- 默认样式重置标准版
- Tinker接入及原理分析
- 语义网概念
- Form表单之下拉框