From 69b6857d9e6ac2122e31c83681d2ffeeda46edef Mon Sep 17 00:00:00 2001 From: Olav de Haas Date: Fri, 27 Mar 2020 11:37:59 +0100 Subject: [PATCH 1/6] Fix launching in high level overview (PM-360) --- .../high_level_overview.rst | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/using_the_march_exoskeleton/high_level_overview.rst b/doc/using_the_march_exoskeleton/high_level_overview.rst index 0b13cfbc..26c35cdd 100644 --- a/doc/using_the_march_exoskeleton/high_level_overview.rst +++ b/doc/using_the_march_exoskeleton/high_level_overview.rst @@ -13,11 +13,13 @@ A high level overview of the components that make up the |march|. Simulation versus Exoskeleton ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As our exoskeleton is under construction most of the time, we have made use of a simulation to ensure we can verify our higher level nodes work. -As seen in the above image, most of the hardware components have a simulated counterpart. +As our exoskeleton is under construction most of the time, we have made use of +a simulation to ensure we can verify our higher level nodes work. As seen in +the above image, most of the hardware components have a simulated counterpart. -At launch time, the user is asked if they are trying to run on the exoskeleton or on the simulation. -Based on this selection, the required components are started. +When launching, the user can choose whether to launch the simulation or the +hardware. See :ref:`march-launch-label` for more information on launching the +exoskeleton. Input Device ^^^^^^^^^^^^ From 873455f61a686d5c05c643259c8966d61079c33b Mon Sep 17 00:00:00 2001 From: Olav de Haas Date: Fri, 27 Mar 2020 11:54:28 +0100 Subject: [PATCH 2/6] Add input device doc in high level overview (PM-361) --- doc/using_the_march_exoskeleton/high_level_overview.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/using_the_march_exoskeleton/high_level_overview.rst b/doc/using_the_march_exoskeleton/high_level_overview.rst index 26c35cdd..bea65ed7 100644 --- a/doc/using_the_march_exoskeleton/high_level_overview.rst +++ b/doc/using_the_march_exoskeleton/high_level_overview.rst @@ -23,3 +23,10 @@ exoskeleton. Input Device ^^^^^^^^^^^^ +The pilot of the exoskeleton can give input on which gait they want to perform +through the input device embedded in one of the crutches, see +:ref:`march-input-device-label`. Furthermore, there exists a developer input +device in the form of an RQT plugin, see :ref:`march-rqt-input-device-label`. +Both of these ways of input can either be used in the simulation or the +hardware. They are not dependent on the configuration in which the exoskeleton +is run. From 2a2006db5979e580b5a0779005cea0850987dcf6 Mon Sep 17 00:00:00 2001 From: Olav de Haas Date: Mon, 30 Mar 2020 12:39:32 +0200 Subject: [PATCH 3/6] Update software stack diagram --- .../high_level_overview.rst | 4 ++-- .../images/high_level_architecture.svg | 3 +++ .../images/software_stack.png | Bin 51133 -> 0 bytes 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 doc/using_the_march_exoskeleton/images/high_level_architecture.svg delete mode 100644 doc/using_the_march_exoskeleton/images/software_stack.png diff --git a/doc/using_the_march_exoskeleton/high_level_overview.rst b/doc/using_the_march_exoskeleton/high_level_overview.rst index bea65ed7..46613a3f 100644 --- a/doc/using_the_march_exoskeleton/high_level_overview.rst +++ b/doc/using_the_march_exoskeleton/high_level_overview.rst @@ -6,14 +6,14 @@ A high level overview of the components that make up the |march|. .. inclusion-introduction-end -.. figure:: images/software_stack.png +.. figure:: images/high_level_architecture.svg :align: center The March software stack Simulation versus Exoskeleton ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As our exoskeleton is under construction most of the time, we have made use of +As the |march| is under construction most of the time, we have made use of a simulation to ensure we can verify our higher level nodes work. As seen in the above image, most of the hardware components have a simulated counterpart. diff --git a/doc/using_the_march_exoskeleton/images/high_level_architecture.svg b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg new file mode 100644 index 00000000..4014e5e1 --- /dev/null +++ b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg @@ -0,0 +1,3 @@ + + +
gait name
<div>gait name</div>

State Machine

[Not supported by viewer]
feedback
feedback
gait
gait
Gait Selection
Gait Selection
feedback
<div>feedback</div>
Gait Scheduler
Gait Scheduler
Gait Files
<div>Gait Files</div>
Gait Generator
Gait Generator
generate gaits
generate gaits
load gaits
load gaits
RQT Input Device
RQT Input Device
Embedded Input Device
Embedded Input Device
gait instruction
[Not supported by viewer]
Safety
Safety
Exoskeleton
actuate
actuate
Controller
Controller
feedback
<div>feedback</div>
Hardware
Hardware
Motor Encoders
Motor Encoders
Motor Controllers
Motor Controllers
Temperature Sensors
Temperature Sensors
Power Distribution Board
Power Distribution Board
Simulation
actuate
<div>actuate</div>
Controller
Controller
feedback
feedback
Gazebo
Gazebo
URDF
URDF
sensor values
[Not supported by viewer]
ping
ping
Gain Scheduler
Gain Scheduler
joint trajectory
joint trajectory
\ No newline at end of file diff --git a/doc/using_the_march_exoskeleton/images/software_stack.png b/doc/using_the_march_exoskeleton/images/software_stack.png deleted file mode 100644 index 5ea6f749122750b59a38b5d5970144a51859dbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51133 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

