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

Download:     http://robots.mobilerobots.com/wiki/Aria

    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.

    A variety of other useful tools for building robot applications are included in ARIA or available as separate libraries, including speech synthesis and recognition; sound effect playback; mathematical functions, cross-platform (Windows/Linux) thread and socket implementations; and more.

    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============================================

  • Image:Documents_icon_bw.png ARIA 2.9.1 API Reference Manual
http://robots.mobilerobots.com/docs/api/ARIA/2.9.1/docs/index.html

  • Image:Documents_icon_bw.png ArNetworking 2.9.1 API Reference Manual
http://robots.mobilerobots.com/docs/api/ARIA/2.9.1/ArNetworking/docs/index.html

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



0 0
原创粉丝点击