diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..0581e6099baa22a0fba733b0a330b958f991b9f1 --- /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 4ca83530c077eacb59e1e328de1436c46138464b..8fb189b80648c4893a3b8d57c078cff983c98f97 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 0000000000000000000000000000000000000000..a6257c4bcbb1ddc3ab5a9a2c9dfcf126cbe584d5 --- /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 db044a23225e77717a884be54610dc43c1b85202..0000000000000000000000000000000000000000 --- 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 Binary files a/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc and b/python/ur_simple_control/clik/__pycache__/clik_point_to_point.cpython-312.pyc differ 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 a442d8157bafa10354200fb2a85b9850c9ea3e2e..bf86a9a5e5d6b42a4452a3151f6baf8bf7a08798 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)