V=5?^hLCi(z{LnCEu>J6^C`x~U6$1(&|L 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 From 378b7ff6d13d5811cedcae18af6f27d95d8e2095 Mon Sep 17 00:00:00 2001 From: Olav de Haas Date: Mon, 30 Mar 2020 15:21:41 +0200 Subject: [PATCH 4/6] Fix fonts and rename gait to subgait --- .../images/high_level_architecture.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/using_the_march_exoskeleton/images/high_level_architecture.svg b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg index 4014e5e1..fb58253c 100644 --- a/doc/using_the_march_exoskeleton/images/high_level_architecture.svg +++ b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg @@ -1,3 +1,3 @@ -
gait name
<div>gait name</div>

State Machine

[Not supported by viewer]
feedback
feedback
gait
gait
Gait Selection
Gait Selection
feedback
<div>feedback</div>
Gait Scheduler
Gait Scheduler
Gait Files
<div>Gait Files</div>
Gait Generator
Gait Generator
generate gaits
generate gaits
load gaits
load gaits
RQT Input Device
RQT Input Device
Embedded Input Device
Embedded Input Device
gait instruction
[Not supported by viewer]
Safety
Safety
Exoskeleton
actuate
actuate
Controller
Controller
feedback
<div>feedback</div>
Hardware
Hardware
Motor Encoders
Motor Encoders
Motor Controllers
Motor Controllers
Temperature Sensors
Temperature Sensors
Power Distribution Board
Power Distribution Board
Simulation
actuate
<div>actuate</div>
Controller
Controller
feedback
feedback
Gazebo
Gazebo
URDF
URDF
sensor values
[Not supported by viewer]
ping
ping
Gain Scheduler
Gain Scheduler
joint trajectory
joint trajectory
\ No newline at end of file +
subgait
name
[Not supported by viewer]

State Machine

[Not supported by viewer]
feedback
feedback
subgait
subgait
Gait Selection
Gait Selection
feedback
<div>feedback</div>
Gait Scheduler
Gait Scheduler
Gait Files
[Not supported by viewer]
Gait Generator
<font>Gait Generator</font>
generate gaits
generate gaits
load gaits
load gaits
RQT Input Device
<font>RQT Input Device</font>
Embedded Input Device
<font>Embedded Input Device</font>
gait instruction
[Not supported by viewer]
Safety
Safety
Exoskeleton
actuate
actuate
Controller
Controller
feedback
<div>feedback</div>
Hardware
Hardware
Motor Encoders
Motor Encoders
Motor Controllers
Motor Controllers
Temperature Sensors
Temperature Sensors
Power Distribution Board
Power Distribution Board
sensor
values
[Not supported by viewer]
Simulation
actuate
[Not supported by viewer]
Controller
Controller
feedback
feedback
Gazebo
Gazebo
URDF
URDF
ping
[Not supported by viewer]
Gain Scheduler
Gain Scheduler
joint trajectory
joint trajectory
\ No newline at end of file From aa39ab0d5eee1ae3682183fa3a7df39c3451b421 Mon Sep 17 00:00:00 2001 From: Olav de Haas Date: Mon, 30 Mar 2020 15:26:19 +0200 Subject: [PATCH 5/6] Fix font for real --- .../images/high_level_architecture.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/using_the_march_exoskeleton/images/high_level_architecture.svg b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg index fb58253c..da49eab0 100644 --- a/doc/using_the_march_exoskeleton/images/high_level_architecture.svg +++ b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg @@ -1,3 +1,3 @@ -
subgait
name
[Not supported by viewer]

State Machine

[Not supported by viewer]
feedback
feedback
subgait
subgait
Gait Selection
Gait Selection
feedback
<div>feedback</div>
Gait Scheduler
Gait Scheduler
Gait Files
[Not supported by viewer]
Gait Generator
<font>Gait Generator</font>
generate gaits
generate gaits
load gaits
load gaits
RQT Input Device
<font>RQT Input Device</font>
Embedded Input Device
<font>Embedded Input Device</font>
gait instruction
[Not supported by viewer]
Safety
Safety
Exoskeleton
actuate
actuate
Controller
Controller
feedback
<div>feedback</div>
Hardware
Hardware
Motor Encoders
Motor Encoders
Motor Controllers
Motor Controllers
Temperature Sensors
Temperature Sensors
Power Distribution Board
Power Distribution Board
sensor
values
[Not supported by viewer]
Simulation
actuate
[Not supported by viewer]
Controller
Controller
feedback
feedback
Gazebo
Gazebo
URDF
URDF
ping
[Not supported by viewer]
Gain Scheduler
Gain Scheduler
joint trajectory
joint trajectory
\ No newline at end of file +
gait name
<div>gait name</div>

State Machine

[Not supported by viewer]
feedback
feedback
gait
gait
Gait Selection
Gait Selection
feedback
<div>feedback</div>
Gait Scheduler
Gait Scheduler
Gait Files
<div>Gait Files</div>
Gait Generator
Gait Generator
generate gaits
generate gaits
load gaits
load gaits
RQT Input Device
RQT Input Device
Embedded Input Device
Embedded Input Device
gait instruction
[Not supported by viewer]
Safety
Safety
Exoskeleton
actuate
actuate
Controller
Controller
feedback
<div>feedback</div>
Hardware
Hardware
Motor Encoders
Motor Encoders
Motor Controllers
Motor Controllers
Temperature Sensors
Temperature Sensors
Power Distribution Board
Power Distribution Board
Simulation
actuate
<div>actuate</div>
Controller
Controller
feedback
feedback
Gazebo
Gazebo
URDF
URDF
sensor values
[Not supported by viewer]
ping
ping
Gain Scheduler
Gain Scheduler
joint trajectory
joint trajectory
\ No newline at end of file From b6ba196a1cf00e5d9dd213e507c317550a9ee57a Mon Sep 17 00:00:00 2001 From: Olav de Haas Date: Mon, 30 Mar 2020 15:47:51 +0200 Subject: [PATCH 6/6] Format svg --- .../images/high_level_architecture.svg | 687 +++++++++++++++++- 1 file changed, 686 insertions(+), 1 deletion(-) diff --git a/doc/using_the_march_exoskeleton/images/high_level_architecture.svg b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg index da49eab0..079e0123 100644 --- a/doc/using_the_march_exoskeleton/images/high_level_architecture.svg +++ b/doc/using_the_march_exoskeleton/images/high_level_architecture.svg @@ -1,3 +1,688 @@ -
gait name
<div>gait name</div>

State Machine

[Not supported by viewer]
feedback
feedback
gait
gait
Gait Selection
Gait Selection
feedback
<div>feedback</div>
Gait Scheduler
Gait Scheduler
Gait Files
<div>Gait Files</div>
Gait Generator
Gait Generator
generate gaits
generate gaits
load gaits
load gaits
RQT Input Device
RQT Input Device
Embedded Input Device
Embedded Input Device
gait instruction
[Not supported by viewer]
Safety
Safety
Exoskeleton
actuate
actuate
Controller
Controller
feedback
<div>feedback</div>
Hardware
Hardware
Motor Encoders
Motor Encoders
Motor Controllers
Motor Controllers
Temperature Sensors
Temperature Sensors
Power Distribution Board
Power Distribution Board
Simulation
actuate
<div>actuate</div>
Controller
Controller
feedback
feedback
Gazebo
Gazebo
URDF
URDF
sensor values
[Not supported by viewer]
ping
ping
Gain Scheduler
Gain Scheduler
joint trajectory
joint trajectory
\ No newline at end of file + + + + + + + + +
+
+
gait name
+
+
+
+ <div>gait + name</div> + +
+
+ + + + +
+
+

+ State Machine +
+

+
+
+
+ [Not + supported by viewer] + +
+
+ + + + + +
+
+ feedback +
+
+
+ + feedback + +
+
+ + + + + + + +
+
+ gait +
+
+
+ gait + +
+
+ + + + +
+
+ Gait Selection +
+
+
+ Gait + Selection + +
+
+ + + + + +
+
+
feedback
+
+
+
+ <div>feedback</div> +
+
+ + + + + + +
+
+ Gait Scheduler +
+
+
+ Gait + Scheduler + +
+
+ + + + +
+
+
Gait Files
+
+
+
+ <div>Gait + Files</div> + +
+
+ + + + +
+
+ Gait Generator +
+
+
+ Gait + Generator + +
+
+ + + + + +
+
+ generate gaits +
+
+
+ generate + gaits + +
+
+ + + + + + +
+
+ load gaits +
+
+
+ load + gaits + +
+
+ + + + + + + + +
+
+ RQT Input Device +
+
+
+ RQT Input + Device + +
+
+ + + + + + + + +
+
+ Embedded Input Device +
+
+
+ Embedded + Input Device + +
+
+ + + + +
+
+ gait instruction +
+
+
+ [Not + supported by viewer] + +
+
+ + + + +
+
+ Safety +
+
+
+ Safety + +
+
+ + + + + + + Exoskeleton + + + + + + +
+
+ actuate +
+
+
+ actuate + +
+
+ + + + +
+
+ Controller +
+
+
+ + Controller + +
+
+ + + + + +
+
+
feedback
+
+
+
+ <div>feedback</div> +
+
+ + + + +
+
+ Hardware +
+
+
+ + Hardware + +
+
+ + + + +
+
+ Motor Encoders +
+
+
+ Motor + Encoders + +
+
+ + + + +
+
+ Motor Controllers +
+
+
+ Motor + Controllers + +
+
+ + + + +
+
+ Temperature Sensors +
+
+
+ + Temperature Sensors + +
+
+ + + + +
+
+ Power Distribution Board +
+
+
+ Power + Distribution Board + +
+
+ + + + + + + Simulation + + + + + + +
+
+
actuate
+
+
+
+ <div>actuate</div> +
+
+ + + + +
+
+ Controller +
+
+
+ + Controller + +
+
+ + + + + +
+
+ feedback +
+
+
+ + feedback + +
+
+ + + + +
+
+ Gazebo +
+
+
+ Gazebo + +
+
+ + + + + + + + + + +
+
+ URDF +
+
+
+ URDF + +
+
+ + + +
+
+ sensor values +
+
+
+ [Not + supported by viewer] + +
+
+ + + +
+
+ ping +
+
+
+ ping + +
+
+ + + + + + + + +
+
+ Gain Scheduler +
+
+
+ Gain + Scheduler + +
+
+ + + + + +
+
+ joint trajectory +
+
+
+ joint + trajectory + +
+
+
+