You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/Multirotor/Tutorials/First_Steps/1._Developer_Environment.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,13 +90,13 @@ We will go over Git as we need it, but if you have no experience and would like
90
90
91
91
### VS Code
92
92
93
-
VS Code is an extendable text editor developed by Microsoft.
93
+
VS Code is a popular text editor developed by Microsoft, it is highly extendable with many plugins existing that can turn it into a fully featured integrated development environment (IDE).
94
94
95
95
Install VS Code if you haven't already: [https://code.visualstudio.com/](https://code.visualstudio.com/)
96
96
97
-
You will also need the dev containers extension, just search for "dev containers" or see here: [https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
97
+
You will also need the dev containers extension, just search for "dev containers" in the extension tab (`Ctrl+Shift+X`) or see here: [https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
98
98
99
-
If you'd like to learn more bout dev containers see here for the full overview: [https://code.visualstudio.com/docs/devcontainers/containers](https://code.visualstudio.com/docs/devcontainers/containers)
99
+
If you'd like to learn more about dev containers see here for the full overview: [https://code.visualstudio.com/docs/devcontainers/containers](https://code.visualstudio.com/docs/devcontainers/containers)
100
100
101
101
### GitHub
102
102
@@ -132,6 +132,7 @@ Eventually you should see `Done. Press any key to close the terminal.`
132
132
g++-multilib-arm-linux-gnueabi
133
133
g++-multilib-arm-linux-gnueabihf
134
134
```
135
+
Otherwise build the container with x86 emulation or use a VM.
Copy file name to clipboardExpand all lines: docs/Multirotor/Tutorials/First_Steps/2._Interacting_with_the_Environment.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,7 +62,7 @@ If you are coming from Windows `apt` is similar to `winget`, `scoop`, or `choco`
62
62
63
63
Before you start you will have to enable `X11` pass through, `X11` is a windowing system that allows programs to draw to the screen and is how the container will create windows on our host computer.
64
64
65
-
For Linux the container is already setup to mount the `X11` socket and configure `$DISPLAY`, but you may have to run `xhost +local:docker` if nothing shows up when you run the simulation. (this command allows non-network local connects to access the X server)
65
+
For Linux the container is already setup to mount the `X11` socket and configure `$DISPLAY`, but you may have to run `xhost +local:docker` if nothing shows up when you run the simulation. (this command allows non-network local connections to access the X server)
66
66
67
67
For Windows see: [https://medium.com/@potatowagon/how-to-use-gui-apps-in-linux-docker-container-from-windows-host-485d3e1c64a3](https://medium.com/@potatowagon/how-to-use-gui-apps-in-linux-docker-container-from-windows-host-485d3e1c64a3)
68
68
@@ -77,7 +77,6 @@ If you pan around the scene with your mouse and you are getting more than 10fps
77
77
See the `WSL2` note back on [Developer Environment](./1._Developer_Environment.md) <br>
78
78
Otherwise a good a place to start is to search `docker <operating system> <amd/intel/nvidia> <desktop/laptop> gpu`.
79
79
80
-
81
80
If you want to fly the drone you can use the commands on the left of the app like `Takeoff`, after the drone takes off you can also click on places on the map and tell the drone to fly there. If the simulator does not let you take off please resolve the warnings.
82
81
83
82
You can also control the drone with a virtual joystick (a little difficult to use without a touch screen) to enable go to `Application Settings > Fly View > Virtual Joystick`.
Copy file name to clipboardExpand all lines: docs/Multirotor/Tutorials/First_Steps/3._Recommended_Tutorials.md
+43-5Lines changed: 43 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,26 @@
2
2
title: Recommended Tutorials
3
3
---
4
4
5
+
6
+
## C++, Python
7
+
8
+
Learning an new programming language (or improving your skills) depends on many factors that this tutorial cannot account for.
9
+
10
+
If you have *no* experience at all, your 100 level programming course *might* be a good place to start. If you'd like more guidance ask your lead(s) and they will help you out.
11
+
12
+
If you have some experience in any programming language, you should be able to pick up most things you need by going through the tutorials and searching/LLMing things that you don't recognize.
13
+
14
+
If you'd like to go through some **very comprehensive** tutorials/guides before you start any UAS specific stuff here are the good ones:
The previous tutorial should (I'm hoping) give you enough context to start the ROS2 tutorials. Most commands and concepts you should be able to pickup as you go.
22
+
23
+
If you'd like to go even further the most immediately relevant "Linux topics" will be sysadmin related. I don't have any recommended tutorials, but topics of note include `processes``package managment`, `networking`, `tailsale`, `udev`, and `systemd`.
24
+
5
25
## ROS2
6
26
7
27
> The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications. From drivers and state-of-the-art algorithms to powerful developer tools, ROS has the open source tools you need for your next robotics project.
@@ -10,13 +30,27 @@ For our team ROS2 acts as the middleware the binds all of our systems together,
10
30
11
31
Main documentation: [https://docs.ros.org/en/humble/index.html](https://docs.ros.org/en/humble/index.html)
12
32
13
-
To get started go through the beginner tutorials: [https://docs.ros.org/en/humble/Tutorials.html](https://docs.ros.org/en/humble/Tutorials.html)
14
-
15
-
You can skip the `Configuring environment` section if you are using the development container, but I would read it anyways.
33
+
Recommend Tutorials to complete: [https://docs.ros.org/en/humble/Tutorials.html](https://docs.ros.org/en/humble/Tutorials.html)
34
+
35
+
- All of `Beginner: CLI tools`
36
+
- Most of `Configuring environment` has been done for you if you are using the development container, but you should read it anyways to get familiar with the CLI.
37
+
- We do not set `ROS_LOCALHOST_ONLY=1` because the container is not setup for `network_mode: host`
38
+
- Most of `Beginner: Client libraries`
39
+
- Using colcon to build packages
40
+
- Creating a workspace
41
+
- Creating a package
42
+
- Writing a simple publisher and subscriber (C++)
43
+
- Writing a simple publisher and subscriber (Python)
44
+
- Writing a simple service and client (C++)
45
+
- Writing a simple service and client (Python)
46
+
- Creating custom msg and srv files
47
+
- Implementing custom interfaces
48
+
- Using parameters in a class (C++)
49
+
- Using parameters in a class (Python)
16
50
17
51
I recommend using using the `uas_ws` directory for your workspace as the container's `.bashrc` comes preconfigured to use this workspace.
18
52
19
-
The basic concepts page is also a good place to learn more about ROS: [https://docs.ros.org/en/humble/Concepts.html](https://docs.ros.org/en/humble/Concepts.html)
53
+
The concepts page is good place to learn more about the inner workings of ROS: [https://docs.ros.org/en/humble/Concepts.html](https://docs.ros.org/en/humble/Concepts.html)
20
54
21
55
## PX4
22
56
@@ -32,6 +66,10 @@ Read the basic concepts page to get familiar with basic drone concepts: [https:/
32
66
33
67
We make heavy use of offboard control for our autonomy, specially we use ROS2 and the uXRCE-DDS interface, there are quite a few pages, but skim a few to get a feel for what we are working with: [https://docs.px4.io/main/en/ros/offboard_control.html](https://docs.px4.io/main/en/ros/offboard_control.html)
We are specifically using the uXRCE-DDS bridge to communicate with the drone, see here to learn more about its implementation: [https://docs.px4.io/main/en/middleware/uxrce_dds.html](https://docs.px4.io/main/en/middleware/uxrce_dds.html)
36
74
37
75
## Gazebo
@@ -44,7 +82,7 @@ Main documentation: [https://gazebosim.org/docs/harmonic/tutorials/](https://gaz
44
82
45
83
## Onboarding Project
46
84
47
-
The best way to get familiar with the basics is by doing as such I have scoped a smallish scale learning project that you can undertake (not for marks).
85
+
The best way to get learn the basics is by doing, as such I have scoped a smallish scale learning project that you can undertake (not for marks).
48
86
49
87
To get started create a ROS package in `uas_ws/src`, use the PX4 offboard docs as reference.
Copy file name to clipboardExpand all lines: docs/Multirotor/Tutorials/First_Steps/index.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,21 @@
2
2
title: First Steps
3
3
---
4
4
5
+
## Introduction
6
+
7
+
These tutorials cover the installation of a developer environment for working with ROS2+PX4, basic navigation within the environment, and conclude with tutorial recommendations and an onboarding project.
8
+
9
+
Knowledge assumptions:
10
+
11
+
- These tutorials assume some knowledge of programming (C++ or Python)
12
+
- These tutorials assume some knowledge of git
13
+
- These tutorials assume limited knowledge of the terminal
14
+
- These tutorials assume no knowledge of Linux
15
+
- These tutorials assume no knowledge of dev-containers
16
+
- These tutorials assume no knowledge of ROS2, PX4, etc.
0 commit comments