π Updates
Here are updates and the recent changes we've made to the Jacobi library.
Here are updates and the recent changes we've made to the Jacobi library.
08 March 2024
π Done
It's a past bug that had been fixed byut appeared again, so I'm posting a new bug report.
Using Studio Live, the method studio.reset() does not remove all obstacles from the scene.
30 January 2024
π Done
The joint limits of the robots seem to be incorrect in the Studio > Control > Joint Position panel.
It is sometimes possible to manually input / use the slider to define a value outside of the actual robot's joint limits (for instance: -2.9671
for the Panda's joint1 when the lower limit is supposed to be -2.8973
) and sometimes impossible to input a value that should be in range because the slider's limit is too restrictive (for instance: UR5's joint6 blocked at -3.141593
when the actual limit is -6.2832
).
08 January 2024
π Done
I tested planning for a Panda joint configuration that exceeds a joint limit (panda_joint2
going to 100
when its max position is supposed to be 1.7628
).
The planner returned a trajectory that indeed reaches this out-of-bound value (see attached image).
30 December 2023
π Done
Is there any newsletter / feed to to get notified as soon as a new version of Jacobi Motion is released?
If not, what about creating one?
08 December 2023
π Done
Using Studio Live, the method studio.reset()
does not remove all obstacles from the scene. One object seems to always stay in, although not necessarily the same one.
After adding objects once again, studio.reset()
now leaves two objects in the scene. In my experience, I never got more than two objects staying though, even after repeating the operations multiple times.
29 November 2023
π Done
Hi,
Unless I'm doing something wrong, it seems there's an error in the Euler angles returned by a jacobi.Frame
created from a quaternion.
Here is a minimal code to reproduce the error where the Euler angles are compared with the ones computed by scipy (scipy also agrees with the results of our own internal library):
import numpy as np
from scipy.spatial.transform import Rotation
import jacobi
for k in range(10):
q_xyzw = np.array([2 * np.random.rand() - 1, 2 * np.random.rand() - 1, 2 * np.random.rand() - 1, 2 * np.random.rand() - 1])
q_xyzw = q_xyzw / np.linalg.norm(q_xyzw)
print("")
print("jacobi euler: ", *[f"{e:+2.5f}" for e in jacobi.Frame.from_quaternion(0, 0, 0, q_xyzw[3], q_xyzw[0], q_xyzw[1], q_xyzw[2]).euler[3:]])
print(" scipy euler: ", *[f"{e:+2.5f}" for e in Rotation.from_quat(q_xyzw).as_euler("xyz")])
26 September 2023
π Done
Hi,
I'm trying to install the on-premise version of Jacobi today. I followed the instructions from here and could install the wheel without any issue. However, I don't have any jacobi-get-license
executable on my machine, and I didn't find where I'm supposed to get it.
Could you tell me where to find it please?
Thanks
26 September 2023
π Done
The command pip install jacobi-motion
currently fails with the following error message:
ERROR: Could not find a version that satisfies the requirement jacobi-motion (from versions: none)
ERROR: No matching distribution found for jacobi-motion
Manually specifying a version (ex: 0.0.21
) raises to the same error.
Context:
22 September 2023
π Done
There is problem with compiling ABB driver:
0.537 -- The CXX compiler identification is GNU 9.4.0
0.540 -- Check for working CXX compiler: /usr/bin/c++
0.597 -- Check for working CXX compiler: /usr/bin/c++ -- works
0.598 -- Detecting CXX compiler ABI info
0.653 -- Detecting CXX compiler ABI info - done
0.663 -- Detecting CXX compile features
0.663 -- Detecting CXX compile features - done
0.668 -- Looking for C++ include pthread.h
0.736 -- Looking for C++ include pthread.h - found
0.736 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
0.795 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
0.795 -- Looking for pthread_create in pthreads
0.843 -- Looking for pthread_create in pthreads - not found
0.843 -- Looking for pthread_create in pthread
0.899 -- Looking for pthread_create in pthread - found
0.900 -- Found Threads: TRUE
0.904 -- Configuring done
0.908 -- Generating done
0.909 -- Build files have been written to: /root/jacobi/driver/build
0.929 Scanning dependencies of target example-run
0.935 [ 12%] Building CXX object CMakeFiles/example-run.dir/examples/run.cpp.o
1.135 /root/jacobi/driver/examples/run.cpp:7:10: fatal error: jacobi/drivers/abb.hpp: No such file or directory
1.135 7 | #include <jacobi/drivers/abb.hpp>
1.135 | ^~~~~~~~~~~~~~~~~~~~~~~~
1.135 compilation terminated.
1.141 make[2]: *** [CMakeFiles/example-run.dir/build.make:63: CMakeFiles/example-run.dir/examples/run.cpp.o] Error 1
1.141 make[1]: *** [CMakeFiles/Makefile2:82: CMakeFiles/example-run.dir/all] Error 2
1.141 make: *** [Makefile:130: all] Error 2
It is probably due to breaking change in the newest driver version: change include/jacobi/driver into /include/jacobi/drivers directory
06 September 2023
π Done
There is no information about minimal version of python required for abb driver. According to pypi page it is 3.9 (https://pypi.org/project/jacobi-abb-driver/0.0.9/#files) which is not consistent to the motion library where documentation stated that there is python needed in version 3.7 or above.
06 September 2023
π Done
Documentation of the driver (https://docs.jacobirobotics.com/api/py.html#Driver) states that there are 3 methods for Driver class : is_running(), get_current_joint_position(), get_current_state() . Actually none of those exists and there are attributes is_running, current_joint_position, current_state.
06 September 2023
π Done
In ABB driver documentation (https://docs.jacobirobotics.com/motion/driver/abb.html), example stated that one should do
from jacobi_abb_driver import ABBDriver
while correct line is
from jacobi_driver_abb import ABBDriver
17 August 2023
π Done
Hello,
The Franka Panda always stays fixed in Studio. The robot does not track the TCP target (see attachment), not does it move when visualizing a motion that was successfully calculated.
Thanks
31 July 2023
π Done
I've upgrade jacobi-motion to the latest version=0.0.17 and am using python 3.8.10
I can use the planner to plan from a start to goal waypoint, but the following code fails on line trajectory = planner.plan(waypoints)
planner = Planner('xxx', delta_time=0.01) # [s]
planner.set_authentication(
'xxx', 'xxx')
trajectory = planner.plan(
start=[0, 0, 0, 0, 0.32, 0.0, -0.68, 0.0, -1.57, 0.97, 1.57],
goal=[0, 0, 0, 0, 0.32, 2.0, -0.68, 0.0, -1.57, 0.97, 1.57]) # this passes
waypoints = [[0, 0, 0, 0, 0.32, 0.0, -0.68, 0.0, -1.57, 0.97, 1.57],
[0, 0, 0, 0, 0.32, 2.0, -0.68, 0.0, -1.57, 0.97, 1.57],
[0, 0, 0, 0, 0.32, 0.0, -0.68, 0.0, -1.57, 0.97, 1.7]]
trajectory = planner.plan(waypoints) # this fails
I get the following error:
Traceback (most recent call last):
File "jacobi_testing.py", line 22, in <module>
trajectory = planner.plan(waypoints)
jacobi.JacobiError:
[jacobi.exception.planner]
Please set up an environment via the Jacobi API.
13 May 2023
π Done
After executing motion the ABBDriver moves the robot to some default pose (seems like it's the pose the robot was in when the driver was created?). Expected behaviour is to stay where the motion finished.
The rapid program was configured with EGM_STOP_HOLD flag:
EGMRunJoint egm_id, EGM_STOP_HOLD, \J1 \J2 \J3 \J4 \J5 \J6 \CondTime:=10;
If program is shutdown just after the move is finished the robot stays in place.
13 May 2023
π Done
There is an error while compiling ABB driver version 0.0.7
#0 0.706 -- Build files have been written to: /root/jacobi/driver/build
#0 0.728 Scanning dependencies of target example-run
#0 0.735 [ 12%] Building CXX object CMakeFiles/example-run.dir/examples/run.cpp.o
#0 3.445 /root/jacobi/driver/examples/run.cpp: In function βint main(int, char**)β:
#0 3.445 /root/jacobi/driver/examples/run.cpp:37:87: error: no matching function for call to βjacobi::driver::ABBDriver::ABBDriver(<brace-enclosed initializer list>)β
#0 3.445 37 | ABBDriver driver {&planner, args["host"].as<std::string>(), args["port"].as<int>()};
#0 3.445 | ^
#0 3.445 In file included from /root/jacobi/driver/examples/run.cpp:7:
#0 3.445 /root/jacobi/driver/include/jacobi/driver/abb.hpp:46:14: note: candidate: βjacobi::driver::ABBDriver::ABBDriver(jacobi::Planner*, int)β
#0 3.445 46 | explicit ABBDriver(Planner* planner, int port);
#0 3.445 | ^~~~~~~~~
#0 3.445 /root/jacobi/driver/include/jacobi/driver/abb.hpp:46:14: note: candidate expects 2 arguments, 3 provided
#0 5.892 make[2]: *** [CMakeFiles/example-run.dir/build.make:63: CMakeFiles/example-run.dir/examples/run.cpp.o] Error 1
#0 5.892 make[1]: *** [CMakeFiles/Makefile2:82: CMakeFiles/example-run.dir/all] Error 2
#0 5.893 make: *** [Makefile:130: all] Error 2
20 April 2023
π Done
The ABBDriver methods: run(), move_to() and move_to_async() results in killing the program without executing the motion or raising any exception.
run_async() executes motion to some point and kills the program without any indication of a reason.
20 April 2023
π Done
The driver does not keep the connection to the EGM stream - if no command is sent to the ABBDriver within the EGMRunJoint timeout, the connection is dropped.
18 April 2023
π Done
There is a typo in egmident on https://docs.jacobirobotics.com/motion/examples/03-motion-interface.html in Rapid program:
LOCAL VAR emgident egm_id;
where it should be:
LOCAL VAR egmident egm_id;
24 March 2023
07 March 2023
π Done
The library should raise an error when a user tries to add an obstacles despite using a Studio project by set_project
.
07 March 2023
π Done
I noticed it is possible now to run training for region motions. On the training page all the started trainings have finished, except for one, the "Target Region - Source Region". Has something bugged there?