Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
L
LPR Tutorials
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Marko Guberina
LPR Tutorials
Commits
b39544d6
Commit
b39544d6
authored
4 months ago
by
m-guberina
Browse files
Options
Downloads
Patches
Plain Diff
changed some formatting
parent
0fcf5305
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
README.md
+153
-153
153 additions, 153 deletions
README.md
linux/03_CLI_basics.md
+6
-2
6 additions, 2 deletions
linux/03_CLI_basics.md
linux/06_advanced_basics.md
+33
-3
33 additions, 3 deletions
linux/06_advanced_basics.md
linux/vim.md
+1
-0
1 addition, 0 deletions
linux/vim.md
with
193 additions
and
158 deletions
README.md
+
153
−
153
View file @
b39544d6
...
...
@@ -26,160 +26,160 @@ to ensure you know the specifics.
In particular we will cover,
## 1. Linux Linux CLI basics
============================
1.
1. why Linux - 1 video
-
no other option
-
open source
-
is the best: fastest and most robust
-
OS itself is customizable for a task
-
can be server - example: ai training
-
can be raspberry pi - example: chalmers car
1.
2. Linux as a daily driver - 1 bonus video
-
blazing fast: example - old hardware
-
easily customizable: distributions
-
pretty: r/unixporn, wal color changing
-
tailor-made workflows (ex. no mouse like my setup)
-
random cool stuff: kde connect
1.
2. GNU/Linux system outline, terminology - 1 video
-
users (root vs other)
-
package manager
-
absolute and relative paths
-
everything is a (text) file
-
terminal emulator
-
shell
1.
3. CLI most basic commands
-
sudo
-
apt - example update and install htop
-
ls
-
--help - example: use ls -l
-
cd
-
pwd
-
grep
-
empowerment points:
-
example reading error messing (bad install)
-
man
1.
4. Docker - 1 video
-
basically Linux virtual machines
-
but can be combine with the host (internet access, memory,...) -> VERY fast
-
images vs containers
1.
5. advanced basics: - 1 bonus video
-
piping
-
forming a script
-
using git (cloning, add, commit, push, pull (example in docker)) - 1 bonus video
1.
5
. networking - 1 bonus video, needed for robot control
1.
6. vim
-
just do vimtutor and look at my keystrokes
-
:help something is very well written and useful
-
vim - editing at the speed of thought is book if you want to be an expert
----------------------------
1.
why Linux - 1 video
-
no other option
-
open source
-
is the best: fastest and most robust
-
OS itself is customizable for a task
-
can be server - example: ai training
-
can be raspberry pi - example: chalmers car
2.
Linux as a daily driver - 1 bonus video
-
blazing fast: example - old hardware
-
easily customizable: distributions
-
pretty: r/unixporn, wal color changing
-
tailor-made workflows (ex. no mouse like my setup)
-
random cool stuff: kde connect
2.
GNU/Linux system outline, terminology - 1 video
-
users (root vs other)
-
package manager
-
absolute and relative paths
-
everything is a (text) file
-
terminal emulator
-
shell
3.
CLI most basic commands
-
sudo
-
apt - example update and install htop
-
ls
-
--help - example: use ls -l
-
cd
-
pwd
-
grep
-
empowerment points:
-
example reading error messing (bad install)
-
man
4.
Docker - 1 video
-
basically Linux virtual machines
-
but can be combine with the host (internet access, memory,...) -> VERY fast
-
images vs containers
5.
advanced basics: - 1 bonus video
-
piping
-
forming a script
-
using git (cloning, add, commit, push, pull (example in docker)) - 1 bonus video
6
.
networking - 1 bonus video, needed for robot control
7.
vim - bonus
-
just do vimtutor and look at my keystrokes
-
:help something is very well written and useful
-
vim - editing at the speed of thought is book if you want to be an expert
2.
Python
===========
2.
1. basic facts - 1 video
-
made for quickly writing short code and prototyping (fast for user)
-
very slow (for the computer)
-
strong dynamic typing
-
no compilation
-
executes one command at a time
-
huge number of available packages
2.
2. script vs shell + jupyter-notebooks
2.
3. variables
2.
4. types
2.
5. built-in data structures:
-
list (dynamic linked list)
-
dictionary (key-value hashmap)
2.
6. loops
-
for
-
iterators
-
while loop
2.
7. functions
-
chunk of code to be reused
-
input/output (API) NOT ENFORCED
-
lists are ONLY PASSED BY REFERENCE
2.
8. classes
-
associations of data and functions
-
have some predefined functions like __init__,
__hash__, __str__, __ge__,...
-
only public atributes
2.
9. many many more things
-
list comperhensions (actually show)
-
sockets
-
multithreading (not real due to GIL) and multiprocessing (real)
-
IPC
-
decorators
2.
10. numpy - 1 video
-
wrappers around fast c code
-
vectorization into real arrays
-
arange
-
linspace
-
basic math
-
matrix multiplication
-
matrix inversion
-
many many more
2.
11. matplotlib
-
plotting numpy arrays
-
completely intuitive for basics, can get weird otherwise
2.
12. openCV - 1 video just for this
-
open up the laptop camera
-
open up ip_webcam over LAN
-
show some basic transformations like negative
-
show classic object detection example in action
-
show yolov4 in action
2.
13. scipy - go over - 1 video, other libraries
-
many many things
-
linear algebra
-
optimization
-
regression
-
...
2.
14. other noteworthy packages
-
sympy
-
scikit-learn for classic ML
-
pytorch for neural networks
-
pandas for tables (eats SQL, Excell, csv no problem)
-
yolo-v8 - the end all be all of CNN based object detection
-
control - classic control
-----------
1.
basic facts - 1 video
-
made for quickly writing short code and prototyping (fast for user)
-
very slow (for the computer)
-
strong dynamic typing
-
no compilation
-
executes one command at a time
-
huge number of available packages
2.
script vs shell + jupyter-notebooks
3.
variables
4.
types
5.
built-in data structures:
-
list (dynamic linked list)
-
dictionary (key-value hashmap)
6.
loops
-
for
-
iterators
-
while loop
7.
functions
-
chunk of code to be reused
-
input/output (API) NOT ENFORCED
-
lists are ONLY PASSED BY REFERENCE
8.
classes
-
associations of data and functions
-
have some predefined functions like __init__,
__hash__, __str__, __ge__,...
-
only public atributes
9.
many many more things
-
list comperhensions (actually show)
-
sockets
-
multithreading (not real due to GIL) and multiprocessing (real)
-
IPC
-
decorators
10.
numpy - 1 video
-
wrappers around fast c code
-
vectorization into real arrays
-
arange
-
linspace
-
basic math
-
matrix multiplication
-
matrix inversion
-
many many more
11.
matplotlib
-
plotting numpy arrays
-
completely intuitive for basics, can get weird otherwise
12.
openCV - 1 video just for this
-
open up the laptop camera
-
open up ip_webcam over LAN
-
show some basic transformations like negative
-
show classic object detection example in action
-
show yolov4 in action
13.
scipy - go over - 1 video, other libraries
-
many many things
-
linear algebra
-
optimization
-
regression
-
...
14.
other noteworthy packages
-
sympy
-
scikit-learn for classic ML
-
pytorch for neural networks
-
pandas for tables (eats SQL, Excell, csv no problem)
-
yolo-v8 - the end all be all of CNN based object detection
-
control - classic control
3.
ur_simple_control
======================
3.
0
. basic info - 1 video
-
alternative to ros (less generalization, less code, more math)
-
intended users are mechanics engineering students,
i.e. people strong in engineering math, but no necessarily software engineering
-
exposes the math
-
nearly exclusively based on reading the state and sending speed and torque commands
3.
2. ur_simple_control - 1 video
-
pure python, will get rewritten to C++ with python bindings in the future
-
atm only UR5e is supported, but other robots will be added
-
every parameter is an argument
-
RobotManager
-
handles I/O with the robot for you
-
manages pinocchio in step()
-
just call step and use getters
-
ControlLoopManager
-
first show the math, explain partial, then go into ControlLoopManager
-
does book-keeping around your control loop math
-
ensures timing is right
-
manages real time visualization and plotting
-
handles killing of the program
-
visualization
-
meshcat server, handled by separate process
-
real-time plotting
-
matplotlib base, handled in separate process
-
can plot whatever vectors you give it, just send an example in a dictionary
-
logging
-
select what you want to track by providing an example dictionary
-
saves the entire run (dictionary of vectors) as a pickle,
along with the pickle of the arguments used
3.
3. pinocchio - 1 video
-
look at their documentation, do their tutorials if you want more
-
data and model
-
load robot as urdf
-
lie algebra
-
body vs space frames
-
cheatsheet overview
-
forwardKinematics
-
just mention dynamics calls
3.
4. clik math - 1 video
-
write the equations down
3.
5. clik in code
-
just go over the code and explain it line by line
3.
6. all examples run in the robotlab --> need help to film that
----------------------
1
.
basic info - 1 video
-
alternative to ros (less generalization, less code, more math)
-
intended users are mechanics engineering students,
i.e. people strong in engineering math, but no necessarily software engineering
-
exposes the math
-
nearly exclusively based on reading the state and sending speed and torque commands
2.
ur_simple_control - 1 video
-
pure python, will get rewritten to C++ with python bindings in the future
-
atm only UR5e is supported, but other robots will be added
-
every parameter is an argument
-
RobotManager
-
handles I/O with the robot for you
-
manages pinocchio in step()
-
just call step and use getters
-
ControlLoopManager
-
first show the math, explain partial, then go into ControlLoopManager
-
does book-keeping around your control loop math
-
ensures timing is right
-
manages real time visualization and plotting
-
handles killing of the program
-
visualization
-
meshcat server, handled by separate process
-
real-time plotting
-
matplotlib base, handled in separate process
-
can plot whatever vectors you give it, just send an example in a dictionary
-
logging
-
select what you want to track by providing an example dictionary
-
saves the entire run (dictionary of vectors) as a pickle,
along with the pickle of the arguments used
3.
pinocchio - 1 video
-
look at their documentation, do their tutorials if you want more
-
data and model
-
load robot as urdf
-
lie algebra
-
body vs space frames
-
cheatsheet overview
-
forwardKinematics
-
just mention dynamics calls
4.
clik math - 1 video
-
write the equations down
5.
clik in code
-
just go over the code and explain it line by line
6.
all examples run in the robotlab --> need help to film that
This diff is collapsed.
Click to expand it.
linux/03_CLI_basics.md
+
6
−
2
View file @
b39544d6
## CLI most basic commands
--------------------------
T
erminalogy:
Concepts and t
erminalogy:
-
terminal emulator
-
shell
-
absolute and relative path
...
...
@@ -8,6 +8,9 @@ Terminalogy:
-
package manager
-
users
-
permissions
-
creating files, directories
-
removing files
-
signals - killing processes
Essential terminology introduced along with the examples
**examples**
: all listed commands in use
...
...
@@ -18,7 +21,8 @@ Content:
-
pwd
-
apt - example update and install htop
-
--help - example: use ls -l
-
grep
-
touch, mkdir
-
rm
-
empowerment points:
-
example reading error messing (bad install)
-
man
...
...
This diff is collapsed.
Click to expand it.
linux/06_advanced_basics.md
+
33
−
3
View file @
b39544d6
...
...
@@ -7,6 +7,12 @@
furthermore, help yourself by saving small stuff as scripts
with helpful names, and then fzf/ ls | grep to find the name
--> still easier than clicking aimlessly
-
some things here are system components,
some are pre-built commands (programs) so that you don't have to program too much
-
standard in, standard out, standard error
-
fg, bg in shell
-
>, >>, &>
-
/dev/null
-
piping
-
regex
-
forming a script
...
...
@@ -15,22 +21,46 @@
and make python scripts if i need something more complex,
i don't like bash. i also do basic text manipulation in vim
instead of using awk, sed and the rest
-
user permissions
-
environment variables
### Commands that cover 90-ish percentage of stuff
--------------
-
grep -e (do in conjuction with du -ch, or some find)
-
cat, tee
-
tail, head
-
wc
-
grep -e (do in conjuction with du -ch, or some find):
-
show piping
-
show command expansion $()
-
systemctl, example: reboot NetworkManager
-
find . , can do many things, but probably most useful to
-
find . , can do many things, but probably most useful to
just get full paths
-
sed, awk whatever for programatic text, just reference don't use
-
show a script
-
cmake + make
-
df -h
-
du -ch
-
ssh
-
rsync
### vim
---------
-
point to vimtutor
-
:help something is very well written and useful
-
vim - editing at the speed of thought is book if you want to be an expert
-
i have a semi-broken example on yt too lel
### what else does even exist?
---------------------------------
-
boot process
-
initrd, systemd
-
filesystem management, from basic to raid, zfs, networked databases
-
network design (where is the DNS, which computer has access to what,
subnets, multicast this or that where, accessing distributed data)
-
security considerations
-
system design (think all university computers, all computer in a company, bank etc)
### if you want to become a wizard
-----------------------------------
-
OS general (required): Operating System Concepts - Abraham Silberschatz, Peter Baer Galvin.pdf
...
...
This diff is collapsed.
Click to expand it.
linux/vim.md
0 → 100644
+
1
−
0
View file @
b39544d6
https://youtube.com/shorts/rgW9JNLwKrE?si=tmBGEAB81GZxV4XO
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment