ut-austin-rpl / deoxys_control Goto Github PK
View Code? Open in Web Editor NEWA modular, real-time controller library for Franka Emika Panda robots
License: Apache License 2.0
A modular, real-time controller library for Franka Emika Panda robots
License: Apache License 2.0
while I run
./auto_scripts/auto_arm.sh config/charmander.yml
get
"
Make sure you are in the Performance Mode!!!
performance performance performance performance performance performance
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
bin/franka-interface: error while loading shared libraries: libyaml-cpp.so.0.8: cannot open shared object file: Error 40
"
How do I combine the controller with some motion planner?
When I use the osc controller to move the robot to a far point, it would be inaccuracy.
However, when I apply the generated trajectory with the joint controller, although this motion is accurate, the control is not smooth, I wonder how to solve this problem.
I would appreciate it if you could help me.
Hi,
Thank you for this repository..
I'm trying to deploy a RL model that is trained on robosuite environment to a real Panda arm.
my settings: environment: Lift, controller OSC-POSE, is_delta= True, the model gets observations (42,) as input and outputs actions (7,)
eef_pos
and eef_quat
to include it in the observations (is it in base frame or in world frame which are not consistent in the simulator, also it is not clear if it comes from gripper_eef
or from hand_pose
). would I use FrankaState msg O_T_EE or another one.Many thanks, and I appreciate any help.
regards
I use SpaceMouse Compact. The vendor_id=9583, product_id=50741
But it seems that hid cannot open the device when I run python examples/run_deoxys_with_spacemouse.py
Traceback (most recent call last):
File "examples/run_deoxys_with_space_mouse.py", line 71, in <module>
main()
File "examples/run_deoxys_with_space_mouse.py", line 26, in main
device = SpaceMouse(vendor_id=args.vendor_id, product_id=args.product_id)
File "/home/isrlab/codebase/deoxys_control/deoxys/deoxys/utils/io_devices/spacemouse.py", line 118, in __init__
self.device.open(vendor_id, product_id) # SpaceMouse
File "hid.pyx", line 142, in hid.device.open
OSError: open failed
I get the vendor_id and product_id from hid.enumerate()
. I found that after connecting the SpaceMouse to the computer, this item will appear, so I am sure this is its id. I don’t know if these outputs mean that the spacemouse is successfully connected.
when I run python examples/run_deoxys_with_space_mouse.py
I get
pybullet build time: May 20 2022 19:44:17
Opening SpaceMouse device
Manufacturer: 3Dconnexion
Product: SpaceMouse Compact
Control Command
Right button reset simulation
Left button (hold) close gripper
Move mouse laterally move arm horizontally in x-y plane
Move mouse vertically move arm vertically
Twist mouse about an axis rotate arm about a corresponding axis
ESC quit
7
Exception in thread Thread-1:
Traceback (most recent call last):
File "/home/rl/miniconda3/envs/deoxys/lib/python3.8/threading.py", line 932, in _bootstrap_inner
OSC_POSE
self.run()
File "/home/rl/miniconda3/envs/deoxys/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/rl/Documents/deoxys_control/deoxys/deoxys/utils/io_devices/spacemouse.py", line 236, in run
self.roll = convert(d[7], d[8])
IndexError: list index out of range
@zhuyifengzju
I have a simple question.
In the ReadMe, it is written that "If you are a robosuite user, Deoxys APIs provide seamless transfer from you simulation codebase to real robot experiments!"
I am not able to find any such information or tutorial in the documentation.
What do the lines actually mean? Is it for sim2real transfer or transfer of codebase from RoboSuite to the Deoxys pipeline? Please explain.
Hi,
Thanks for the great work. Unfortunately, I am not able to work-with properly the RTOS on the NUC-11.
The precompiled rt-lernel-5.11.4-rt11 doesn't seems to be compatible with NUC hardware.
The speed is slow and the ethernet is not working which is essential for the robot.
Can you provide or direct towards the newer precompiled rt kernel versions.
def move_to_coord(target, gripper, max_step=100, action_scale=0.7, scale_factor_low=0.5, scale_factor_high=2.0, tol=5e-3):
distance = 100
prev_pos = np.zeros(3)
while True:
if len(robot_interface._state_buffer) == 0 or np.max(np.abs(robot_interface.last_state.O_T_EE)) < 1e-3:
continue
break
for step in range(max_step):
if len(robot_interface._state_buffer) > 0:
cur_joint = robot_interface._state_buffer[-1].q
# cur_pos = urdf_model.get_link_pose(cur_joint, 3)[0]
# cur_pos = np.array(cur_pos)
_, cur_pos = robot_interface.last_eef_rot_and_pos
cur_pos = cur_pos.reshape(3)
offset = target - cur_pos
distance = np.linalg.norm(offset)
# print(offset, distance, tol)
if distance < tol:
break
delta = np.linalg.norm(cur_pos - prev_pos)
prev_pos = cur_pos
# print(distance, delta)
if np.max(np.abs(np.array(cur_joint) - np.zeros(7))) < 5e-3:
action = np.zeros(3)
else:
action = np.copy(offset) / np.linalg.norm(offset)
action *= action_scale
if distance < tol * 10:
action *= scale_factor_low
if delta < tol and step > 0.2 * max_step:
# stopped for a while
rel_scale = (1.0 * step / max_step - 0.2) * 2
rel_scale = (1 - rel_scale) + rel_scale * scale_factor_high
action *= rel_scale
action = np.clip(action, a_min=-1, a_max=1)
else:
action = np.zeros(3)
gripper_state = -1.0 if gripper else 1.0
action = np.concatenate((action, np.array([0, 0, 0, gripper_state])))
controller_cfg.state_estimator_cfg.is_estimation = True
controller_cfg.state_estimator_cfg.alpha_eef = 0.8
robot_interface.control(
controller_type=controller_type, action=action, controller_cfg=controller_cfg
)
return distance < tol #, distance, offset #, cur_joint
I tried running several example scripts but the robot doesn't move.
However, when I run the commane ./auto_scripts/auto_gripper.sh config/charmander.yml
, the gripper can close and open.
After running examples/position_only_movement.py , I got the following log files::
debug.log
[Deoxys WARNING] 2024-01-08 21:35:30,801 - This is a beta script
[Deoxys ERROR] 2024-01-08 21:36:06,820 - NO errors. Just need to test error message
error.log
[Deoxys ERROR] 2024-01-08 21:36:06,820 - NO errors. Just need to test error message
[Deoxys ERROR] 2024-01-08 21:36:06,820 - NO errors. Just need to test error message
Output in terminal:
[Deoxys Examples WARNING] This is a beta script (Ln 28)
OSC_POSITION
OSC_POSITION
OSC_POSITION
OSC_POSITION
OSC_POSITION
OSC_POSITION
OSC_POSITION
[Deoxys Examples ERROR] NO errors. Just need to test error message (Ln 51)
After running examples/reset_robot_joints.py, I got the following:
debug.log
[Deoxys INFO] 2024-01-08 21:40:31,876 - Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:31,877 - Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:31,878 - Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:31,879 - Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:31,928 - Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:31,929 - Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:31,978 - Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:31,979 - Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:32,029 - Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:32,030 - Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:32,078 - Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
[Deoxys INFO] 2024-01-08 21:40:32,079 - Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921]
.....
Output in terminal:
pybullet build time: Nov 28 2023 23:51:11
[Deoxys Examples INFO] Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 83)
[Deoxys Examples INFO] Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 84)
[Deoxys Examples INFO] Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 83)
[Deoxys Examples INFO] Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 84)
[Deoxys Examples INFO] Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 83)
[Deoxys Examples INFO] Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 84)
[Deoxys Examples INFO] Current Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 83)
[Deoxys Examples INFO] Desired Robot joint: [-2.299 0.54 2.288 -2.452 -0.426 2.059 0.921] (Ln 84)
...
Which goes on forever.
Doesn't seem like the desired position successfully went to the robot. Do you have any insights on what the issue was? Many thanks!
Hi @zhuyifengzju @ut-rpl-robots
I am facing some issues while using the space mouse to control the Panda Franka robot:
(1) When running the example/run_deoxys_with_space_mouse.py , my robot had a slow free-fall (as if it were happening due to gravity). Is it a normal behaviour when using the space mouse? I think it should not be. I have tested the other examples for different controllers, and they are running fine.
(2) My space mouse has vendor-id=9583 and product-id=50741. Which seems a bit older. Your code does not support this device, but RoboSuite does. I imported the code from RoboSuite, and it does work with deoxys as well. The only issue is that when I pressed the right button of the space mouse, it simply threw an error and exited.
Firstly, is there any reason for removing the support for this device in deoxys?
Secondly, is the right-button behavior required for a real robot?
Hello,
I have troubles running make -j build_franka=1
and hope you can help me out. This is how I set up my paths:
echo $LD_LIBRARY_PATH
/lib:/usr/local/lib/:/opt/ros/noetic/lib:/opt/ros/noetic/lib/x86_64-linux-gnu
But when I run the make command, it fails linking the depending libraries:
[ 74%] Linking CXX executable zmq-client
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::ByteSizeLong() const':
franka_robot_state.pb.cc:(.text+0x532): undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Duration::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x674): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x68f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage_Duration::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x774): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x78f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage::ByteSizeLong() const':
franka_robot_state.pb.cc:(.text+0xe8a): undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage_Duration::~FrankaGripperStateMessage_Duration()':
franka_robot_state.pb.cc:(.text+0xf9e): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0xfe4): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Errors::~FrankaRobotStateMessage_Errors()':
franka_robot_state.pb.cc:(.text+0x106e): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x10b4): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Duration::~FrankaRobotStateMessage_Duration()':
franka_robot_state.pb.cc:(.text+0x113e): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):franka_robot_state.pb.cc:(.text+0x1184): more undefined references to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()' follow
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x150e): undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint32ToArrayOutOfLineHelper(unsigned int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x1564): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x157f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x1597): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x15af): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x15c7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::~FrankaGripperStateMessage()':
franka_robot_state.pb.cc:(.text+0x1629): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x16ca): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x170f): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage::~FrankaRobotStateMessage()':
franka_robot_state.pb.cc:(.text+0x19e0): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::~FrankaGripperStateMessage()':
franka_robot_state.pb.cc:(.text+0x1b5c): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):franka_robot_state.pb.cc:(.text+0x1bf9): more undefined references to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()' follow
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Errors::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x2184): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x219c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x21b4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x21cc): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x21e4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):franka_robot_state.pb.cc:(.text+0x21fc): more undefined references to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)' follow
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x33b4): undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint32ToArrayOutOfLineHelper(unsigned int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x348b): undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint32ToArrayOutOfLineHelper(unsigned int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x35c5): undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint32ToArrayOutOfLineHelper(unsigned int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3627): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3647): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3667): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3684): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3b84): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3b9f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3bb7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3bcf): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3be4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3c07): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3c1f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3c34): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3c4c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3c5f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3c77): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3c8c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3ca7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3cbc): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3cd7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3cec): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3d07): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3d1c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3d34): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3d54): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3d77): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3d8f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3da4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3dc7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3ddc): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3df4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3e17): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3e2f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3e44): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3e64): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3e87): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3e9c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3eb7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3ecf): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3ee4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3f07): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3f1c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3f34): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3f57): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3f6c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3f87): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3f9f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3fb4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3fd4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x3ff7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x400f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4024): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4047): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x405c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4074): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4097): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x40af): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x40c4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x40e4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4104): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x411f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4134): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x414f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4164): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x417c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4197): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x41af): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x41c4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x41e7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x41fc): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4214): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4237): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x424c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4267): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x427f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4294): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x42b7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x42cc): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x42e4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4307): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x431f): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4334): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4357): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x436c): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x4384): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x43a7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x43c7): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x43e4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_RobotMode_descriptor()':
franka_robot_state.pb.cc:(.text+0x4412): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const*, bool)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage_Duration* google::protobuf::Arena::CreateMaybeMessage<FrankaGripperStateMessage_Duration>(google::protobuf::Arena*)':
franka_robot_state.pb.cc:(.text+0x4ea5): undefined reference to `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, std::type_info const*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage* google::protobuf::Arena::CreateMaybeMessage<FrankaGripperStateMessage>(google::protobuf::Arena*)':
franka_robot_state.pb.cc:(.text+0x4f15): undefined reference to `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, std::type_info const*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Errors* google::protobuf::Arena::CreateMaybeMessage<FrankaRobotStateMessage_Errors>(google::protobuf::Arena*)':
franka_robot_state.pb.cc:(.text+0x4f95): undefined reference to `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, std::type_info const*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Duration* google::protobuf::Arena::CreateMaybeMessage<FrankaRobotStateMessage_Duration>(google::protobuf::Arena*)':
franka_robot_state.pb.cc:(.text+0x5005): undefined reference to `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, std::type_info const*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage* google::protobuf::Arena::CreateMaybeMessage<FrankaRobotStateMessage>(google::protobuf::Arena*)':
franka_robot_state.pb.cc:(.text+0x5079): undefined reference to `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, std::type_info const*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage_Duration::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
franka_robot_state.pb.cc:(.text+0x575a): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x57da): undefined reference to `google::protobuf::internal::EpsCopyInputStream::DoneFallback(int, int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x5821): undefined reference to `google::protobuf::internal::ReadTagFallback(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x5834): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Errors::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
franka_robot_state.pb.cc:(.text+0x5909): undefined reference to `google::protobuf::internal::ReadTagFallback(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x5949): undefined reference to `google::protobuf::internal::EpsCopyInputStream::DoneFallback(int, int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x63fe): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x6470): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x648d): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x64ad): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x64cd): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x64ed): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):franka_robot_state.pb.cc:(.text+0x650d): more undefined references to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)' follow
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Duration::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
franka_robot_state.pb.cc:(.text+0x69aa): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x6a2a): undefined reference to `google::protobuf::internal::EpsCopyInputStream::DoneFallback(int, int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x6a71): undefined reference to `google::protobuf::internal::ReadTagFallback(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x6a84): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
franka_robot_state.pb.cc:(.text+0x9b5a): undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x9bd4): undefined reference to `google::protobuf::internal::EpsCopyInputStream::DoneFallback(int, int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x9c81): undefined reference to `google::protobuf::internal::ReadTagFallback(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x9cc2): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x9d04): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x9d24): undefined reference to `google::protobuf::internal::VarintParseSlow32(char const*, unsigned int)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
franka_robot_state.pb.cc:(.text+0x9e01): undefined reference to `google::protobuf::internal::ReadTagFallback(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x9e3d): undefined reference to `google::protobuf::internal::EpsCopyInputStream::DoneFallback(int, int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0x9e9f): undefined reference to `google::protobuf::internal::PackedDoubleParser(void*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0xa371): undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0xa516): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0xa55a): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: franka_robot_state.pb.cc:(.text+0xa573): undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::Clear()':
franka_robot_state.pb.cc:(.text+0xb8ea): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::CopyFrom(FrankaGripperStateMessage const&)':
franka_robot_state.pb.cc:(.text+0xc1bb): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Errors::ByteSizeLong() const':
franka_robot_state.pb.cc:(.text+0x358): undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage_Duration::ByteSizeLong() const':
franka_robot_state.pb.cc:(.text+0x397): undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Duration::ByteSizeLong() const':
franka_robot_state.pb.cc:(.text+0x3d7): undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage_Duration::GetMetadata() const':
franka_robot_state.pb.cc:(.text+0x3fa): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::GetMetadata() const':
franka_robot_state.pb.cc:(.text+0x41a): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Errors::GetMetadata() const':
franka_robot_state.pb.cc:(.text+0x43a): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Duration::GetMetadata() const':
franka_robot_state.pb.cc:(.text+0x45a): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage::GetMetadata() const':
franka_robot_state.pb.cc:(.text+0x47a): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::ByteSizeLong() const':
franka_robot_state.pb.cc:(.text+0x58d): undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Duration::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x667): undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage_Duration::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x767): undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage::ByteSizeLong() const':
franka_robot_state.pb.cc:(.text+0xf3a): undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaGripperStateMessage::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x1553): undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage_Errors::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x250b): undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `FrankaRobotStateMessage::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
franka_robot_state.pb.cc:(.text+0x3616): undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `google::protobuf::internal::InternalMetadata::~InternalMetadata()':
franka_robot_state.pb.cc:(.text._ZN6google8protobuf8internal16InternalMetadataD2Ev[_ZN6google8protobuf8internal16InternalMetadataD5Ev]+0x25): undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `google::protobuf::UnknownFieldSet* google::protobuf::internal::InternalMetadata::mutable_unknown_fields_slow<google::protobuf::UnknownFieldSet>()':
franka_robot_state.pb.cc:(.text._ZN6google8protobuf8internal16InternalMetadata27mutable_unknown_fields_slowINS0_15UnknownFieldSetEEEPT_v[_ZN6google8protobuf8internal16InternalMetadata27mutable_unknown_fields_slowINS0_15UnknownFieldSetEEEPT_v]+0x2b): undefined reference to `google::protobuf::Arena::AllocateAlignedWithCleanup(unsigned long, std::type_info const*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o): in function `_GLOBAL__sub_I.00102__FrankaGripperStateMessage_Duration_default_instance_':
franka_robot_state.pb.cc:(.text.startup+0x13): undefined reference to `google::protobuf::internal::AddDescriptorsRunner::AddDescriptorsRunner(google::protobuf::internal::DescriptorTable const*)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):(.data.rel.ro+0x0): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):(.data.rel.ro+0x10): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):(.data.rel.ro+0x20): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):(.data.rel.ro+0x30): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: libshared_protobuf.a(franka_robot_state.pb.cc.o):(.data.rel.ro+0x40): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
collect2: error: ld returned 1 exit status
make[3]: *** [CMakeFiles/zmq-client.dir/build.make:87: zmq-client] Fehler 1
make[2]: *** [CMakeFiles/Makefile2:308: CMakeFiles/zmq-client.dir/all] Fehler 2
When I have a look at the CMake cache, the protobuf.so is set up correctly. I would appreciate any help.
Hi,
I tried couple of times to run your code but there is error when try to do make -j build_franka=1
Here is the output
[ 67%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/utils/common_utils.cpp.o [ 68%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/utils/control_utils.cpp.o [ 69%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/utils/robot_utils.cpp.o [ 69%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/utils/zmq_utils.cpp.o [ 70%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/controllers/osc_impedance.cpp.o [ 71%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/controllers/osc_position_impedance.cpp.o [ 72%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/controllers/osc_yaw_impedance.cpp.o [ 72%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/controllers/joint_position.cpp.o [ 73%] Building CXX object CMakeFiles/shared_utils.dir/franka-interface/src/controllers/joint_impedance.cpp.o /home/etfrobot/panda_ws/src/deoxys_control/deoxys/franka-interface/src/controllers/joint_impedance.cpp: In member function ‘virtual std::array<double, 7ul> controller::JointImpedanceController::Step(const franka::RobotState&, const Eigen::Matrix<double, 7, 1, 0>&)’: /home/etfrobot/panda_ws/src/deoxys_control/deoxys/franka-interface/src/controllers/joint_impedance.cpp:95:50: warning: variable ‘t1’ set but not used [-Wunused-but-set-variable] std::chrono::high_resolution_clock::time_point t1 = ^ [ 74%] Linking CXX static library libshared_utils.a [ 74%] Built target shared_utils [ 75%] Building CXX object CMakeFiles/franka-interface.dir/franka-interface/src/franka_control_node.cpp.o In file included from /home/etfrobot/panda_ws/src/deoxys_control/deoxys/spdlog/include/spdlog/spdlog.h:12:0, from /home/etfrobot/panda_ws/src/deoxys_control/deoxys/franka-interface/src/franka_control_node.cpp:16: /home/etfrobot/panda_ws/src/deoxys_control/deoxys/spdlog/include/spdlog/common.h: In function ‘constexpr spdlog::string_view_t spdlog::details::to_string_view(const memory_buf_t&)’: /home/etfrobot/panda_ws/src/deoxys_control/deoxys/spdlog/include/spdlog/common.h:350:42: error: call to non-constexpr function ‘const T* fmt::v9::detail::buffer<T>::data() const [with T = char]’ return spdlog::string_view_t{buf.data(), buf.size()}; ^ /home/etfrobot/panda_ws/src/deoxys_control/deoxys/franka-interface/src/franka_control_node.cpp: In function ‘int main(int, char**)’: /home/etfrobot/panda_ws/src/deoxys_control/deoxys/franka-interface/src/franka_control_node.cpp:282:7: warning: unused variable ‘state_sub’ [-Wunused-variable] } state_sub{}; ^ CMakeFiles/franka-interface.dir/build.make:75: recipe for target 'CMakeFiles/franka-interface.dir/franka-interface/src/franka_control_node.cpp.o' failed make[3]: *** [CMakeFiles/franka-interface.dir/franka-interface/src/franka_control_node.cpp.o] Error 1 CMakeFiles/Makefile2:297: recipe for target 'CMakeFiles/franka-interface.dir/all' failed make[2]: *** [CMakeFiles/franka-interface.dir/all] Error 2 Makefile:155: recipe for target 'all' failed make[1]: *** [all] Error 2 Makefile:42: recipe for target 'build' failed make: *** [build] Error 2
Thank you for such a useful library.
To successfully run example/position_only_movement.py, it is necessary to install the simplejson
library, which seems to be missing from requirements.txt.
Just a reminder :)
Hi, thank you for your wonderful work.
Does Deoxys support RGB-D camera calibration? Or is it still necessary to perform camera calibration under ROS, for example, using easy_handeye?
It seems the particular module is missing from the codebase.
Any plans for adding it to the codebase?
Thanks!
When I am trying to install the package on RTOS side with command 'make -j build_franka=1', it giving the following errors:
/home/panda/deoxys_rtos_ws/deoxys_control/deoxys/build/proto/deoxys/franka_controller.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
12 | #error This file was generated by a newer version of protoc which is
| ^~~~~
/home/panda/deoxys_rtos_ws/deoxys_control/deoxys/build/proto/deoxys/franka_controller.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
13 | #error incompatible with your Protocol Buffer headers. Please update
| ^~~~~
/home/panda/deoxys_rtos_ws/deoxys_control/deoxys/build/proto/deoxys/franka_controller.pb.h:14:2: error: #error your headers.
Please help me , I am not able to resove these errors after so much of trying.
Unfortunately, protoc is installed at three locations with three different versions:
/usr/bin/protoc 3.6.1
/usr/local/bin/protoc 3.14.0
~/.local/bin/protoc 3.19.6
It seems the makefile looks for /usr/local/bin/protoc.
The code lines where the errors is coming compare with version 3.14.0 only at franka_controller.pb.h:12:2
Help is required !!
Thank you for your work, are there any plans to support Franka Research 3 Arm?
I think there is a bug in the method that computes the goal pose of the OCS impedance controller.
In line 92-94, the current end effector position is added to the action. This is in the section of code that is executed if is_delta == false
, so it appears to be an error.
Testing the controller on a robot verifies this notion. Even though I specify a fixed target pose from the python side, the end-effector keeps drifting. Removing the term with the current end-effector position fixes this.
PS: Thanks for making this library.
Hi
Thanks for this repo,
I have a model trained on robosuite it performs perfectly there. But when trying to deploy it on the real robot the movement was realy bad. As a test I recorded the observations for a whole episode in the simulator then just read it and inputed it to the model, the outputted actions are sent to the controller through deoxys as explained in the example. Here the performance is just similar to the simulator smooth and successfull.
But when collecting the observations from the real arm via libfranka msgs and camera the problem comes out. Please consider that I adjusted all the values of eef pose similar to robosuite ( the eef rotation in robosuite is the hand rotation which is eef rotated by -90 degrees. And also all values are in world frame not the robot frame. I tried also using interpolators but did not solve the problem. I'm using realsense webcam and Aruco marker detector from cv2
Would you please give any idea that may help. Also how to make use frm the file osc_benchmark.py as I am using osc controller
Thanks in advance ..
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.