MARIE 0.5 aacarmen

From MARIEWiki

Jump to: navigation, search

Contents

Version

0.5


Description

CARMEN is an open-source collection of software for mobile robot control. CARMEN is modular software designed to provide basic navigation primatives including: base and sensor control, logging, obstacle avoidance, localization, path planning, and mapping. See the project website for more information.

The application adapter establish the communication with CARMEN to offer some of its services. Three modes are available :

  • Navigator Adapter : expose the localization and navigation interface
  • Localisation Adapter : expose only the localisation interface
  • Planner Adapter : expose only the navigation interface

Requirements

  • You must have CARMEN 0.4.6.ii installed before compiling the CARMEN Application Adapter.

See Install instructions.

Modes

Navigator Mode

Expose the localization and navigation capabilities of Carmen. It needs the odometry data and laser ranges (these are used to correct the odometry data and update the local map for the path planner). The adapter will display the navigator_panel, a graphic display which shows the map, the position of the robot and the expected goal. You can place the goal by clicking on the map and the calculated path will be displayed.

aacarmen-navigator.jpg

Localizer Mode

Expose the localalisation capabilities of Carmen. It needs the odometry data and laser ranges data for executing localisation. It outputs the robot position according to Carmen localisation algorithms. No graphic is displayed for this adapter as it doesn't need user input.

aacarmen-localizer.jpg

Planner Mode

Expose the navigation capabilities of Carmen. It needs the odometry data, laser ranges (these are used to correct the odometry data and update the local map for the path planner) and position data for robot localisation. The adapter will display the navigator_panel, a graphic display which shows the map, the position of the robot and the expected goal. You can place the goal by clicking on the map and the calculated path will be displayed.

aacarmen-planner.jpg


Configuration

Note : see Configuration Description Language for syntax details.

Navigator Mode

# C carmenNavigator
   # KV pathToMap
   # KV pathToIni
   # KV robotName
   o KV pathToBin
   o KV pathToLib
   o KV centralPort
   
   # Q inputs
      # T port (type = Default, name = laser)
      # T port (type = Default, name = odometry)
   
   # Q outputs
      # T port (type = Default, name = motor)


Localizer Mode

# C carmenLocalizer
   # KV pathToMap
   # KV pathToIni
   # KV robotName
   o KV pathToBin
   o KV pathToLib
   o KV centralPort
   
   # Q inputs
      # T port (name = laser)
      # T port (type = Default, name = odometry)
   
   # Q outputs
      # T port (type = Default, name = position)


Planner Mode

# C carmenPlanner
   # KV pathToMap
   # KV pathToIni
   # KV robotName
   o KV pathToBin
   o KV pathToLib
   o KV centralPort
   
   # Q inputs
      # T port (type = Default, name = laser)
      # T port (type = Default, name = odometry)
      # T port (type = Default, name = position)
      # T port (type = Default, name = goal)
   
   # Q outputs
      # T port (type = Default, name = motor)
      # T port (type = Default, name = plan) 
  • centralPort : Carmen central port number to use (optional. default = Carmen default port)

(Note : See "Using multiple aacarmen" section for more information)

  • pathToBin : path to Carmen bin directory (optional. default = path autodetected at compile time.)
  • pathToIni : path to Carmen .ini config file (see .ini file)
  • pathToLib : path to Carmen lib directory (optional. default = path autodetected at compile time.)
  • pathToMap : path to Carmen map (CARMEN's map format)
  • robotName : name of the robot to use in .ini configuration file (see .ini file)
  • laser input port : port expecting to receive DataLaser
  • odometry input port : port expecting to receive DataOdometry
  • position input port : port expecting to receive DataOdometry containg robot's position
  • goal input port : port expecting to receive DataOdometry containg robot's goal position
  • plan output port : port sending DataPathPlan containg CARMEN's plan
  • position output port : port sending DataOdometry data containg robot's position
  • motor output port : port sending CommandMotor

See available Ports for port configuration details.

.ini file

CARMEN uses a configuration file named .ini. This file contains a lot of parameters, divided is different sections. According to aacarmen's mode, some parameters are important to set correctly :

  • Navigator : robot, localize, navigator and navigator_panel
  • Localizer : robot and localize
  • Planner : robot, navigator and navigator_panel

Please refer to CARMEN's documentation to get parameters description, and expected values.

Notes :

  • For the robot section, the parameters about how to acces the robot hardware are ignored.
  • The loaded map is specified in the aacarmen configuration file


Usage

usage :  aacarmen mode -n component_name [-t component_type] [-d director_port_number] [-c configurator_port_number] 

      mode   #Specify aacarmen mode :
             #  navigator - expose CARMEN's localization and navigation interface
             #  localizer - expose only CARMEN's localisation interface
             #  planner   - expose only CARMEN's navigation interface
              
      -n     #Specify component's name
              
      -t     #Specify component's control type :
             #  DEFAULT - use when controlled by appman Application Manager (default)
             #  MPI     - use when controlled by ammpi Application Manager
              
      -d     #Specify director server socket port number (mandatory in DEFAULT component's control type)
      -c     #Specify configurator server socket port number (mandatory in DEFAULT component's control type)


Executing aacarmen in project

This section shows how to use aacarmen in Project.

In .setup file, add the following process :

# T process
   # KV name
   # KV type = MARIE:MPI
   # KV executableName = aacarmen
   
   # Q args
      # KV mode
    
   # KV configFile
  • name : Specify a reference name for the process
  • type : Specify component's control type
  • executableName : Specify the executable name
  • mode : Specify aacarmen mode (see Usage)
  • configFile : Specify path to aacarmen configuration file (see Configuration)

Executing aacarmen with appman [deprecated]

This section shows how to use aacarmen with appman Application Manager from a terminal script.

Start component

aacarmen mode -n component_name -t MARIE -d director_port_number -c configurator_port_number
sleep 4    # Sleep time (plateform specific)

appman -p configurator_port_number -c sxml:PathToConfigFile
sleep 1    # Sleep time (plateform specific)

appman -p director_port_number -c init
sleep 1    # Sleep time (plateform specific)

appman -p director_port_number -c start

Component can take couple of seconds to boot, configure and initialize before being ready to receive requests on director and configurator ports. Delays are required and must be adjusted depending on the running platform.

Stop component

appman -p director_port_number -c stop
sleep 1    # Sleep time (plateform specific)

Component can take couple of seconds to stop before being ready to receive requests on director and configurator ports. Delay is required and must be adjusted depending on the running platform.

Quit component

appman -p director_port_number -c quit


Using multiple aacarmen

You can use severals aacarmen in parallel. Each instance can use it's own IPC communication hub. To enable this, you need to add the centralPort parameter to the config file (see Configuration). This parameter assign a specific port to the central server. You need to set a different one for each aacarmen you want to start. If this parameter is not found, the the default central port value will be use.


Authors

  • Yannick Brosseau
  • Carle Cote


Contributors

  • Eric Beaudry
  • Dominic Letourneau
  • Clement Raievsky


License

MARIE - Mobile and Autonomous Robotics Integration Environment Copyright (C) 2004-2006 Yannick Brosseau, Carle Cote

This library and its documentation are free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library and documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You can contact MARIE development team at http://marie.sourceforge.net.


Personal tools