From 95c3e9c1c03267476d98db2250a4b524388ffbda Mon Sep 17 00:00:00 2001
From: m-guberina <gubi.guberina@gmail.com>
Date: Fri, 20 Sep 2024 13:35:07 +0200
Subject: [PATCH] added new todos, started working towards dokerizing this

---
 Dockerfile                                    |  11 ++++
 README.md                                     |   4 +-
 TODOS_2024_09_19                              |  50 ++++++++++++++++++
 docs/gepetto.md                               |   7 ---
 .../clik_point_to_point.cpython-312.pyc       | Bin 14572 -> 14441 bytes
 .../clik/clik_point_to_point.py               |   2 +-
 6 files changed, 65 insertions(+), 9 deletions(-)
 create mode 100644 Dockerfile
 create mode 100644 TODOS_2024_09_19
 delete mode 100644 docs/gepetto.md

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..0581e60
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,11 @@
+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
diff --git a/README.md b/README.md
index 4ca8353..8fb189b 100644
--- a/README.md
+++ b/README.md
@@ -13,13 +13,15 @@
   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
 - matrix operations are done with Eigen in C++, and NumPy in Python
+
 # libraries used and their purpose
 -------------
 - 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
-- 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 
   as the real robot, making coding and testing easier)
+
 # contents of this repository
 -------------
 - basic documentation can be found in the docs directory: official UR documentation on the robot's capabilities
diff --git a/TODOS_2024_09_19 b/TODOS_2024_09_19
new file mode 100644
index 0000000..a6257c4
--- /dev/null
+++ b/TODOS_2024_09_19
@@ -0,0 +1,50 @@
+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
diff --git a/docs/gepetto.md b/docs/gepetto.md
deleted file mode 100644
index db044a2..0000000
--- a/docs/gepetto.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## 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
diff --git a/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc b/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc
index 0e87eb7a7f7d8001f3804aec246ec258c7d24557..f6eb30f9a3134ffe664f07421d12d9180a5ab800 100644
GIT binary patch
delta 218
zcmaD;__BcaG%qg~0|NuYcCj~Uhd1)_8!<UBO|}tM7G+w^2oh&ts9}s}g0L7ECSOv}
z;j3X>%?uH!WhvpE94jlsQp1=fFnOVbFr(1qiK4=j=Noe{f+Z&V7;{5dIF+DFyf+qr
z=$I^H!p|r=S;s`4Q5<Y)yoms#<YX=tnaMpSyo|DwXPGoI@=rD}UCVxsfq|ic;mKrQ
LHJQ!wW@niI%5pVG

delta 130
zcmaD^@TQRWG%qg~0|Ns?N{oNnp^d!!Mobf!Cd(;rW@e~ioP0&OV)7p&?#cI+7qBzU
zVX0+JVV-<XS#I(fV}3^2$#;z98RaKW6cwJ#Zz8~`I5|&KX0nY5FQe*YFOx=5;UZoJ
g28JRx5K#ysiWnFeCZ91`%lLM(hMME%Ii_cs06khJmH+?%

diff --git a/python/ur_simple_control/clik/clik_point_to_point.py b/python/ur_simple_control/clik/clik_point_to_point.py
index a442d81..bf86a9a 100644
--- a/python/ur_simple_control/clik/clik_point_to_point.py
+++ b/python/ur_simple_control/clik/clik_point_to_point.py
@@ -350,7 +350,7 @@ if you don't care about rotation, make it np.zeros((3,3))
 """
 # add a threshold for the wrench
 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)
     clik_controller = getClikController(args)
     controlLoop = partial(controlLoopCompliantClik, args, robot)
-- 
GitLab