HOW to design ROS-powered robots
Luca Marchionni, CTO at PAL Robotics
September 22, Vancouver
ROSCon 2017

Outline
PAL Robotics✔

Software overview and deployment✔

Continuous integration✔

Software release system✔

Control architecture✔

Whole Body Control✔

Space Robotics Challenge

ROSCon 2017✔

PAL Robotics in a nutshell

ROSCon 2017

Partners and customers

ROSCon 2017

Why do we use ROS?
● Shorten time to market● Selling argument● Leverage powerful development tools● If you have the code, you can improve it● Share the effort with community● Build value, focus on core IP

ROSCon 2017

● Contribute to create “standards”

Public repositories

wiki.ros.org/Robots/TIAGo

wiki.ros.org/Robots/REEM-C

wiki.ros.org/Robots/REEM/Tutorials

wiki.ros.org/Robots/TIAGo/Tutorials

wiki.ros.org/Robots/REEM-C/Tutorials

https://github.com/pal-robotics

72 repositories

https://github.com/pal-robotics-forks

60 repositories

ROSCon 2017

wiki.ros.org/Robots/REEM

Public repositories (coming soon)

✔

✔
✔
✔
✔

New generation of biped robot
Advanced mobility and manipulation skills forindustrial tasks
Full torque controllable robotEtherCAT communication bus
High power/speed actuators
6 Kg arm payload

ROSCon 2017✔

Software overview

OperatingSystem

StableWork in progressFuture?

● Ubuntu 14.04● Ubuntu 16.04 LTS● Linux Real TimeLTS 64-bit● Xenomai real-64-bit● Linux Preemp-rt

time● Linux Preemp-rt● Orocos 2.8● Orocos 2.8● ROS 2.0

● ROS Indigo● ROS Kinetic● PAL Fermium● PAL Dubnium● PAL Erbium

ROSCon 2017

Robotics
middleware

Software deployment

ROSCon 2017

● Add/Overlay packages to a robot● Validate package installation rules● Discourage file editing on robot● Multiple workspaces● Test before release● Restore original package version

Software deployment

pal_deploy

ROSCon 2017

● Add/Overlay packages to a robot● Validate package installation rules● Discourage file editing on robot● Multiple workspaces● Test before release● Restore original package version

Software deployment

pal_deploy

ROSCon 2017

● Add/Overlay packages to a robot● Validate package installation rules● Discourage file editing on robot● Multiple workspaces● Test before release● Restore original package version

Software deployment

pal_deploy/opt/pal/dubnium

ROSCon 2017

● Add/Overlay packages to a robot● Validate package installation rules● Discourage file editing on robot● Multiple workspaces● Test before release● Restore original package version

Software deployment

pal_deploy/home/pal/deployed_ws/opt/pal/dubnium

ROSCon 2017

● Add/Overlay packages to a robot● Validate package installation rules● Discourage file editing on robot● Multiple workspaces● Test before release● Restore original package version

Software deployment

pal_deploy/home/pal/deployed_ws/opt/pal/dubnium

ROSCon 2017

● Add/Overlay packages to a robot● Validate package installation rules● Discourage file editing on robot● Multiple workspaces● Test before release● Restore original package version

API/ABIcompatibility!!!

Continuous integration● Builds in clean environment● Unit testing● Coverage● Functional testing

ROSCon 2017

● API/ABI check

Continuous integration

Notify developers and maintainers if:

Run it on master/develop branch(GitFlow branching model)

ROSCon 2017

● Compilation error● Test failure● Coverage below 70%● API/ABI breaking

Continuous integration

ROSCon 2017

Software release system

ROSCon 2017

Software release system

ROSCon 2017

Software release system

ROSCon 2017

Software release system

ROSCon 2017

Control architecture

ROSCon 2017

Control architecture

ROSCon 2017

Control architecture
Why?
●
Hardware needs real time communication●Controllers need determinism regardlessof system load
How?
●
Xenomai co-kernel or Preempt-RT patch●
Never block the real time thread!

ROSCon 2017

Control architecture
URDF.yaml.launch

ROSCon 2017

Whole body control

1) set of simple, low-dimensional rules2) the rules are sufficient to guarantee the correct execution of any single
task or of simultaneous multiple tasks

source: http://www.ieee-ras.org/whole-body-control

ROSCon 20173) exploiting the full capabilities of the entire body of redundant,
floating-based robots in compliant multi-contact interaction with theenvironment

Whole body control

ROSCon 2017

Whole body control

ROSCon 2017

Whole body control
Stack of Tasks
High priority

Joint limits
Self collision avoidance
Fixed feet + CoM centeredGaze
Torso orientation upright

Low priority

Joint reference posture

ROSCon 2017

Hands position

Whole body control

ROSCon 2017

Whole body control

ROSCon 2017

Space Robotics Challenge
Team Olympus Mons

ROSCon 2017

440 inscribed teams, 20 finalists●Control Valkyrie robot in simulated Mars mission●Team composed by current and former PAL employees●Ineligible for prize, motivated by passion for robotics●

Space Robotics Challenge

ROSCon 2017

TALOS Robotics Challenge (work in progress)

ROSCon 2017

Thank you ROS community!!!

www.pal-robotics.com