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

added new todos, started working towards dokerizing this

parent 2f26f254
No related branches found
No related tags found
No related merge requests found
FROM ubuntu:jammy
WORKDIR /usr/local/ur_simple_control
# copy repo to workdir
COPY . .
RUN apt update && apt upgrade
# open up meshcat ports
# make this a range
EXPOSE 7000
...@@ -13,13 +13,15 @@ ...@@ -13,13 +13,15 @@
so does pinocchio for the most part. thus almost all the functions used are identical across languages, so does pinocchio for the most part. thus almost all the functions used are identical across languages,
and so c++ implementations can be looked at to analyse python functionality as well and so c++ implementations can be looked at to analyse python functionality as well
- matrix operations are done with Eigen in C++, and NumPy in Python - matrix operations are done with Eigen in C++, and NumPy in Python
# libraries used and their purpose # libraries used and their purpose
------------- -------------
- ur_rtde for the client-side real-time interface for ur robots (we have a UR5e) - ur_rtde for the client-side real-time interface for ur robots (we have a UR5e)
- pinocchio for dynamics intergration, and other robotics-related math on the client side - pinocchio for dynamics intergration, and other robotics-related math on the client side
- gepetto for visualization (has nice integration with pinocchio) - meshcat for visualization (has nice integration with pinocchio)
- Dockerized ur simulator as a simulator (it's a bad simulator, but it uses the same robot-communication API - Dockerized ur simulator as a simulator (it's a bad simulator, but it uses the same robot-communication API
as the real robot, making coding and testing easier) as the real robot, making coding and testing easier)
# contents of this repository # contents of this repository
------------- -------------
- basic documentation can be found in the docs directory: official UR documentation on the robot's capabilities - basic documentation can be found in the docs directory: official UR documentation on the robot's capabilities
......
the primary goal is to make this as easy to use as possible,
and that means a docker image that just needs to be built.
goal 1: ease of use
-----------------------
make a docker image installing everything
1. get clik with visualization to work in a ubuntu22 docker
2. write down the installation process in a Dockerfile
3. create a single loadable docker image however you can
the secondary goal is to re-do the documentation and
add the tutorials going from basic linux to python to
to minimal robotics to the library itself.
to make this less painful clean up the code first.
then just do the pareto optimal code rewrite to make it cleaner
(actually call everything in the step function, maybe finish logging and that's it)
goal 2: clean up the code
---------------------------
1. do all reading and updating into the local class in the step() function --> remove the rest
2. maybe fix logging a bit
3. stop asap
then finish goal 2 by making the docs & tutorialss
goal 3: documentation and tutorials
-----------------------------------
1. documents in text (md/tex) which at least outline the minimal amount of knowledge
2. linux cli video tutorials
2. python essentials video tutorials + some tips on how to learn it quicker (use shell etc)
3. ur_simple_control_library video tutorials, ex. example write circle tracking
set yourself up for research success by using crocoddyl on the real robot,
i.e. get some experience with the basics with the bonus being you can trust
ik not to hit the table
goal 4: more controllers
------------------------
1. finish adding all ik algorithms
2. crocoddyl optimal control with obstacle avoidance (manipulator itself + table/floor is enough)
3. [hard] adjusting the dmp to get back on the path despite external forces
(fix the problem of writing on a non-flat surface/whatever) --> publishable side-project
finally, do what you promised and put this on another robot,
thereby rendering this something publishable in joss
goal 5: panda/yumi
----------------
1. transfer the library to panda or yumi or both
## visualization with gepetto
- https://github.com/Gepetto/gepetto-viewer is the link for more info
- needs to be installed - just pip or apt gepetto-viewer or a similar name(s)
- it needs to be ran with gepetto-gui before it can be called in code.
- for c++ api https://github.com/stack-of-tasks/pinocchio-gepetto-viewer needs to be installed.
when compiling with cmake, you need to se the install prefix to /usr,
i.e. do cmake -DCMAKE_INSTALL_PREFIX=/usr when running cmake
No preview for this file type
...@@ -350,7 +350,7 @@ if you don't care about rotation, make it np.zeros((3,3)) ...@@ -350,7 +350,7 @@ if you don't care about rotation, make it np.zeros((3,3))
""" """
# add a threshold for the wrench # add a threshold for the wrench
def compliantMoveL(args, robot, goal_point): def compliantMoveL(args, robot, goal_point):
assert type(goal_point) == pin.pinocchio_pywrap.SE3 # assert type(goal_point) == pin.pinocchio_pywrap.SE3
robot.Mgoal = copy.deepcopy(goal_point) robot.Mgoal = copy.deepcopy(goal_point)
clik_controller = getClikController(args) clik_controller = getClikController(args)
controlLoop = partial(controlLoopCompliantClik, args, robot) controlLoop = partial(controlLoopCompliantClik, args, robot)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment