Skip to content
Snippets Groups Projects
Commit b39544d6 authored by m-guberina's avatar m-guberina
Browse files

changed some formatting

parent 0fcf5305
No related branches found
No related tags found
No related merge requests found
......@@ -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
## CLI most basic commands
--------------------------
Terminalogy:
Concepts and terminalogy:
- 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
......
......@@ -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
......
https://youtube.com/shorts/rgW9JNLwKrE?si=tmBGEAB81GZxV4XO
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment