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

structured it as much as i could, i cant do no more today.

parent 86b1c132
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,11 @@ These tutorials will cover some of the basics of the software stack
typically used in robotics engineering (Linux, Python), and my library for robot
control.
The tutorials are meant to be bare-bones and used
just to get your feet wet.
The idea is to introduce the absolute minimum number of concepts,
and to empower you and inspire you to learn the rest as you go.
The intended audience are mechanical engineering students
at Lund university/LTH. This translates to assuming
experience in programming and to knowing bachelor level
......@@ -18,14 +23,9 @@ the parts you're familiar with. I do recommend watching
or at least skipping though all of them
to ensure you know the specifics.
The tutorials are meant to be bare-bones and used
just to get your feet wet.
The idea is to introduce the absolute minimum number of concepts,
and to empower you to learn the rest as you go.
In particular we will cover,
1. Linux Linux CLI basics
## 1. Linux Linux CLI basics
============================
1.1. why Linux - 1 video
- no other option
......@@ -58,7 +58,11 @@ In particular we will cover,
- empowerment points:
- example reading error messing (bad install)
- man
1.4. advanced basics: - 1 bonus video
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
......@@ -142,10 +146,6 @@ In particular we will cover,
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.1. Docker - 1 video
- basically Linux virtual machines
- but can be combine with the host (internet access, memory,...) -> VERY fast
- images vs containers
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
......
# why linux for (robotics) engineering?
## why linux for (robotics) engineering?
----------------------------------------
0. there are no other options (same for ai)
1. open-source
......@@ -14,7 +14,7 @@
--> it's the same system, learn it once know it for all cases
4. best CLI
# why CLI?
## why CLI?
----------
0. no GUI on server or raspberry pi --> example: ssh into something
1. gives errors
......
# why linux as a daily driver?
## why linux as a daily driver?
------------------------------
0. there are only two reasons why you don't have it
0.1. some apps and games aren't ported
......@@ -20,3 +20,11 @@
4. everything is a text file
5. any sequence of commands can be put into a script,
and that can be put on a keybinding or a cron command
### **beauty examples**
- ubuntu gnome
- linux mint cinammon
- kde plasma
- you are looking at i3 on arch linux
- some riced examples
1.3. CLI most basic commands
## CLI most basic commands
**examples**: all listed commands in use
Content:
- sudo
- apt - example update and install htop
- ls
......
## Docker
- basically Linux virtual machines
- can be combine with the host (internet access, memory,...) -> VERY fast
- but run just fine on windows via wsl
- images vs containers
**example**: ur_simple_control dockerfile
- go over all the flags used there
## networking
- serious topic: requires knowledge of operating systems theory,
parallelism, IPC, the full internet stack,...
- we cover just the bare essentials needed to connect to a robot
and have an idea of what's going on
- LAN is not WAN, but it's still very cool
- IP addresses
- ports
- TCP/UDP
- sockets
- creating new connections with nm-connection-manager
- nmcli
- ip addr
- arp-scan
- ping
- netcat ONLY for checking connection ability
## advanced basics
- piping
- forming a script
- using git (cloning, add, commit, push, pull (example in docker))
## 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
## basic info
- pure python
- alternative to ros
- designed for simple systems
- less code (least amount possible)
- directly exposed math
- requires only reading states and sending commands
to be ported onto a new robot
- you need ros for a humanoid, autonomous tractor
or other real big systems
- code developed here is portable to ros, but I need a volunteer to do that
- intended users are mechanics engineering students,
i.e. people strong in engineering math, but no necessarily software engineering
- currently only has support for UR5e and velocity control, but expensions are comming soon
- will get rewritten to C++ and have python bindings via pybind-11 for the official release
- easy installation with docker (demonstrate)
## ur_simple_control
Content:
- basic use
- RobotManager
- ControlLoopManager
- visualization
- logging
### basic use
- every parameter is an argument
- predefined functions like CompliantMoveL
### 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
- if you want to add more things, look into meshcat
- define your own function
### 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
## pinocchio
- 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
will be added later
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment