Top Banner
Grant Agreement number: 288899 Project acronym: Robot-Era Project title: Implementation and integration of advanced Robotic systems and intelligent Environments in real scenarios for ageing population Funding scheme: Large-scale integrating project (IP) Call identifier: FP7-ICT-2011.7 Challenge: 5 – ICT for Health, Ageing Well, Inclusion and Governance Objective: ICT-2011.5.4 ICT for Ageing and Wellbeing Project website address: www.robot-era.eu D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013] Actual submission date: [31/12/2013] Start date of project: 01/01/2012 Duration: 48 months Organisation name of lead contractor for this deliverable: RT Deliverable author: Giancarlo Teti Version: [1.3] Project co-funded by the European Commission within the Seventh Framework Programme (2007-2013) Dissemination Level PU Public PP Restricted to other programme participants (including the Commission Service) RE Restricted to a group specified by the consortium (including the Commission Service) CO Confidential, only for members of the consortium (including the Commission Service) CO
75

D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

Jul 27, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

Grant Agreement number: 288899 Project acronym: Robot-Era

Project title: Implementation and integration of advanced Robotic systems and intelligent Environments in real scenarios for ageing population

Funding scheme: Large-scale integrating project (IP)

Call identifier: FP7-ICT-2011.7 Challenge: 5 – ICT for Health, Ageing Well, Inclusion and Governance

Objective: ICT-2011.5.4 ICT for Ageing and Wellbeing Project website address: www.robot-era.eu

D6.2

First outdoor robotic platform prototype

for the first experimental loop

Due date of deliverable: [31/03/2013]

Actual submission date: [31/12/2013]

Start date of project: 01/01/2012 Duration: 48 months

Organisation name of lead contractor for this deliverable: RT Deliverable author: Giancarlo Teti

Version: [1.3]

Project co-funded by the European Commission within the Seventh Framework

Programme (2007-2013)

Dissemination Level

PU Public

PP Restricted to other programme participants (including the Commission Service)

RE Restricted to a group specified by the consortium (including the Commission Service)

CO Confidential, only for members of the consortium (including the Commission Service) CO

Page 2: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 2 of 32

Document H is tory

Version Date Author Summary of Main Changes

1.0 01-04-2013 Giancarlo Teti (RT) First version of the Deliverables

1.3 12/02/2014 Giancarlo Teti Final version

Page 3: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 3 of 32

Table o f Contents

Executive summary........................................................................... 4

List of Annexes ................................................................................. 5

1 Introduction ............................................................................. 6

2 Mobile Base ............................................................................ 10

2.1 List of Contents in Annex 1.......................................................................... 11

3 Container and Rollers Conveyor.............................................. 12

3.1 List of Contents in Annex 1.......................................................................... 13

4 User Support Handle............................................................... 14

4.1 List of Contents in Annex 1.......................................................................... 14

5 Motor Driver ........................................................................... 15

5.1 List of Contents in Annex 2.......................................................................... 17

6 Head/Bin Driver ..................................................................... 18

6.1 List of Contents in Annex 3.......................................................................... 19

7 Eye PCB .................................................................................. 20

7.1 List of Contents in Annex 4.......................................................................... 20

8 Power Board........................................................................... 21

8.1 List of Contents in Annex 5.......................................................................... 22

9 Software Architecture............................................................. 23

9.1 List of Contents in Annex 6.......................................................................... 24

10 Robot-Era Outdoor Services.................................................... 26

10.1 Drug and Shopping Delivery Scenario ........................................................... 26

10.2 Outdoor Walk ............................................................................................ 31

Page 4: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 4 of 32

Execut ive summary

This document is an attachment to Deliverable D6.2 “First outdoor robotic platform

prototype for the first experimental loop” which formally is a prototype and describes the

new hardware and software components developed to update and improve the existing

Outdoor Robot and to adapt the platform for implementing the Robot-Era services.

More in details this document describes:

− the current state of the Outdoor Robot hardware and software architecture;

− the mobile base;

− the container with roller conveyor;

− the user support handle;

− the motor driver;

− the head-bin driver;

− the eye PCB;

− the power board;

− The robot control software.

Details related to the design of the new components are attached to this document as

annexes.

The design of the new components to update, improve and adapt the platform for

implementing the Robot-Era services has been based on the requirements and specifications

reported in deliverable D6.1 “Report on specifications and middleware architecture” which in

their turn have been defined on the basis of the description of the Robot-Era services

identified in Task 2.3 “Robotic service optimization and design” of WP2 “User and town

centred design of Robot-Era services” and reported in Section 4.4 “Structure of the main

services identified in Task 2.3” of Deliverable D2.2 “First report on the structures of Robot-

Era services”.

The document describes also the implementation of the Robot-Era Outdoor Services from

the point of view of the outdoor Robot.

Finally, updated releases of this document and his annexes will be released up to the end of

the Robot-Era project as soon as new update and new components will be developed.

Page 5: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 5 of 32

L ist of Annexes

Annex 1 – Mechanical Drawings

1. Mechanical Drawings of the Mobile Base

2. Mechanical and Electrical Specification of Motor Swissdrive 400T

3. Mechanical Drawings of the Container

4. Mechanical Drawings of the Support Handle

Annex 2 – Motor Driver

5. DustCart Motor Driver Specifications.

6. DustCart Motor Driver Schematic

7. DustCart Motor Driver H-Bridge Schematic

8. DustCart Motor Driver CAN Bus Protocol

Annex 3 – Head-Bin Driver

9. DustCart Head-Bin Driver Specifications

10. DustCart Head-Bin Driver Schematic

11. DustCart Head-Bin Driver CAN Bus Protocol

Annex 4 – Eye PCB

12. DustCart Eye PCB Specifications

13. DustCart Eye PCB Schematic

Annex 5 – Power Board

14. DustCart Power Board Specifications

15. DustCart Power Board Schematic

Annex 6 – Software Architecture

16. DustCart ROS Architecure

17. DustCart ROS launch file

Annex 7 - Manuals

18. DustCart Quick Manual – Hardware

Page 6: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 6 of 32

1 Introduct ion

The existing outdoor robot DustCart has been updated in order to improve performances

and robustness of the system and to implement the robot era services. More in details

updates and new developments concerns:

− the mobile base to increase the robustness of the robot for navigating in urban

environment;

− the container to implement goods exchange with the condominium robot;

− the user support handle to allow the user to walk close to the robot;

− the localization system;

− the electronics for the control of the mobile base, the head and the container;

− the software.

The new mobile base consists of a mechanical chassis with two central actuated wheels

and four passive rear wheels. The 6 wheels are linked by joints and shock absorbers

allowing the robot to adapt to and compensate road disconnections and to guarantee

constant adherence of the driving wheels to the ground.

The new container consists of a box with actuated rollers on the bottom which can roll

back and forth allowing a box to move outwards and inwards for implementing goods

exchange, and new opening mechanism has been developed to open and close the

container.

The new user support handle consist of a mechanical support fixed on the left side of the

robot frame, a pillow for the user arm and a joystick.

The new localization system consists of two GPS with differential correction applied (DGPS)

and two antennas mounted on the back of the robot providing robot position and orientation

in outdoor.

The electronics of the system has been partially renewed and new electronic boards have

been developed: the ‘motor driver’ for the control of the mobile base, the ‘head-bin

driver’ for the control of the head, the ‘eye PCB’ for the eyes, the container and the

rollers, the ‘power board’ for the management of the power of the robot.

Finally, the ‘robot control software’ (system supervisor and navigation module) has been

completely rewrote from scratch and integrated into ROS and a ’ROS/PEIS interface’ has

been developed to integrate DustCart into the PEIS ecology.

Figure 1. The old and new DustCart robot.

Page 7: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 7 of 32

Figure 2. The new mobile base and the new container with rollers.

Figure 3. The user support handle and the new container opening mechanism.

Page 8: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 8 of 32

Figure 4. The new hardware architecture.

Page 9: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 9 of 32

Figure 5. Position of the new ‘head-bin driver’, ‘motor driver’, power board and

differential gps in the robot.

Page 10: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 10 of 32

2 Mobi le Base

The mobile base consists of a mechanical chassis with two central actuated wheels

(Swissdrive 400 T hub motor with electromagnetic brake and encoder by Micro-Motor AG)

and four passive front and rear wheels. The 6 wheels are linked by joints and shock

absorbers (BITUBO SC006YXB01) with a degree of freedom allowing the robot to adapt to

and compensate road disconnections.

Figure 6. The 3D design of new mobile base.

For each side of the base the adaptation mechanism consist of two arms (front and rear)

and two pivots (front and rear) and linked together with a joint. The two arms rotate on

their pivot and rotation is limited by the joint and regulated by the shock absorber. The

possible motions of the arms are shown in the Figure 7.

Figure 7. The adaptation mechanism of the mobile base.

Page 11: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 11 of 32

Figure 8. Dimension of the mobile base.

Figure 9. The mobile base.

For each side of the base the adaptation mechanism consist of two arms (front and rear)

and two pivots (front and rear) and linked together with a joint. The two arms rotate on

their pivot and rotation is limited by the joint and regulated by the shock absorber. The

possible motions of the arms are shown in the Figure 7.

Mechanical drawings of the mobile base are reported in Annex 1 section “Mechanical

Drawing of the Mobile Base”.

The drive wheels and motors are Swissdrive 400 T (by Micro-Motor AG, Switzerland). The

Swissdrive 400 T is a hub motor with electromagnetic brake and encoder, voltage 24VDC,

power 400W, max speed 165 RPM, gear ratio 8.78:1, encoder 40 pulses per rotation,

nominal wheel diameter 33.8 cm. Mechanical drawings and specifications of the Swissdrive

400 T mobile base are reported in Annex 1 section “Mechanical and Electrical Specification

of Motor Swissdrive 400T”.

2 . 1 L i s t o f C o n t e n t s i n A n n e x 1

− Mechanical Drawings of the Mobile Base

− Mechanical and Electrical Specification of Motor Swissdrive 400T

Page 12: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 12 of 32

3 Container and Rol lers Conveyor

The container consists of a box with an open side on the back and 10 rollers on the bottom.

Rollers are coupled two by two alternatively on the left and right side of the container in

order to form a single chain by means of pulleys and transmission belts. A motor on the

back of the container is linked to the first roller and moves the rollers chain back and forth.

IR receiver and transmitter are positioned on the front and back of the container to detect

the presence and the movement of objects on the rollers. Available space for objects in the

container is 50 x 34 x 30 cm.

Figure 10. The 3D design of new container with rollers.

Figure 11. Available space in the container.

A second motor positioned on the front of the robot frame allows the container to be opened

and closed. For this purpose, two limit switches (magnetic reeds) are positioned on the left

side of the robot frame to detect the closing and opening position of the container. A

magnet, mounted on the right side of the container in correspondence of the reeds,

activates the back reed when the container is closed and the front reed when the container

Page 13: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 13 of 32

is opened. Finally a solenoid mounted on the left side of the robot frame allows to

lock/unlock the container.

Figure 12. The opening/closing components of the container.

Finally, to facilitate transportation and exchange of goods with the condominium robot a box

containing the goods of dimension 25 x 25 x 25 cm, about 15 l, is used.

Figure 13. The box for object transport.

Mechanical drawings of the container are reported in Annex 1 section “Mechanical Drawing

of the Container”.

3 . 1 L i s t o f C o n t e n t s i n A n n e x 1

− Mechanical Drawings of the Container

Page 14: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 14 of 32

4 User Support Handle

The user support handle consist in a mechanical plate supporting a pillow and a joystick.

The plate is mounted on the left side of the robot thanks to two flanges fixed to the robot

mechanical frame and can be removed form the robot. The height of the handle can be

manually regulated from 100cm to 110 cm according to the user height. Mechanical

drawings of the support handle are reported in Annex 1 section “Mechanical Drawing of the

Support Handle”.

Figure 14. The 3D design of user support handle.

Figure 15. The 3D design of user support handle.

4 . 1 L i s t o f C o n t e n t s i n A n n e x 1

− Mechanical Drawings of the User Support Handle

Page 15: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 15 of 32

5 Motor Dr iver

The ‘motor driver’ implements a PI control for two DC brushed/brushless motor with

encoders and its main input/output communication interface is CAN bus. Shortly, the ‘motor

driver’ is powered with 24 VDC, receives high level commands (linear and angular speeds of

the robot) on the CAN bus, enable and disable the motor brakes, computes the proper left

and right motor speeds, reads the encoder pulses, implements the PI control, powers the

motors providing two PWM signals and monitor the current for each motor.

Figure 16. The motor driver.

Figure 17. General scheme of motor driver.

More in details, the ‘motor driver’ consists of two boards: a real ‘motor driver’ board based

on a microcontroller and implementing the low power logic of the control of the motors and

a ‘H-bridge’ board hosting the current sensors and implementing two H bridges for powering

the motors. The ‘motor driver’ board is based on a STM32F103 (part number

STM32F103RBT) microcontroller from the STM32 family by ST Microelectronics. The

STM32F103 is a 32 bit micro controller with CPU ARM Cortex™-M3, 72 MHz maximum

frequency, 256 Kbytes of Flash memory and 20 Kbytes of SRAM. The micro is provided with

Page 16: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 16 of 32

3 x 12 bit ADCs, 2 x 12 bit DAC, 38 digital input/output, two quadrature encoder inputs, 2 ×

16-bit motor control PWM, CAN, USB and UART interfaces and is powered with 3.3V. The

PWM control of the motor has been realised using two L6388E L6206 by ST Microelectronics.

The schematics of the ‘motor driver’ and ‘H-bridge’ boards are reported in Annex 2 section

“DustCart Motor Driver Schematic” and “DustCart Motor Driver H-Bridge Schematic”.

The PCB layouts, interfaces and mechanical specifications of the ‘motor driver’ and ‘H-

bridge’ boards are reported in Annex 2 section “DustCart Motor Driver Specifications”.

Table 1. DustCart motor driver specification

Specifications

Power 24VDC, 40 A

Motor 2 x 24VDC, max 20 A (~400W) brushed/brushless motors

Brakes 2 x 24VDC, 0.3 A

Encoders 2 x quadrature encoders, 5V

Communication CAN bus up to 1Mbps

The ‘motor driver’ board receive commands for the motor from the CAN bus. In particular,

the robot receives the desired robot linear speed in m/s (speed_ms) and the robot angular

speed in rad/s (turn_rs). From these parameters the ‘motor driver’ computes the left target

motor speed and the right target motor speed in encoder pulses according to the following

formulas:

rsturndistwheel

msspeedspeedmotor _2

__.1_ ⋅+=

rsturndistwheel

msspeedspeedmotor _2

__.2_ ⋅−=

π⋅⋅⋅−=

diawheel

trevxcountsspeedmotorettpulsesencoder

_

__.arg._

where:

wheel_dist is the distance between the robot wheels in m

wheel_dia is the wheel diameter in m

count_per_rev is the encoder pulses per wheel revolution

t is the time of the control period.

The ‘motor driver’ implements a PI control for each motor computing the PWM or duty cycle

according to this formula:

scaling

IP

K

ErrKtKErrcycledutyprevcycleduty

)(___ ∑⋅⋅+⋅

+=

where:

Err is the error between encoder_pulses.target and the actual encoder pulses.

The KP and KI constants can be set for each motor as well as wheel diameter, wheels

distance, max duty cycle and max current for each motor.

Page 17: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 17 of 32

The time of the control period is 20 ms. Moreover, for security reason the speed command

should be provided to the board every 100 ms: if the speed command is not provided for

more than 500 ms the board stop the motors. The status of the ‘motor driver’, including

current robot linear and angular speed, total current, and left and right motor status and

power input level is provided on the CAN bus every 20 ms.

Table 2. DustCart robots control parameters

Wheel

Diameter

Wheel

Distance

KP

Left

KI

Left

KP

Right

KI

Right

Pulse

per Rev

Max

Duty

Max

Current

DustCart 1 Blue 33.50 60.00 200 50 200 50 702 80 22

DustCart 2 Green 33.50 52.80 200 50 200 50 702 80 22

The CAN bus protocol of the ‘motor driver’ board is reported in Annex 2 section “DustCart

Motor Driver CAN Bus Protocol”.

Figure 18. DustCart motor driver connection scheme.

5 . 1 L i s t o f C o n t e n t s i n A n n e x 2

− DustCart Motor Driver Schematic

− DustCart Motor Driver H-Bridge Schematic

− DustCart Motor Driver Specifications

− DustCart Motor Driver CAN Bus Protocol

Page 18: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 18 of 32

6 Head/Bin Driver

The ‘head bin driver’ controls the robot head, the LEDs in the left and right eye, the

opening/closing mechanism of the container, the rollers, and the IR transmitters and

receivers connected to the rollers. The ‘head bin driver’ is powered with 24 VDC and

receives high level commands on the CAN bus.

Figure 19. The ‘head bin driver’ board.

Figure 20. General scheme of the ‘head bin driver’ connections.

Page 19: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 19 of 32

More in details, the ‘head bin driver’ consists of a boards based on the the STM32F103 (part

number STM32F103RBT) microcontroller from the STM32 family by ST Microelectronics. The

STM32F103 is a 32 bit micro controller with CPU ARM Cortex™-M3, 72 MHz maximum

frequency, 256 Kbytes of Flash memory and 20 Kbytes of SRAM. The micro is provided with

3 x 12 bit ADCs, 2 x 12 bit DAC, 38 digital input/output, two quadrature encoder inputs, 2 ×

16-bit motor control PWM, CAN, USB and UART interfaces and is powered with 3.3V.

Figure 21. Connections between head-bin driver and its devices.

The schematic of the ‘head bin driver’ is reported in Annex 3 section “DustCart Head-Bin

Driver schematic”. The PCB layouts, interfaces and mechanical specifications of the ‘head

bin driver’ board is reported in Annex 3 section “DustCart Head-Bin Driver Specifications”.

The CAN bus protocol of the ‘head bin driver’ board is reported in Annex 3 section “DustCart

Head-Bin Driver CAN Bus Protocol”.

6 . 1 L i s t o f C o n t e n t s i n A n n e x 3

− DustCart Head-Bin Driver Schematic

− DustCart Head-Bin Driver Specifications

− DustCart Head-Bin Driver CAN Bus Protocol

Page 20: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 20 of 32

7 Eye PCB

The ‘eye PCB’ controls the LEDs of the dustcart robot eyes. The ‘eye PCB’ hosts 29 LEDs

divided into three groups of LEDs: red LEDS (8), green LEDs (13) and yellow LEDs (8). Each

group of LED can be switched on, in fix or blink mode, or off separately. The PCB can be

configured both has left eye or right eye.

Figure 22. LEDs position in the left and right eye PCB.

The schematic of the ‘eye PCB’ is reported in Annex 4 section “DustCart Eye PCB

Schematic”. The PCB layouts and interfaces specifications are reported in Annex 4 section

“DustCart Eye PCB Specifications”.

7 . 1 L i s t o f C o n t e n t s i n A n n e x 4

− DustCart Eye PCB Schematic

− DustCart Eye PCB Specifications

Page 21: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 21 of 32

8 Power Board

The ‘power board’ manages the power of the whole robot. The power board is powered with

24V from battery and distributes the power to all the robot devices, i.e. drivers, actuators,

sensors, PC, touch screen, etc.

The power board is switched on with a ‘key’ and its status (on/off) is shown by a green LED.

Some of the power outputs of the board (typically low power outputs for ‘not dangerous’

devices) are automatically powered when the board is on. Other power outputs (typically

high power outputs for ‘dangerous’ devices such as motor driver) are controlled also by two

emergency inputs. In total, the board has 6 key switched 24V power outputs (max 5A for

each output), 5 emergency switched 24V power outputs (3 max 5A, 2 max 50A) and a 12V

key switched power output (max 1A). Both emergency inputs must be closed to allow power

outputs.

The board has two power inputs, one for the key switched outputs and one for the

emergency switched outputs. The power inputs lines are protected by two different fuses.

Figure 23. Scheme of the ‘power board’.

If the power input (battery level) is lower than 22.6V the power board will not switch on. If

during normal activities power input (battery level) is lower than 20.5V the board switches

off.

The schematic of the ‘power board’ is reported in Annex 5 section “DustCart Power Board

schematic”. The PCB layouts, interfaces and mechanical specifications of the ‘power board’

are reported in Annex 5 section “DustCart Power Board Specifications”.

The power connections of DustCart, including batteries and battery charger connections,

are shown in Figure 24. Fuse 1 is 15A, fuse 2 is 50A.

Page 22: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 22 of 32

Figure 24. Scheme of power connections.

8 . 1 L i s t o f C o n t e n t s i n A n n e x 5

− DustCart Power Board Schematic

− DustCart Power Board Specifications

Page 23: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 23 of 32

9 Software Architecture

The software architecture of DustCart is based on the Robot-Era general architecture which

is based on a two-layer reference architecture, where:

− at the upper layer, called “Ecology Layer”, the PEIS middleware provides seamless

integration among the heterogeneous Robot-Era devices, including the outdoor robot;

− at the lower layer, called “Device Layer”, each robot and device uses its specific

architecture and middleware internally, while externally it presents a uniform interface

toward the ecology layer through PEIS.

The abstract robot architecture (Device Layer) described in details in Section 6 of D7.1 is

shown in Figure 25.

Figure 25. Abstract architecture of a Robot-Era robotic platform (from Deliverable D7.1

“Report on the interoperability aspects of Robot-Era services”)

The specific architecture of DustCart is an "instance" of the general abstract robot

architecture and is shown in Figure 26.

In DustCart ROS is the middleware software and provides the interface to access all the low

level hardware components (mobile base, robot head, bin/container, GUI, joystick, ecc.)

through the CAN bus or other specific ROS drivers. The ‘robot control system’ manages the

robot hardware components and the internal robot activities including navigation and the

PEIS/ROS interface provides to the PEIS ecology the robot high level functions useful to

implement the Robot-Era services.

The PEIS/ROS interface is used to interact with all the PEIS ecology components, such as

domestic robot, condominium robot, PEIS configuration planner module (CPM), home

sensors and actuators, high level services, etc.

Page 24: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 24 of 32

The CPM or other PEIS components provide commands as PEIS tuples to the robot through

the PEIS/ROS interface which translates these tuples into proper ROS commands for the

robot control system. Viceversa, the PEIS/ROS interface translates commands or status

messages from the robot control system into PEIS tuples for the CPM or other PEIS

components to inform about the status of its activities or to send commands.

Figure 26. The software architecture of DustCart, instance of the general abstract

architecture of a Robot-Era robotic platform

In Figure 26 is shown the detailed ROS architecture of DustCart: details of each node are

described in Annex 6 section “DustCart ROS Architecure”.

A ROS launch file called “dcart.launch” has been created to configure and launch the ROS

nodes of DustCart. To start DustCart just run the following commands:

roscore &

roslaunch dcart dcart.launch

The current ROS launch file is reported in Annex 6.

9 . 1 L i s t o f C o n t e n t s i n A n n e x 6

− DustCart ROS Architecure

− DustCart ROS launch file

Page 25: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 25 of 32

Figure 27. The new software architecture.

Page 26: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 26 of 32

10 Robot-Era Outdoor Serv ices

This section describes the implementation of the outdoor Robot-Era services from the point

of view of the outdoor robot. More details related to the whole implementation of the

services, involving also user, domestic robot, condominium robot, user interfaces

(tablet/voice) are reported in the documents “Drug and Shopping Delivery Scenario

Storyboard”, “Outdoor Walking Support Scenario Storyboard” and “Garbage

Collection Scenario Storyboard” which describe the whole PEIS protocol (PEIS tuples) for

implementing the Robot-Era services.

All services are started by the PEIS Configuration Planner Module (CPM) which send proper

tuples over the PEIS middleware to the outdoor robot. PEIS tuples are catch by the

PEIS/ROS interface of DustCart which manages all the actions essential to achieve the

assigned task. When necessary, for example during a goods exchange procedure, outdoor

robot communicates directly with the condominium robot using the PEIS middleware.

1 0 . 1 D r u g a n d S h o p p i n g D e l i v e r y S c e n a r i o

The following steps summarize the main actions of the Drug/Shopping Delivery Scenario as

reported in the document “Drug and Shopping Delivery Scenario Storyboard”:

− The user orders the drugs/shopping by means of the tablet.

− The order list is sent through the internet to the pharmacy/grocery.

− CPM commands the robot to move to the pharmacy/grocery and wait for it to be there.

− The CPM commands the robot to start HRI for the pharmacy/grocery, and the

pharmacist/shopkeeper puts the drugs/shopping into the outdoor robot opening its

container by means of the touch screen.

− The CMP commands the outdoor robot to move in front of the condominium entrance

and wait for it to be there.

− CMP commands outdoor robot and condominium robot to perform the goods exchange

procedure and wait for its execution.

− CMP command condominium robot to move in front of user home door.

For the first experimental loop a shop has been simulated and the shop location has been

chosen close to the main entrance of the Domocasa Lab. In Figure 28 is shown the map of

the environment surrounding the Domocasa lab with the point selected as location for the

simulated shop (point Pshop). The home location or starting point of the outdoor robot (point

P0) has been selected just in front of the main entrance of the Domocasa building: P0

coincides with the origin of the robot map and its GPS UTM coordinates are 4823902.50 N,

638280.10 E.

To reach the shop the CPM first commands the robot to move from P0 to the intermediate

point P1 and then to the final location Pshop. The same on the way back. The outdoor robot

uses the GPS to localize itself during the navigation to the shop and back. Coordinates of

points P1 and Pshop with respect to the reference frame defined in P0 are shown in Figure 28.

When the outdoor robot is in Pshop CPM starts HRI on the outdoor robot: the user opens the

container with the touch screen and he puts the shop into the robot container. To facilitate

the goods exchange between outdoor robot and condominium robot, the box showed in

section 3 has been used to hold the goods.

When the outdoor robot is back in P0 CPM commands a goods exchange procedure to

outdoor robot and condominium robot. Condominium robot moves to the entrance hall of

Domocasa building in front of the main entrance door and wait for outdoor robot. Outdoor

robot reaches the exchange points defined in the middle of the main entrance of Domocasa

bulding. Since GPS doesn’t work well close to buildings, the outdoor robot uses two optical

Page 27: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 27 of 32

beacons detected with the laser to localize itself during the exchange of goods procedure.

The optical beacons have been placed on the sides of the main entrance of the Domocasa

building (Figure 29) and they define a new reference system with the origin in the middle of

them as shown in Figure 30. The goods exchange point has been defined in the middle of

the Domocasa building main entrance, i.e. the origin of the new reference system.

Figure 28. Outdoor surroundings of Domocasa lab and demo points.

Figure 29. Main entrance of Domocasa building and optical beacons.

Page 28: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 28 of 32

To reach the goods exchange point, the outdoor robot disables the GPS, enables the optical

beacon odometry and moves to the goods exchange point, rotates 180° in order to have the

container toward the entrance hall and it opens its container.

At this point it commands the condominium robot to dock itself. When dock is terminated

the condominium robot starts its roller in and informs outdoor robot to start its roller out to

transfer the box from outdoor robot to condominium robot. When transfer has been

completed, condominium robot undock itself and informs outdoor robot to close the

container. Outdoor robot close the container and move back to its home position.

Figure 30. Outdoor The beacons and the goods exchange point.

In summary, for the outdoor robot, the steps are:

1. CPM commands the robot to move to P1

2. CPM commands the robot to move to Pshop

3. CPM starts HRI on outdoor robot and shopkeeper puts the box in the container

4. CPM commands the robot to move to P1

5. CPM commands the robot to move to P0

6. CPM starts the goods exchange procedure:

− outdoor robot moves in the goods exchange point and open the bin

− outdoor robot commands condominium robot to dock itself

− condominium robot docks and commands outdoor robot to start its roller out

− the box moves from outdoor robot to condominium robot

− condominium robot commands outdoor robot to close the bin

− outdoor robot move back to P0

The following table shows an example of the communications between CPM, outdoor robot

and condominium robot to implement the shopping scenario as described above. Figure 31

and Figure 32 show trajectory performed by the outdoor robot to reach the simulated and

move back and the trajectory to reach the goods exchange position.

More details about the implementation of the goods exchange procedure are reported in

the document DustCart ROS Architecture, section “Node goods exchange”.

Page 29: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 29 of 32

Table 3. Example of communication between CPM, outdoor robot and

condominium robot to implement the shopping scenario

STEP COMMUNICATION MESSAGE TUPLE USER/ROBOT ACTIONS

CPM → OUTDOOR ROBOT MOVE TO P1 oro1.moveto.1

8.0 0.0 -1.57 MOVETO 8.0 0.0 -1.57

1

OUTDOOR ROBOT → CPM MOVE TO

COMPLETED

oro1.moveto.1

COMPLETED

CPM → OUTDOOR ROBOT MOVE TO Pshop oro1.moveto.2

11.0 -20.0 -1.57 MOVETO 11.0 -20.0 -1.57

2

OUTDOOR ROBOT → CPM MOVE TO

COMPLETED

oro1.moveto.2

COMPLETED

CPM → OUTDOOR ROBOT TAKE GOODS oro1.takegoods.1 ROBOT SHOWS HRI FOR TAKE

GOODS ACTIVITY

USER PRESS THE BUTTON TO OPEN

THE CONTAINER, USER PUTS THE

ORDER IN THE ROBOT

USER PRESS THE BUTTON TO CLOSE

THE CONTAINER

3

OUTDOOR ROBOT → CPM TAKE GOODS

COMPLETED

oro1.takegoods.1

COMPLETED

CPM → OUTDOOR ROBOT MOVE TO P1 oro1.moveto.3

8.0 0.0 -3.14 MOVETO 8.0 0.0 -3.14

4

OUTDOOR ROBOT → CPM MOVE TO

COMPLETED

oro1.moveto.3

COMPLETED

CPM → OUTDOOR ROBOT MOVE TO P0 oro1.moveto.4

0.0 0.0 -2.35 MOVETO 0.0 0.0 -2.35

5

OUTDOOR ROBOT → CPM MOVE TO

COMPLETED

oro1.moveto.3

COMPLETED

CPM → OUTDOOR ROBOT GOODS

EXCHANGE

oro1.goodsexchange.1

OUT START DOCKING PROCEDURE

DISABLE GPS

ENABLE BEACON ODOM

MOVETO 0 0 -3.14

OPEN THE BIN

OUTDOOR ROBOT →

CONDOMINIUM ROBOT DOCK

coro1.docking.0

DOCK_ON

DUSTCART_USE_POSE X Y θ

CONDOMINIUM ROBOT →

OUTDOOR ROBOT START ROLLER

oro1.startroller.1

OUT START ROLLER OUT

CONDOMINIUM ROBOT →

OUTDOOR ROBOT BIN CLOSE oro1.closebin.2 BIN CLOSE

MOVETO -8 0 0

DISABLE BEACON ODOM

ENABLE GPS

6

OUTDOOR ROBOT → CPM

GOODS

EXCHANGE

COMPLETED

oro1.goodsexchange.1

COMPLETED

Page 30: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 30 of 32

Figure 31. Outdoor Robot trajectory from P0 to Pshop and back during an experiment.

Figure 32. Outdoor Robot trajectory from P0 to goods exchange position during an experiment.

Page 31: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 31 of 32

1 0 . 2 O u t d o o r W a l k i n g S u p p o r t

In the outdoor walking support scenario the user moves ‘arm in arm’ with the robot: the

user stands on the robot side, rest his forearm on the support handle and control the robot

with the joystick. The support handles is mounted on the right side of the robot and the

joystick is connected to the USB of the PC. During the walk the robot uses the laser to

detect obstacles in front of the robot and/or the user, and any obstacles along the path is

signalled with acoustic (beep) and visual (red led blinking) signals.

Three control modes are available:

1. the robot just warns the user about obstacles with the acoustic signal and it’s up to

the user to avoid the obstacle.

2. The robot warns the user about obstacles and if an obstacle is on the user or robot

path the robot doesn’t move forward to avoid collision. Only turns are allowed to the

user and it’s up to him to avoid the obstacle.

3. The robot warns the user about obstacles and avoid the obstacle autonomously

without help of the user and independently of the user commands. The user must

follow the robot and take again control of the robot once the obstacle has been

avoided.

The user controls the robot through the joystick lever and buttons:

− move the joystick lever forward to move the robot forward.

− move the joystick lever left to turn on place the robot left (left spin).

− move the joystick lever right to turn on place the robot right (right spin).

− move the joystick lever forward and left to turn the robot left.

− move the joystick lever forward and right to turn the robot right.

− move the joystick lever back to move the robot back. Reverse is allowed only in

mode 2 and 3.

Commands associated to buttons are:

− button 2 to play the horn

− button 3 to decrease robot speed (decrement unit is 0.025 m/s)

− button 4 to increase robot speed (increment unit is 0.025 m/s)

− button 5 to enable motor driver

− button 6 to disable motor driver

− button 7 to release mobile base brakes

− button 8 to start walk service and set the walk mode

Default robot speed is 0.35 m/s. Minimum speed is 0.15 m/s. Maximum speed is 0.8 m/s.

Pressing more times button 8 changes robot control mode. Pressing many times button 8

changes the control mode: current control mode and current maximum robot speed are

shown on the robot GUI. The outdoor walk service can be activated by the CPM with a

specific tuple or directly by the user pressing button 8 on the joystick.

More details about the software implementation of the outdoor walk service are reported in

the document DustCart ROS Architecture, section “Node walk”.

Page 32: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 - First outdoor robotic platform

prototype for the first experimental loop

File name: robot-era_wp6_d6.2_v1.3.doc

Leader contractor: RT

Participant contractors: - Page 32 of 32

In the first experiment loop the robot was placed in front of the main entrance of the

Domocasa building and user were asked to moves with the robot follow a path which include

also passing in between obstacles represented by street poles: the path is shown in Figure

33. A path followed by a user is shown in Figure 34.

Figure 33. The path the user were asked to follow during the experiment.

Figure 34. A path followed by a user during the first loop of experiment.

Page 33: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

D6.2 – Annex 6

File name: robot-era_wp6_d6.2_annex_6.doc

Leader contractor: RT

Participant contractors: - Page 1 of 1

Grant Agreement number: 288899 Project acronym: Robot-Era

Project title: Implementation and integration of advanced Robotic systems and intelligent Environments in real scenarios for ageing population

Funding scheme: Large-scale integrating project (IP) Call identifier: FP7-ICT-2011.7 Challenge: 5 – ICT for Health, Ageing Well, Inclusion and Governance

Objective: ICT-2011.5.4 ICT for Ageing and Wellbeing Project website address: www.robot-era.eu

D6.2 Annex 6

Software Architecture

Due date of deliverable: [31/03/2013]

Actual submission date: [31/01/2014]

Start date of project: 01/01/2012 Duration: 48 months

Organisation name of lead contractor for this deliverable: RT

Deliverable author: Giancarlo Teti

Version: [1.0]

Project co-funded by the European Commission within the Seventh Framework

Programme (2007-2013)

Dissemination Level

PU Public

PP Restricted to other programme participants (including the Commission Service)

RE Restricted to a group specified by the consortium (including the Commission Service)

CO Confidential, only for members of the consortium (including the Commission Service) CO

Page 34: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

Grant Agreement number: 288899 Project acronym: Robot-Era

Project title: Implementation and integration of advanced Robotic systems and intelligent Environments in real scenarios for ageing population

Funding scheme: Large-scale integrating project (IP)

Call identifier: FP7-ICT-2011.7 Challenge: 5 – ICT for Health, Ageing Well, Inclusion and Governance

Objective: ICT-2011.5.4 ICT for Ageing and Wellbeing Project website address: www.robot-era.eu

DustCart ROS Architecure

Due date of deliverable: [31/03/2013]

Actual submission date: [31/01/2014]

Start date of project: 01/01/2012 Duration: 48 months

Organisation name of lead contractor for this deliverable: RT Deliverable author: Giancarlo Teti

Version: [1.0]

Project co-funded by the European Commission within the Seventh Framework

Programme (2007-2013)

Dissemination Level

PU Public

PP Restricted to other programme participants (including the Commission Service)

RE Restricted to a group specified by the consortium (including the Commission Service)

CO Confidential, only for members of the consortium (including the Commission Service) CO

Page 35: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 2 of 41

Document H is tory

Version Date Author Summary of Main Changes

1.0 01-06-2013 Giancarlo Teti (RT) First version of the document

1.1 31/01/2014 Giancarlo Teti Last version

Page 36: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 3 of 41

Table o f Contents

Introduction ..................................................................................... 4

1 Package dcart........................................................................... 6

1.1 Node can .................................................................................................... 6

1.2 Node net ..................................................................................................... 8

1.3 Node dcart ................................................................................................ 10

1.4 Node dcart_tf ............................................................................................ 13

1.5 Node command.......................................................................................... 14

1.6 Node log ................................................................................................... 15

1.7 Node gps .................................................................................................. 16

1.8 Node beacon_odom.................................................................................... 18

1.9 Node odom................................................................................................ 20

1.10 Node move_base ....................................................................................... 22

1.11 Node goods_exchange ................................................................................ 25

1.12 Node walk ................................................................................................. 29

2 Package dcart_gui .................................................................. 32

2.1 Node gui ................................................................................................... 32

3 Package peis_ros.................................................................... 36

3.1 Node peis_ros............................................................................................ 36

4 Package novatel_driver .......................................................... 40

4.1 Node novatel_driver ................................................................................... 40

Page 37: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 4 of 41

Introduct ion

This document describes the ROS architecture of DustCart. The ROS nodes of the

architecture are divided into four ROS packages: dcart, dcart_gui, peis_ros and

novatel_driver.

The dcart package includes the ROS node that manages the robot:

− dcart: this node is the robot supervisor, manages the robot components, get commands

for the robot and publishes the robot status from/to ROS topics.

− can: this node is the ROS interface to the CAN bus, writes/reads messages to/from the

CAN bus and gets/publishes these messages from/to ROS topics.

− net: this node is a TCP/IP server and allows remote Ethernet access to the CAN bus.

The node gets/sends messages from/to client and publishes/get these messages from/to

ROS topics.

− dcart_tf: this node publishes the tf needed by ROS.

− command: this node allows to enter commands for the robot from the keyboard and

publishes these commands to ROS topics.

− log: this node logs all ROS messages published to the rosout topic to a file.

− gps: this is the interface with the Novatel GPS ROS driver and publishes to ROS topics

robot position and heading from the GPS.

− beacon_odom: this node computes robot position and orientation with respect to a

reference frame defined by two optical beacons placed in a known position in the

environment and detected by the laser.

− odom: this node computes and publishes robot odometry estimates on the base of

encoder readings, gps node input and/or beacon_odom node input.

− move_base: this node implements obstacle avoidance navigation of the robot on the

base of odom and laser inputs and compute robot linear and angular speed over the

time to reach a goal location.

− goods_exchange: this node implements the goods exchange outdoor robot and

condominium robot coordinating all the actions required to achieve the task.

− walk: this node implements the walk services, gets commands from the user through

the joystick and publishes linear and angular speed command to user input.

The dcart_gui package includes the ROS node that manages the robot GUI:

− gui: this node manages the GUI running on the touch screen, starts proper graphical

user interfaces, get commands from the user and publishes commands to ROS topics.

The peis_ros package implements the bridge between PEIS and ROS:

− peis_ros: this node gets PEIS tuples and publishes proper messages to ROS topics, vice

versa gets messages from ROS topics and publishes proper PEIS tuples.

Finally the novatel_driver package implements the driver for the Novatel GPS system:

− novatel_driver: the node manage the Novatel GPS, gets GPS position and heading

data and publishes GPS UTM coordinates and heading to ROS topics.

Details of each node are described in the next sections of this document.

Page 38: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 5 of 41

Figure 1. ROS architecture of DustCart

Page 39: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 6 of 41

1 Package dcart

1 . 1 N o d e c a n

The can node is a ROS driver for the PCAN-PCI board installed on the DustCart PC. The can

node reads and writes all messages from and to the CAN bus, publishes on the

dcart/canread topic all messages read from the CAN bus and writes to the CAN bus all

messages read on the topic dcart/canwrite.

Messages are mainly directed to ‘motor driver’ to control the mobile base and to the ‘head

bin driver’ to control robot head, eye and bin. Node frequency is 50 Hz. Details about the

CAN protocol are reported in the documents “DustCart Motor Driver CAN Bus Protocol” and

“DustCart Head Bin Driver CAN Bus Protocol”.

Figure 2. The can node topics.

Node name

can

Published Topics

dcart/canread (dcart/CAN_msg)

Messages read from the CAN bus.

Subscribed Topics

dcart/canwrite (dcart/CAN_msg)

Messages to write to the CAN bus.

Services

None

Parameters

None

Page 40: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 7 of 41

Command-Line Tools

rosrun dcart can

Source code

src/canlib.cpp

src/can.cpp

src/can_node.cpp

Page 41: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 8 of 41

1 . 2 N o d e n e t

The net node allows remote access over the Ethernet to the CAN bus of DustCart. The node

is a TCP/IP server and accept TPC/IP connections from remote clients on the socket port

3600: messages from the client are wrote to the CAN bus, messages from the CAN bus are

sent to the remote client. Messages from the remote TCP/IP client are directed to ‘motor

driver’ to control the mobile base and to the ‘head bin driver’ to control head, eye and bin.

Vice versa, messages to the remote TCP/IP client are mainly status messages of these

components.

Messages from/to the remote client are arrays of 10 bytes: first two bytes are the CAN

message header (high bytes first), last 8 bytes are the CAN message payload.

The node publishes on the dcart/canwrite topic all messages from the remote TCP/IP

client and sends to the remote TCP/IP client all messages read on the topic dcart/canread.

The node publishes on the dcart/status topic the connection status: the string “client

connected” is published when the node accept a remote TCP/IP connection and the message

“client disconnected” is published when the connection is closed by the remote client. The

Node frequency is 10 Hz.

Figure 3. The net node topics.

Node name

net

Published Topics

dcart/canwrite (dcart/CAN_msg)

Messages to the CAN bus.

dcart/status (std_msgs/String)

− client connected published when a connection has been established

− client disconnected published when a connection has been closed

Subscribed Topics

dcart/canread (dcart/CAN_msg)

Messages from the CAN bus.

Page 42: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 9 of 41

Services

None

Parameters

None

Command-Line Tools

rosrun dcart net

Source code

src/net.cpp

src/net_node.cpp

Page 43: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 10 of 41

1 . 3 N o d e d c a r t

The dcart node is the supervisor of the outdoor robot. The node gets commands from the

other nodes and manages the robots components (base, head and bin or container) through

the CAN bus.

The node subscribes the dcart/command topic to get command from the other nodes and

the dcart/status topic to get the status from the other nodes. The node subscribes the

dcart/canread topic to get messages from ‘motor driver’ and ‘head bin driver’ through the

‘can’ node: status messages are read and the corresponding status is published to the

dcart/status topic. The node publishes messages to the dcart/canwrite topic to send

commands to ‘motor driver’ and to ‘head bin driver’ through the ‘can’ node.

The node subscribes the cmd_vel topic to get linear and rotational speed from the ‘walk‘

node and the ‘move_base’ node and to send the proper commands to the ‘motor driver’.

The node publishes the voltage battery level every 1 second to the battery topic.

When a remote client is connected through the ‘net’ node this is informed thoriugh the

dcart/status topic and all commands for the ‘motor driver’ are not send. The node frequency

is 20 Hz.

The node set the yellow LEDs to blink mode when the robot is moving, the green led on

when the status of gps is narrow (accuracy is good) and the red led on when the base

motors are disabled.

Figure 4. The dcart node topics.

Node name

dcart

Published Topics

battery (std_msgs/String)

− battery V published every second: V voltage battery level

dcart/canwrite (dcart/CAN_msgs)

CAN Messages for ‘motor driver’ and ‘head bin driver’ trough the ‘can’ node.

Page 44: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 11 of 41

dcart/status (std_msgs/String)

− bin is closed published when the bin status change to closed

− bin is open published when the bin status change to open

− bin undefined published when the bin status change to from

open or close to undefined

− roller in published when roller start moving in or backward

− roller out published when roller start moving out or forward

− roller off published when roller stop moving

− motor power on published when ‘motor driver’ and ‘head bin driver’ are powered

− motor power off published when ‘motor driver’ and ‘head bin driver’

are not powered

− motor enabled published when ‘motor driver’ have been enabled

− motor disabled published when ‘motor driver’ have been disabled

− moving published when the robot start moving

− stopped published when the robot stop moving

Subscribed Topics

dcart/command (std_msgs/String)

− base enable to ‘motor driver’ to enable the base

− base disable to ‘motor driver’ to disable the base

− base brake to ‘motor driver’ to release the motor brakes

− base stop to ‘motor driver’ to stop current motion

− base move V T to ‘motor driver’ to set robot linear V and rotational speed T

− base moveto X Y θ to ‘move_base’ node to set robot target to X Y θ (m/rad)

− bin open to ‘head bin driver’ to open the bin

− bin close to ‘head bin driver’ to close the bin

− bin discharge to ‘head bin driver’ to open the bin in discharge mode

− roller forward to ‘head bin driver’ to start roller in forward mode

− roller out to ‘head bin driver’ to start roller in forward mode

with automatic stop

− roller backward to ‘head bin driver’ to start roller in backward mode

− roller in to ‘head bin driver’ to start roller in backward mode

with automatic stop

− roller stop to ‘head bin driver’ to stop rollers

− head side to ‘head bin driver’ to move the head in the side position

− head front to ‘head bin driver’ to move the head in the front position

− head move P to ‘head bin driver’ to move the head in P position (deg)

Page 45: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 12 of 41

− led on to ‘head bin driver’ to switch on all LEDs

− led off to ‘head bin driver’ to switch off all LEDs

− led blink to ‘head bin driver’ to switch on in blink mode all LEDs

− led green on to ‘head bin driver’ to switch on green LEDs

− led green off to ‘head bin driver’ to switch off green LEDs

− led green blink to ‘head bin driver’ to switch on in blink mode green LEDs

− led red on to ‘head bin driver’ to switch on red LEDs

− led red off to ‘head bin driver’ to switch off red LEDs

− led red blink to ‘head bin driver’ to switch on in blink mode red LEDs

− led yellow on to ‘head bin driver’ to switch on yellow LEDs

− led yellow off to ‘head bin driver’ to switch off yellow LEDs

− led yellow blink to ‘head bin driver’ to switch on in blink mode yellow LEDs

dcart/status (std_msgs/String)

− client connected from ‘net’ node to be informed that a remote client

is connected. Commands for the mobile base are disabled

− client disconnected from ‘net’ node to be informed that a remote client

disconnected. Commands for the mobile base are enabled.

dcart/canread (dcart/CAN_msgs)

CAN Messages from ‘motor driver’ and ‘head bin driver’ trough the ‘can’ node.

cmd_vel (geometry_msgs/Twist)

− Robot linear and rotational speed to be sent to ‘motor driver’. Analogous to a

‘move’ command for the dcart/command topic.

Services Client

None

Parameters

None

Command-Line Tools

rosrun dcart dcart

Source code

src/ dcart.cpp

src/ dcart_node.cpp

Page 46: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 13 of 41

1 . 4 N o d e d c a r t _ t f

The dcart_tf node publishes every 10 ms the tf between “/map” and “odom” and between

“base_link” and “laser”. Node frequency is 100 Hz.

Node name

dcart_tf

Published Topics

None

Subscribed Topics

None

Services

None

Parameters

None

Command-Line Tools

rosrun dcart dcart_tf

Source code

src/dcart_tf.cpp

Page 47: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 14 of 41

1 . 5 N o d e c o m m a n d

The command node allows to send commands to the DustCart supervisor from the

standard input, e.g. the keyboard. The node publishes the lines entered on the standard

input to the dcart/command topic.

Figure 5. The net node topics.

Node name

command

Published Topics

dcart/command (std_msgs/String)

Commands to the robot.

Subscribed Topics

None

Services

None

Parameters

None

Command-Line Tools

rosrun dcart command

Source code

src/command.cpp

Page 48: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 15 of 41

1 . 6 N o d e l o g

The log node logs on a text file all ROS messages published by the DustCart ROS nodes.

The node creates or opens in append the file “dcart_log_YY_MM_DD.txt” in the .ros folder

and subscribes the rosout topic. All messages on the rosout topic are wrote to the log file

and to the standard output. Node frequency is 100 Hz.

Figure 6. The log node topics.

Node name

log

Published Topics

None

Subscribed Topics

rosout (rosgraph_msgs/Log)

Messages from rosout.

Services

None

Parameters

None

Command-Line Tools

rosrun dcart log

Source code

src/log.cpp

src/log_node.cpp

Page 49: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 16 of 41

1 . 7 N o d e g p s

The gps node is the interface with the Novatel GPS ROS driver. The node subscribes the

Novatel ROS driver topics and depending on the GPS status publishes the robot coordinates.

The Node frequency is 100 Hz.

The node subscribes the novatel/position_solution topic where the GPS status and the

position in UTM coordinates are published and the novatel/heading_solution where the

GPS align status and heading position are published. Every 5 seconds, if both status

solutions are “NARROW_INT” the node publishes to the dcart/gps_pos topic the position

and orientation in the robot map. Robot position is obtained from the GPS UTM coordinates,

which is the antenna position, referred to the origin of the robot coordinate system minus

the UTM coordinate of the map origin. Robot heading is obtained from GPS heading sign

reversed, in fact GPS heading is clockwise while ROS map heading is counter clockwise.

The map origin in UTM coordinate and the position of the antenna with respect to the robot

frame origin can be set as ROS parameters named /gps/x_init, /gps/y_init, /gps/x_antenna

and gps/y_antenna.

The node subscribes also the dcart/command topic and publishes messages to the

dcart/status and dcart/command topics. The node publish to the dcart/command topic

the string ‘led green on’ to switch on the green LED and to the dcart/status topic the string

‘gps aligned’ when both solutions are NARROW_INT. The node publish to the

dcart/command topic ‘led green off’ to switch off the green LEDs and to the dcart/status

topic the string ‘gps NOT aligned’ when one solution is not NARROW_INT.

The command ‘gps init’ on the dcart/command topic set the map origin to the current GPS

UTM position.

Figure 7. The gps node topics.

Node name

gps_interface

Published Topics

dcart/command (std_msgs/String)

Commands for the LEDs showing the GPS solution status. Messages published:

− led green on: when both GPS solutions are narrow int

− led green off: when at least one GPS solutions is not narrow int

Page 50: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 17 of 41

dcart/status (std_msgs/String)

The GPS status. Messages published:

− gps aligned: when both GPS solutions are narrow int

− gps NOT aligned: when at least one GPS solutions is not narrow int

dcart/gps_pose (nav_msgs/Odometry)

The robot pose and orientation in local map reference frame.

dcart/command (std_msgs/String)

Commands for the GPS. Messages accepted:

− gps init: set map origin to the current GPS UTM pose.

Subscribed Topics

novatel/position_solution (novatel_msgs/Position)

GPS position status and GPS antenna UTM coordinates from the Novatel driver.

novatel/heading_solution (novatel_msgs/Heading)

GPS align status and antennas orientation from the Novatel driver.

Services

None

Parameters

/gps/x_init (double, default: 0)

UTM x coordinate of the map origin.

/gps/y_init (double, default: 0)

UTM y coordinate of the map origin.

/gps/x_antenna (double, default: 0) (NOT YET IMPLEMENTED)

Antenna x coordinate wrt robot reference frame.

/gps/y_antenna (double, default: 0) (NOT YET IMPLEMENTED)

Antenna y coordinate of wrt robot reference frame.

Command-Line Tools

rosrun dcart gps

Source code

src/gps.cpp

src/gps_node.cpp

Page 51: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 18 of 41

1 . 8 N o d e b e a c o n _ o d o m

The beacon_odom node computes and publishes robot position and orientation with

respect to a reference frame defined by two optical beacons placed in the environment in a

known position. The node subscribes the scan topic to get laser reads to compute robot

position and orientation and publishes every 5 sec computed position to the

dcart/beacon_pose topic. Node frequency is 10 Hz.

The optical beacons reference system is exactly in the middle of the line linking the two

beacons, whose distance is known. The node uses the laser to detect optical beacons and

their distance and position in polar coordinate (ρ,θ) in the robot reference frame. Then

triangulates, translates and rotates to compute robot position and orientation (x,y,θ) w.r.t.

the optical beacons reference system.

Figure 8. The odom node topics.

The node subscribes the dcart/command topic. The node accepts commands to enable or

disable its outputs (messages ‘beacon enable’ or ‘beacon disable’).

Figure 9. The beacon_odom node topics.

Node name

beacon

Published Topics

dcart/beacon_pose (nav_msgs/Odometry)

− Robot odometry position wrt beacons reference system published every 5 sec.

Page 52: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 19 of 41

Subscribed Topics

scan (sensor_msgs/LaserScan)

− Laser readings.

dcart/command (std_msgs/String)

Commands for the beacon_odom node. Messages accepted:

− beacon enable enable outputs to the dcart/beacon_pose topic.

− beacon disable disable outputs to the dcart/beacon_pose topic.

Services

None

Parameters

/beacon_odom/intensity (double, default: 10000)

Lower intensity threshold for detecting an optical beacon.

/beacon_odom/distance (double, default: 2.4 m)

Distance between the two beacons in meters.

Command-Line Tools

rosrun dcart beacon_odom

Source code

src/beacon_odom.cpp

src/beacon_odom_node.cpp

Page 53: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 20 of 41

1 . 9 N o d e o d o m

The odom node computes and publishes robot odometry. The node subscribes the

dcart/canread topic to get the motor driver status messages (left and right wheel speed)

to compute robot odometry (position and orientation). Odometry is published every 10 ms

to the odom topic.

Odometry position is updated when a new pose provided by the gps node is available on

the dcart/gps_pose topic or when a new pose estimated by the beacon node is available

on the dcart/beacon_pose topic.

The node subscribes the dcart/command topic. The node accepts commands to enable or

disable updates from the gps node (messages ‘gps enable’ or ‘gps disable’) or from the

beacon nodes (messages ‘beacon enable’ or ‘beacon disable’) or commands to set the

current robot pose (message ‘base pose’).

The node publish every 1 second a string with the robot position to the dcart/status topic.

Figure 10. The odom node topics.

Node name

odom

Published Topics

odom (nav_msgs/Odometry)

− Robot odometry position published every 10 ms.

dcart/status (std_msgs/String)

The odom staus. Messages published every 1 second:

− pos: X Y θ speed: VX VY Vθ

Subscribed Topics

dcart/gps_pose (nav_msgs/Odometry)

The robot GPS pose and orientation in the local map reference frame.

Page 54: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 21 of 41

dcart/command (std_msgs/String)

− gps enable enable update of robot odometry pose with GPS pose.

− gps disable disable update of robot odometry pose with GPS pose.

− beacon enable enable update of robot odometry pose with bacon node pose.

− beacon disable disable update of robot odometry pose with bacon node pose.

− base pose X Y θ set robot pose to X Y and θ

dcart/canread (dcart/CAN_msg)

CAN bus messages.

Accepted messages: motor driver status messages (header 0x210).

Services

None

Parameters

None

Command-Line Tools

rosrun dcart odom

Source code

src/odom.cpp

src/odom_node.cpp

Page 55: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 22 of 41

1 . 1 0 N o d e m o v e _ b a s e

The move_base node implements the obstacle avoidance navigation of DustCart. The node

subscribes the dcart/status topic to get status of ‘motor driver’, the dcart/commmand

topic to get navigation goals from other ROS nodes and to the move_base_simple/goal

topic to get navigation goals from rviz. To compute robot trajectory the node subscribes

also the scan topic to get laser readings to avoid obstacles and to the odom topic to get

robot odometry.

The node publishes to the dcart/command topic commands to enable/disable the mobile

base. Commands for the robot, i.e. linear and angular speed, are published to the cmd_vel

topic: robot commands are published every 100 ms. Finally, the node publishes to the

robot_footprint topic the robot footprint.

The node provide also the service dcart/avoid_obstacle: this service takes as input a

linear and angular speed command for the robot and returns true if there is a collision. If

the result is true the service returns also a free collision linear and angular speed command.

Figure 11. The move_base node topics.

Node name

move_base

Published Topics

dcart/command (std_msgs/String)

− base disable for ‘dcart’ node to disable ‘motor driver’ output

− base enable ‘dcart’ node to enable ‘motor driver’ output

dcart/status (std_msgs/String)

− moveto completed to inform other nodes and PEIS supervisor through

‘peis-ros’ node that a moveto has completed

− moveto failed to inform other nodes and PEIS supervisor

through ‘peis-ros’ node that moveto has completed

with failure

cmd_vel (geometry_msgs/Twist)

− Robot linear and rotational speed for the ‘motor driver’ through the ‘dcart’ node

Page 56: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 23 of 41

robot_footprint (geometry_msgs/ PolygonStamped)

− Robot footprint for rviz

Subscribed Topics

dcart/command (std_msgs/String)

− moveto X Y θ from other nodes or PEIS supervisor through ‘peis-ros’

node to start a moveto command to pose X Y θ (m/rad).

− movefw X from other nodes or PEIS supervisor through ‘peis-ros’

node to start a moveto forward command to X (m).

− stop to stop any moveto command

dcart/status (std_msgs/String)

− motor power off to be informed when ‘motor driver’ are off

− motor enabled to be informed when ‘motor driver’ are enabled

− motor disabled to be informed when ‘motor driver’ are disabled

odom (nav_msgs/Odometry)

− Robot odometry position from ‘odom’ node.

scan (sensor_msgs/LaserScan)

− Laser readings for obstacle avoidance.

/move_base_simple/goal

− moveto goal position from rviz.

Services

dcart/avoid_obstacle (dcart/AvoidObstacle)

− Free collision direction. Service input: linear and rotational speed from other

nodes. Service output: collision status, recommended linear and rotational speed

to avoid the obstacle.

Parameters

/move_base/max_vel_x (double, default: 0.6 m/s)

Max linear robot speed in m/s

/move_base/min _vel_x (double, default: 0.1 m/s)

Min linear robot speed in m/s

/move_base/max_rotational_vel (double, default: 25°/s)

Max angular robot speed in rad/s

Page 57: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 24 of 41

/move_base/min_rotational_vel (double, default: 5°/s)

Min angular robot speed in rad/s

/move_base/xy_goal_tolerance (double, default: 0.25 m)

Goal tolerance in m

/move_base/yaw_goal_tolerance (double, default: 15°)

Yaw tolerance in rad

/move_base/slow_dist (double, default: 3.5 m)

Distance in m from the goal from when the robot start slow speed.

/move_base/front_obstacle_margin (double, default: 1 m)

Distance in m in front of the robot from where obstacles are considered for obstacle

avoidance

/move_base/ side_obstacle_margin (double, default: 0.15 m)

Distance in m on the robot side from where obstacles are considered for obstacle

avoidance.

/move_base/max_goal_turnaway (double, default: 45°)

Maximum allowed deviation (in rad) from the optimal goal path to avoid obstacles.

Command-Line Tools

rosrun dcart move_base

Source code

src/move_base.cpp

src/move_base _node.cpp

Page 58: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 25 of 41

1 . 1 1 N o d e g o o d s _ e x c h a n g e

The goods_exchange node implements the Robot-Era shopping service and garbage

collection service only in relation to the exchange of goods between outdoor robot and

condominium robot. The node implements also the garbage collection service to collect the

garbage directly from the user and the dock and undock procedures which move the

outdoor robot to the docking position where the transfer of goods take place or to the

undock position.

The exchange procedure from ‘dcart’ to ‘condo’ (command ‘goods exchange OUT’) is the

following:

� Move ‘dcart’ to a pre-docking position where beacons are visible

� Disable ‘gps’ node output and enable ‘beacon’ node output

� Move ‘dcart’ to docking position using the odometry information from the ‘beacon’

node

� Open the bin

� Start ‘condo’ docking through ‘peis-ros’ node providing ‘dcart’ relative position

(x,y,th) wrt to the ‘default docking position’.

� Wait for condo docking to start the rollers to transfer the box from ‘dcart’ to ‘condo’

� Wait for the ‘bin close’ command provided by condo through the peis-ros node

� Move ‘dcart’ to pre-docking position using the odometry information from the

“beacon” node

� Enable ‘gps’ node output and disable ‘beacon’ node output.

Default docking position is the position where condo learned its docking position: (x,y,th) is

get from the current position minus the default docking position.

The exchange procedure from ‘condo’ to ‘dcart’ (command ‘goods exchange IN’) is the

following:

� Move ‘dcart’ to a pre-docking position where beacons are visible

� Disable ‘gps’ node output and enable ‘beacon’ node output

� Move ‘dcart’ to docking position using the odometry information from the beacon

node

� Open the bin

� Start ‘condo’ docking through ‘peis-ros’ node providing ‘dcart’ relative position

(x,y,th) wrt to the ‘pre-set’ docking position in condo

� Wait for condo docking to start the rollers

� Start ‘condo’ rollers through ‘peis-ros’ node to transfer the box from ‘condo’ to ‘dcart’

� Start ‘condo’ undock through ‘peis-ros’ node

� Wait for the ‘bin close’ command provided by condo through the ‘peis-ros’ node

� Move ‘dcart’ to pre-docking position using the odometry information from the

‘beacon’ node

� Enable ‘gps’ node output and disable ‘beacon’ node output.

Page 59: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 26 of 41

The node subscribes the dcart/command topic and dcart/status topic to get commands,

status messages and robot position to manage properly the goods exchange procedure. The

node publishes messages to the dcart/command topic and dcart/status topic to inform

about its status and to send command ‘move_base’ node and ‘condominium robot’.

Figure 12. The goods_exchange node topics.

Node name

goods_exchange

Published Topics

dcart/command (std_msgs/String)

− moveto X Y θ to ‘move_base’ node to move the robot in X Y θ

− stop to ‘move_base’ node to stop the base

− base pose X Y θ to ‘odom’ node to set robot pose to X Y θ

− gps disable to ‘gps’ node to disable its output

− gps enable to ‘gps’ node to enable its output

− beacon disable to ‘beacon’ node to disable its output

− beacon enable to ‘beacon’ node to enable its output

− bin open to ‘dcart’ node to open the bin

− bin close to ‘dcart’ node to close the bin

− roller forward to ‘dcart’ node to move roller forward

− roller out to ‘dcart’ node to move roller out

− roller backward to ‘dcart’ node to move roller backward

− roller in to ‘dcart’ node to move roller in

− roller stop to ‘dcart’ node to stop roller

− coro1 dock X Y θ to ‘condo’ robot through ‘peis-ros’ node to start docking

− coro1 startroller out to ‘condo’ robot through ‘peis-ros’ node to start roller out

− coro1 undock to ‘condo’ robot through ‘peis-ros’ node to start undock

− take goods to ‘gui’ node to inform to start take goods procedure

Page 60: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 27 of 41

dcart/status (std_msgs/String)

− goods exchange completed to inform PEIS supervisor through ‘peis-ros’

node that goods exchange has completed

− goods exchange failed to inform PEIS supervisor through ‘peis-ros’

node that goods exchange has completed with failure

− start roller completed for ‘condo’ robot through ‘peis-ros’ node

to inform that start roller has completed

− docking to inform that ‘docking’ procedure has started

− docking completed to inform that ‘docking’ procedure has completed

− docking FAILED to inform that ‘docking’ procedure completed with failure

− undocking to inform that ‘undocking’ procedure has started

− undock completed to inform that ‘undocking’ procedure has completed

− undock FAILED to inform ‘undocking’ procedure completed with failure

− garbage collection completed to inform PEIS supervisor through ‘peis-ros’

node that garbage collection has completed

− garbage collection failed to inform PEIS supervisor through ‘peis-ros’

node that garbage collection has completed with failure

Subscribed Topics

dcart/command (std_msgs/String)

− goods exchange OUT from PEIS supervisor through ‘peis-ros’ node

to start the exchange procedure from ‘dcart’ to ‘condo’

− goods exchange IN from PEIS supervisor through ‘peis-ros’ node

to start the exchange procedure from ‘condo’ to ‘dcart’

− start roller OUT to start rollers to transfer goods from ‘dcart’ to ‘condo’

− start roller IN to start rollers to transfer goods from ‘condo’ to ‘dcart’

− garbage collection DISCHARGE from PEIS supervisor through ‘peis-ros’ node

to start the discharge procedure of garbage

− garbage collection CHARGE from PEIS supervisor through ‘peis-ros’ node

to collect the garbage directly from the user

− dock X Y θ to dock ‘dcart’ to the position (X,Y,θ)

− undock X Y θ to undock ‘dcart’ to the position (X,Y,θ)

dcart/status (std_msgs/String)

− moveto completed to be informed when a moveto has completed successfully

− moveto failed to be informed when a moveto has completed with failure

− bin is open to be informed when a bin open has completed

− bin is closed to be informed when a bin close has completed

− roller off to be informed when a start roller has completed

− take goods completed to be informed when the take goods has completed

Page 61: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 28 of 41

odom (nav_msgs::Odometry)

To get robot position

Services Client

None

Parameters

/goods_exchange/x_dock (double, default: 0)

X coordinate of the docking position

/goods_exchange/y_dock (double, default: 0)

Y coordinate of the docking position

/goods_exchange/h_dock (double, default: 0)

Orientation of the docking position

Command-Line Tools

rosrun dcart goods_exchange

Source code

src/ goods_exchange.cpp

src/ goods_exchange_node.cpp

Page 62: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 29 of 41

1 . 1 2 N o d e w a l k

The walk node implements the Robot-Era walk service. The node subscribes the joy topic

to get commands given by the user through the joystick and publishes motor commands

(linear and angular speeds) to the cmd_vel topic.

During the walk the robot uses the laser to detect obstacles in front of the robot and the

user, and any obstacles along the path is signaled with acoustic (beep) and visual (red led

blinking) signals. The node implements three control modalities.

In the first mode, the robot just warns the user about obstacles with the acoustic signal and

it’s up to the user to avoid the obstacle.

In the second mode the robot warns the user about obstacles and if an obstacle is on the

user or robot path the robot doesn’t move forward to avoid collision. Only turn commands

are allowed to the user and it’s still up to him to avoid the obstacle.

In the third mode the robot still warns the user about obstacles and avoid the obstacle

autonomously without help of the user and independently of the user commands. The user

must follow the robot and take again control of the robot once the obstacle has been

avoided.

The user controls the robot through the joystick lever and buttons. To move the robot

forward move the joystick lever forward. To turn on place the robot left (left spin) move the

joystick lever left. To turn on place the robot right move the joystick lever right (right spin).

To turn the robot left move the joystick lever forward and left. To turn the robot right move

the joystick lever forward and right. Reverse is allowed only in mode 2 and 3: to move back

the robot turn the joystick lever back. Robot turn the head right while turning right or left

while turning left.

Buttons are used to play the horn (button 2), decrease/increase robot speed (buttons 3 and

4), enable/disable motor driver (buttons 5 and 6), release mobile base brakes (button 7),

set the walk mode (button 8).

Default robot speed is 0.35 m/s. Minimum speed is 0.15 m/s. Maximum speed is 0.8 m/s.

Increment/decrement unit is 0.025 m/s.

Table 1. Joystick button commands

Button Command

1 -

2 Horn

3 Speed down

4 Speed up

5 Enable motor driver

6 Disable motor driver

7 Disable motor brakes

8 Set walk mode

Page 63: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 30 of 41

The node uses the dcart/avoid_obstacle service to detect any possible obstacles along

the path and to get free collision directions. The node subscribes the dcart/command

topic: the node accepts commands to start the walk service and set the control modality

(‘walk set mode 1’, ‘walk set mode 2’, and ‘walk set mode 3’). The node publishes messages

to the dcart/command topic to enable or disable the mobile base or disable motor brakes

and publishes messages to the gui/message topic to inform the GUI about its status. Node

frequency is 20 Hz.

Figure 13. The walk node topics.

Node name

joy

Published Topics

cmd_vel (geometry_msgs/Twist)

− Robot linear and rotational speed.

gui/message (std_msgs/String)

Status messages for GUI:

− walking mode MODE max speed MAX_SPEED

dcart/command (std_msgs/String)

− base enable

− base disable

− base brake

− led red blink

− led red off

− led red blink

− head move HEAD_POS

Subscribed Topics

dcart/command (std_msgs/String)

Commands for the node to set the walk mode. Messages command:

− walk set mode WALK_MODE

joy (sensor_msgs/Joy)

Joystick lever position and buttons status.

Page 64: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 31 of 41

Services Client

dcart/avoid_obstacle (dcart/AvoidObstacle)

− Free collision direction. Service input: linear and rotational speed (user

command). Service output: collision status, recommended linear and rotational

speed to avoid the obstacle.

Parameters

None

Command-Line Tools

rosrun dcart walk

Source code

src/walk.cpp

src/walk_node.cpp

Page 65: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 32 of 41

2 Package dcart_gui

2 . 1 N o d e g u i

The gui node manage the GUI running on the DustCart touch screen. The node subscribes

the dcart/command topic to get commands involving HRI and starts proper graphical user

interfaces and the gui/messages topic to get and display messages on the touch screen.

Messages are supported also by vocal synthesis. The node publishes to the

dcart/command topic user commands given through the touch screen such as command

to open or close the bin or commands to support HRI such as commands to move the head

or switch on/off LEDs. The node publishes to the dcart/status topic the status of its

activities.

Figure 14. The walk node topics.

Node name

gui

Published Topics

dcart/command (std_msgs/String)

− head side to ‘dcart’ node to move the head for HRI activities

− head front to ‘dcart’ node to move the head in default position

− led yellow on to ‘dcart’ node to switch on yellow LEDs for HRI activities

− led yellow off to ‘dcart’ node to switch off yellow LEDs

− bin open to ‘dcart’ node to open the bin

− bin close to ‘dcart’ node to close the bin

dcart/status (std_msgs/String)

− take goods completed to PEIS CMP to inform about take goods activities

has completed

Page 66: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 33 of 41

Subscribed Topics

dcart/command (std_msgs/String)

− take goods from PEIS CMP to start the take goods procedure

− walk from PEIS CMP to start the walk service

gui/messages (std_msgs/String)

String messages to be published on the GUI

Services Client

None

Parameters

None

Command-Line Tools

rosrun dcart_gui gui

Source code

src/main.cpp

src/main_window.cpp

src/qnode.cpp

Page 67: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 34 of 41

Table 2. GUI and ROS topic relations: take goods activity

Messages from dcart/command

topic GUI shown User Action

Messages to dcart/command

topic

Messages to dcart/status

topic

take goods

User Press ‘language’ icon

head side led yellow on

User press the ‘open’ button

bin open

User press the ‘close’ button

bin close

User press the ‘yes’ button

head front

led yellow on

take goods completed

Page 68: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 35 of 41

Table 3. GUI and ROS topic relations: walk activity

Messages from dcart/command

topic GUI shown User Action

Messages to dcart/command

topic

Messages to dcart/status

topic

walk

User press the ‘open’ button

bin open

User press the ‘close’ button

bin close

Page 69: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 36 of 41

3 Package pe is_ros

3 . 1 N o d e p e i s _ r o s

The peis_ros node is a bridge between the DustCart ROS nodes and the PEIS ecology. The

node listens to PEIS tuples for DustCart and translates these tuples into commands for the

DustCart ROS nodes. Vice versa the node listens to status messages and commands for the

PEIS components (i.e. PEIS configuration planner module, condominium robot, etc.) and

translates these messages into PEIS tuples. The node subscribes the dcart/command

topic to get commands for condominium robot and the dcart/status topic to get status of

the execution of the commands and services.

Figure 15. The peis_ros node topics.

Node name

peis_ros

Published Topics

dcart/command (std_msgs/String)

− take goods to ‘gui’ node to start the take goods interaction

− goods exchange IN to ‘goods_exchange’ node to start a goods exchange

procedure from ‘condo’ to ‘dcart’

− goods exchange OUT to ‘goods_exchange’ node to start a goods exchange

procedure from ‘dcart to ‘condo

− start roller IN to ‘goods_exchange’ node to start a roller IN procedure

− start roller OUT to ‘goods_exchange’ node to start a roller IN procedure

− garbage collection DISCHARGE to ‘goods_exchange’ node to start a discharge

− garbage collection CHARGE to ‘gui’ node to start a take garbage

interaction

− bin close to ‘dcart’ node to close the bin

− bin open to ‘dcart’ node to open the bin

− moveto X Y θ to ‘move_base’ node to move the base in X Y θ (m/rad)

Page 70: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 37 of 41

Subscribed Topics

dcart/command (std_msgs/String)

− coro1 dock X Y θ from ‘goods exchange’ node to ‘condo’ robot to start

docking and to inform about current docking position

− coro1 undock from ‘goods exchange’ node to ‘condo’ robot to start

undocking procedure

− coro1 startroller out from ‘goods exchange’ node to ‘condo’ robot to start

rollers

dcart/status (std_msgs/String)

− bin is open from ‘dcart’ node to ‘condo’ robot to start

docking and to inform about current docking position

− bin is closed from ‘goods exchange’ node to ‘condo’ robot to start

docking and to inform about current docking position

− moveto completed from ‘moveto’ node to PEIS CPM to inform about

conclusion of the moveto command

− moveto failed from ‘moveto’ node to PEIS CPM to inform about

conclusion of the moveto command with failure

− take goods completed from ‘gui’ node to PEIS CPM to inform about conclusion

of the take goods procedure

− take goods failed from ‘gui’ node to PEIS CPM to inform about conclusion

of the take goods procedure with failure

− goods exchange completed from ‘goods_exchange’ node to PEIS CPM to

inform about conclusion of the take goods procedure

− goods exchange failed from ‘goods_exchange’ node for PEIS CPM to inform about

conclusion of the take goods procedure with failure

− start roller completed from ‘goods_exchange’ node for PEIS CPM to inform about

conclusion of the start roller procedure

− start roller failed from ‘goods_exchange’ node for PEIS CPM to inform about

conclusion of the start roller procedure with failure

− garbage collection completed from ‘goods_exchange’ node to PEIS CPM to

inform about conclusion of the take goods procedure

− garbage collection failed from ‘goods_exchange’ node to PEIS CPM to

inform about conclusion of the take goods procedure with

failure

Services Client

None

Parameters

None

Page 71: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 38 of 41

Command-Line Tools

rosrun peis_ros peis_ros --peis-id [peis_id]

[peis_id]: PEIS id of the robot (DustCart1 is 302). Example:

rosrun peis_ros peis_ros --peis-id 302

Source code

src/tuplehandlerdustcart.cpp

src/peisros.cpp

src/peis.cpp

src/main.cpp

Table 4. Correspondence between PEIS tuples and ROS commands

Subscribed Tuples

Tuples Structure ROS topic ROS message

openbin dustcart1.openbin.ID.state= IDLE dustcart1.openbin.ID.parameters = dustcart1.openbin.ID.command = ON

dcart/command bin open

closebin dustcart1.closebin.ID.state= IDLE dustcart1.closebin.ID.parameters = dustcart1.closebin.ID.command = ON

dcart/command bin close

moveto dustcart1.moveto.ID.state= IDLE dustcart1.moveto.ID.parameters = X Y θ dustcart1.moveto.ID.command = ON

dcart/command moveto X Y θ

takegoods dustcart1.takegoods.ID.state= IDLE dustcart1.takegoods.ID.parameters = dustcart1.takegoods.ID.command = ON

dcart/command take goods

goodsexchange

dustcart1.goodsexchange.ID.state= IDLE dustcart1.goodsexchange.ID.parameters = {IN,OUT} dustcart1.goodsexchange.ID.command = ON

dcart/command goods_exchange {IN,OUT}

startroller dustcart1.startroller.ID.state= IDLE dustcart1.startroller.ID.parameters = {IN,OUT} dustcart1.startroller.ID.command = ON

dcart/command start roller {IN,OUT}

garbagecollection

dustcart1.garbagecollection.ID.state= IDLE dustcart1.garbagecollection.ID.parameters = {CHARGE,DISCHARGE} dustcart1.garbagecollection.ID.command = ON

dcart/command garbage collection {CHARGE,DISCHARGE}

Table 5. Correspondence between ROS messages and PEIS tuples

ROS topic ROS message Published Tuples

dcart/command coro1 dock X Y θ coro1.docking.ID.state= IDLE coro1.docking.ID.parameters = DOCK_ON DUSTCART_USE_POSE X Y θ coro1.docking.ID.command = ON

dcart/command coro1 undock coro1.docking.ID.state= IDLE coro1.docking.ID.parameters = DOCK_OFF coro1.docking.ID.command = ON

dcart/command coro1 startroller out coro1.startroller.ID.state= IDLE coro1.startroller.ID.parameters = OUT coro1.startroller.ID.command = ON

dcart/status bin is open dustcart1.openbin.ID.state= COMPLETED

dcart/status bin is closed dustcart1.closebin.ID.state= COMPLETED

Page 72: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 39 of 41

dcart/status moveto completed dustcart1.moveto.ID.state= COMPLETED

dcart/status moveto failed dustcart1.moveto.ID.state= FAILED

dcart/status take goods completed dustcart1.takegoods.ID.state= COMPLETED

dcart/status take goods failed dustcart1.takegoods.ID.state= FAILED

dcart/status goods exchange completed

dustcart1.goodsexchange.ID.state= COMPLETED

dcart/status goods exchange failed dustcart1.goodsexchange.ID.state= FAILED

dcart/status start roller completed dustcart1.startroller.ID.state= COMPLETED

dcart/status start roller failed dustcart1.startroller.ID.state= FAILED

dcart/status garbage collection

completed dustcart1.garbagecollection.ID.state= COMPLETED

dcart/status garbage collection failed

dustcart1.garbagecollection.ID.state= FAILED

Page 73: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 40 of 41

4 Package novatel_driver

4 . 1 N o d e n o v a t e l _ d r i v e r

The novatel_driver node is the interface with the Novatel GPS system. The node open a

serial connection to communicate with the main unit of the GPS system, configure the GPS,

gets GPS main antenna positions and antennas heading, transform GPS position to UTM

coordinates, and publishes GPS orientation and position to ROS topics.

The node publishes to the novatel/position_solution topic the GPS status and position in

UTM coordinates and publishes to the novatel/heading_solution the GPS align status and

heading. GPS heading is computed wrt to the east axis and positive angles are clockwise.

Status of GPS position and GPS heading are NARROW_INT when the GPS solution is fixed.

Figure 16. The Novatel GPS reference system.

Figure 17. The gps node topics.

Node name

novatel_driver

Published Topics

novatel/position_solution (novatel_msgs/Position)

GPS position status and GPS antenna UTM coordinates.

novatel/heading_solution (novatel_msgs/Heading)

GPS align status and antennas heading.

Page 74: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

DustCart ROS Architecure

File name: dustcart_ros_architecture.doc

Leader contractor: RT

Participant contractors: - Page 41 of 41

Subscribed Topics

None

Services

None

Parameters

None

Command-Line Tools

rosrun novatel_driver novatel_driver [serial_port_name]

[serial_port_name]: the serial port the GPS is connected to. Example:

rosrun novatel_driver novatel_driver /dev/ttyS1

Source code

src/Novatel.cpp

src/NovatelNode.cpp

src/SerialPort.cpp

Page 75: D6.2 First outdoor robotic platform prototype for the first ...€¦ · D6.2 First outdoor robotic platform prototype for the first experimental loop Due date of deliverable: [31/03/2013]

dcart.launch -- Printed on 12/02/2014, 12.19.38 -- Page 1

1 <launch>2 3 <node name="log" pkg="dcart" type="log" respawn="false" />4 5 <node name="can" pkg="dcart" type="can" respawn="false" />6 7 <node name="net" pkg="dcart" type="net" respawn="false" />8 9 <node name="dcart" pkg="dcart" type="dcart" output="screen" respawn="false" />

10 11 <node name="joy_node" pkg="joy" type="joy_node" output="screen" respawn="false">12 <param name="joy_node/dev" type="string" value="/dev/input/js0" />13 </node>14 15 <node name="walk" pkg="dcart" type="walk" respawn="false" output="screen"/>16 17 <node name="tf" pkg="dcart" type="dcart_tf" respawn="false" />18 19 <node name="odom" pkg="dcart" type="odom" respawn="false" />20 21 <node name="laser" pkg="hokuyo_node" type="hokuyo_node" output="screen" respawn="false">22 <param name="frame_id" type="string" value="/laser" />23 <param name="max_ang" type="double" value="1.57" />24 <param name="min_ang" type="double" value="-1.57" />25 <param name="max_range" type="double" value="10" />26 <param name="min_range" type="double" value="0.15" />27 <param name="intensity" type="bool" value="true"/>28 <param name="allow_unsafe_settings" type="bool" value="true"/>29 </node>30 31 <node name="beacon_odom" pkg="dcart" type="beacon_odom" output="screen" respawn="false">32 <param name="intensity" type="double" value="10000" />33 <param name="distance" type="double" value="2.75" />34 </node>35 36 <node name="move_base" pkg="dcart" type="move_base" output="screen" respawn="false" >37 <rosparam file="$(find dcart)/move_base_params.yaml" command="load" />38 </node>39 40 <node name="goods_exchange" pkg="dcart" type="goods_exchange" output="screen"

respawn="false" >41 <param name="x_dock" type="double" value="-0.17" />42 <param name="y_dock" type="double" value="0.17" />43 <param name="h_dock" type="double" value="-3.091670" />44 </node>45 46 <node name="map_node" pkg="map_server" type="map_server" args="$(find

dcart)/incubator_map.yaml" respawn="false" output="screen"/>47 48 <node name="novatel_driver" pkg="novatel_driver" type="novatel_driver" args="/dev/ttyS1" />49 50 <node name="gps" pkg="dcart" type="gps" output="screen" respawn="false" >51 <param name="x_init" type="double" value="638280.10" />52 <param name="y_init" type="double" value="4823902.50" />53 <param name="h_init" type="double" value="0.0" />54 </node>55 56 <node name="peis_ros" pkg="peis_ros" type="peis_ros" args="--peis-id 302" output="screen" />57 58 <node name="gui" pkg="dcart_gui" type="gui" output="screen" respawn="false" />59 60 </launch>61 62

C:\Users\Giancarlo\Documents\RoboTech\Progetti\Robot-Era\Backup\dustcart\ros_workspace_20140127\dcart\dcart.launch -- File date: 18/12/2013 -- File time: 16.00.00