Skip to content
Open
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
b9a5065
docs: add documentation template
nikhiljha May 16, 2022
e0c459b
doc: add description to docs website
nikhiljha May 16, 2022
7b37372
chore: mdlint
nikhiljha May 16, 2022
b0cc559
doc: remove forced base url
nikhiljha May 16, 2022
728a607
doc: fix line wrap
nikhiljha May 16, 2022
aa83c14
Rename about.markdown to about.md
May 17, 2022
0166895
Update about.md
May 17, 2022
9c77eae
Added example apps
jeffi May 17, 2022
e1ea6e1
Added links to example images.
May 17, 2022
f1587c2
Create cloud_robotics.md
May 18, 2022
f11c5c0
Create getting_started.md
May 18, 2022
7f26eec
add cli docs
mjd3 May 18, 2022
359c29c
nav order, fix some links and typos
mjd3 May 18, 2022
38a24cb
Update about.md
SimeonOA May 18, 2022
05ddbad
Update cloud_robotics.md
SimeonOA May 18, 2022
3785d7e
add redirect from home to about
mjd3 May 18, 2022
62effb6
Create quickstart_instructions.md
SimeonOA May 18, 2022
d93dc76
Formatting Corrections
SimeonOA May 18, 2022
5e3cc74
Update quickstart_instructions.md
SimeonOA May 18, 2022
ea6c10c
Update quickstart_instructions.md
SimeonOA May 18, 2022
7228903
Update quickstart_instructions.md
SimeonOA May 18, 2022
56fbb2c
Update quickstart_instructions.md
SimeonOA May 18, 2022
8cf2db9
Formatting Updates
SimeonOA May 18, 2022
79e8fd0
Update quickstart_instructions.md
SimeonOA May 18, 2022
205c78e
Added launch configuration documentation
KDharmarajanDev May 20, 2022
54114ee
Added H.264 and video compression documentation
KDharmarajanDev May 20, 2022
8f74ed7
Vidoe links, CLI text, minor changes
SimeonOA May 22, 2022
d726f75
Set Youtube Videos to Embed
SimeonOA Jun 17, 2022
f0534c2
Embed Docker and Native Install Videos
SimeonOA Jun 27, 2022
93e1b99
Update quickstart_instructions.md
SimeonOA Jun 27, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Create getting_started.md
  • Loading branch information
Jeff Ichnowski authored May 18, 2022
commit f11c5c0406a4dc72f55a6434a3a0b29cd1b965d9
25 changes: 25 additions & 0 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Getting Started
===
FogROS 2 streamlines the process of running parts of a ROS 2 application in the cloud. The main benefit is to speed up compute-intensive nodes by using cloud-based high-end computers and hardware acceleration. The only change typically needed is the launch configuration.

Before describing how to configure a ROS 2 application to use FogROS 2, we will discuss two critical things: _region_ and _instance type_.

Region
---
The region is where the cloud computer is physically located. Since network latency increases as the distance between robot and cloud increases, selecting a physically close region is essential. A great tool to understand regions and latency is [cloudping.info]. Usually, it is best to select the region with the lowest latency (we will discuss in a moment).

Instance Type
---
Cloud computers have different hardware specifications with a range of options: the number of CPU cores, amount of memory, types of included hardware accelerators (e.g., GPU, TPU, FPGA), and more. Here are a few example considerations:

Does the ROS node use a deep neural network and NOT have a GPU or TPU? If so, a cloud computer with a GPU or TPU could speed up computation significantly.
Does the ROS node make use of multi-core concurrency? If so, a cloud computer with many more cores than the robot has (e.g., 32-cores, 72-cores, 96-cores) could speed up computation significantly.
Could the ROS node use a specialized hardware accelerator such as an FPGA? If so, a cloud computer with the appropriate hardware could speed up computation significantly.
Are there more nodes running than the robot can handle? If so, hardware acceleration is less important than just getting enough computer cores to meet the demand.

The second part of instance type selection is determining the instance size, or how much computing is enough to best price/performance ratio (or to just fit into a budge). Higher-end instance types cost more money per hour, so ideally, one should select the minimum specification to meet performance criteria. For example, if the application gains no benefit beyond a 32-core computer, selecting a 92-core computer would waste money. How to best determine the instance size can come from a deep understanding of the application code or running a series of experiments with different instance sizes.

Instance types and Regions
---
The one caveat in the above discussion is that not all regions have all instance types. You may have to look at different regions or instance types to find the best computing resource for your application.