Wearable ROS:
Development of wearable robot system using ROS 2

Hwiwon Seo, Minsoo SongR&D Center
Copyright 2022 Angel Robotics., Ltd All rights reservedAngel Robotics

#Replace:
Company Promo video

ANGEL PRODUCTS

fitness, military, …
industryelderly

rehabilitation

Angel Legs M-series

NVIDIA
Jetson Xavier

TCP/IPSTM32H7

I2C
IMU

FDCAN

Motor Driver
48V/10A

BLDC 10Nm/360rpm
planetary gears 20:1
with encoder

I2C, SPI, ADC, …

FSR
Foot Module

Bump sensor

SW Architecture
Application

Robot Applications
NVIDIA
Jetson Xavier

DeviceControl

Data Acquisition

Servo Control•••Ubuntu 20.04
Soft real-time
Robot Services (application)•

Better network, dev-env, resource•••

FreeRTOS
Hard real-time
Robot Control•

Extra safty

STM32H7

H/W

Environment

Actuators

Sensors

Human••••••

Gait training
Squat training
etc.

Torque/Position control
Gravity compensationetc.

Application

Robot Applications

DeviceControl

Data Acquisition

Servo Control

H/W

Sensors

Actuators

Environment

Human

Wearable Robot
Application… with ROS2!

MotionAnalysis
Application

MotionRecognition
MotionAssistance

DeviceControl

Data Acquisition

Servo Control

H/W

Sensors

Actuators

Environment

HumanWearable Robot
Application… with ROS2!

MotionAnalysis
Application

MotionRecognition
MotionAssistance

DeviceControl

Data Acquisition

Servo Control

Motion Recognition
What is the wearer’s current/intendedmotion?
Process sensor data into motion information

H/W

Environment

Actuators

Sensors

HumanDescribing Human/Robot Body Coordinates

Human Coordinates System•

For Motion Recognition

Robot Coordinates System•

For Robot Control

Describing Human/Robot Body Coordinates

Human Coordinates System••

For Motion Recognition
Common configuration,
Specific guidelines

Wu, G., Siegler, S., Allard, P., Kirtley, C., Leardini, A., Rosenbaum, D., … Stokes, I.
(2002). ISB recommendation on definitions of joint coordinate system of various
joints for the reporting of human joint motion—part I: ankle, hip, and spine.
Journal of Biomechanics, 35(4), 543–548. doi:10.1016/s0021-9290(01)00222-6

Robot Coordinates System•

For Robot Control

Richards, J., Chohan, A., & Erande, R. (2013). Biomechanics. Tidy’s Physiotherapy, 331–368.
doi:10.1016/b978-0-7020-4344-4.00015-8

Describing Human/Robot Body Coordinates

Human Coordinates System•••

For Motion RecognitionCommon configuration,
Specific guidelines
Estimated based on RobotCoordinates

Robot Coordinates System•••

For Robot Control
Depends on HW configuration
Different than a human’sDescribing Human/Robot Body Coordinates

Human Coordinates System•••

Robot Coordinates SystemFor Motion Recognition
Common configuration,
Specific guidelines
Estimated based on RobotCoordinates•••

Anthropomorphic

For Robot Control
Depends on HW configuration
Different than a human’s

Quasi-anthropomorphic

Non-anthropomorphic

Describing Human/Robot Body Coordinates

Human Coordinates System•••Robot Coordinates SystemFor Motion Recognition
Common configuration,
Specific guidelines
Estimated based on Robot
Coordinates•••

Anthropomorphic

For Robot ControlDepends on HW configuration
Different than a human’s

Quasi-anthropomorphic

Non-anthropomorphic

Robot TF

Robot TF
Human TF

Human TF

Sit to Stand Phases

I. SitII. Transfer
III. Extension
IV. Stand
I. Right
Double Support

Pirker, Walter & Katzenschlager, Regina. (2016). Gait
disorders in adults and the elderly: A clinical guide.
Wiener klinische Wochenschrift. 129. 10.1007/s00508016-1096-4.

https://www.semanticscholar.org/paper/Sit-To-Standmovement-analysis-using-the-KinectFernandes/bc264dbebb3a1d43882c2d0ba6083f1c45a
e608d

Describing Motion
Gait Phases

II. Right
Single Support
III. Left
Double Support
IV. Left
Single Support

Describing Motion
Gait Msg
Left Stance
Right Swing

Phase Msg…

Current Phase ID

Phase Msg

Phase Procedure
Phase Name
Phase
Phase NameID
Probability
Probability
Phase
Name
Procedure
Procedure
Probability

Sit/Stand Msg
Sit
Transfer…
Phase Msg

Phase ID Enum

Motion
Analysis
Application

MotionRecognition
MotionAssistance

Motion Assistance
How to assist the wearer’s motion?

DeviceControl

Data Acquisition

Servo Control

Generate control command to assist
recognized motion phase
H/W

Environment

Actuators

Sensors

HumanMotion AssistanceHow to Run Right Motion Assistance Nodes
at the Right Time?
Node Scheduler
ClientMotion Assistance Nodes
sit/standsquat
stairclimbing

gait

Node Scheduler ServerWhy should the scheduler be defined as Action Node ?

Node Scheduler Server

1. Node Scheduler always alive
2. Execution functionality switch depending on topic

Node Scheduler Client

3. Node self-destruct possible if needed

Action Node, a perfect choice for node scheduler !

MotionAnalysis
Application

MotionRecognition
MotionAssistance

DeviceControl

Data Acquisition

Servo Control

Motion Analysis
How the wearer’s motion
performance is like?
Produce indicators for motion performance
Evaluation of motion assistance

H/W

Environment

Actuators

Sensors

Human

MOTION ANALYSISPROCESSED DATALOG DATAJOINT CMD/STATE DATAMODE STATEMENT DATAPOWER STATEMENT DATA…

SENSOR STATEMENT DATASOFTWARE VERSION DATAPERSONALIZED DATA…

MOTION PERFORMANCE DATAMOTION ANALYSISROSBRIDGE SUIT

Wearable Robot

3rd Party Device
Web Application

RobotApplication

Rclnodejs
Rosbridge_server

Mobile Application (Flutter)
ROSlibdart

Nvidia Jetpack 5.0 (Ubuntu 20.04)

…

ROS2

Web Application (Rclnodejs)

MotionAnalysis
Application

MotionRecognition
MotionAssistance

DeviceControl

Data Acquisition

Servo Control

H/W

Sensors

Actuators

Environment

Human

μ-ROS for Device
Control Layer

Thank you