Basic demo with a Pioneer P3DX

While the Core Examples gives an insight into the SmartSoft-Framework with its communication patterns and objects, this section provides a first real-world scenario. In this scenario the robot drives maximising his translation velocity while avoiding collisions.

Hint: this example is described step by step in the tutorials Lesson 1 for the VMware Installation. Tutorials

Our reference robot setup:

  • Pioneer P3DX (H8S Microcontroller) with AROS 1.13
    we changed the baudrate of our robots to 115200 and the SIP (Server Information Packet) cycle to 25. (details: Pioneer Operations Manual - AROScf)
    Attentions for Player/Stage users: Changing the baudrate can cause problems with the connection between Player and your robot (Connection Timeout). It seems that Player connects to the robot by trying different baudrates stored in the bauds-array. As the baudrate 115200 is the fourth rate to try, a timeout occures before the connection is etablished.
    To solve the Problem you have to modify your p2os driver (<Player-Dir>/server/drivers/mixed/p2os/ Simply change the order of the baudrates in the bauds-array (line 544). The bauds-array looks like "int bauds[] = {B9600, B38400, B19200, B115200, B57600};" and should look like "int bauds[] = {B115200, B38400, B9600};"
  • Laserscanner SICK LMS 200

Involved Components:

  • smartPioneerBaseserver
  • smartLaserLMS200Server
  • smartCdlServer
  • smartRobotConsole

Our basic P3DX setup

Run the demo:


  • Be sure that the interface-devices of your robot and the Laserscanner are set correctly. Please check:


  • Now run the components:
        # cd $SMART_ROOT
        # xterm -e bin/smartPioneerBaseServer &
        # xterm -e bin/smartLaserLMS200Server &
        # xterm -e bin/smartCdlServer &
        # xterm -e bin/smartRobotConsole &

Configure and start the CDL using the smartRobotConsole:

  • choose "CDL parameter" to set each of the parameters:
    strategy(reactive) -> reactive collision-free driving
    freebehavior(activated) -> allow robot to free himself in stalled situations
    lookuptable(default) -> this sets the contour of the P3DX
    transvel(0)(800) -> set min/max translation velocity
    rotvel(-50)(50) -> set rotational velocities
  • now choose "CDL state" and "moverobot"
  • Refer to Tutorials Lesson 1 which describes this example inside the VMware Installation