通过ur_rtde工具包使用C++和python控制UR机器人和Robotiq执行末端
安装
- 仅使用python安装
pip install --user ur_rtde
- 我使用的是源码安装,同时要使用python 2.7
# python 2.7
pip install --user pybind11
# python 3.6
pip3 install --user pybind11
# 源码安装ur_rtde
git clone https://gitlab.com/sdurobotics/ur_rtde.git
cd ur_rtde
mkdir build
cd build
# 默认安装 python3
cmake ..
# 使用python 2.7
cmake -DPYBIND11_PYTHON_VERSION=2.7 ..
# 不使用python
cmake -DPYTHON_BINDINGS:BOOL=OFF ..
make
sudo make install
此时得到报错如下:
Scanning dependencies of target rtde
[ 1%] Building CXX object CMakeFiles/rtde.dir/src/robot_state.cpp.o
[ 3%] Building CXX object CMakeFiles/rtde.dir/src/rtde.cpp.o
[ 4%] Building CXX object CMakeFiles/rtde.dir/src/dashboard_client.cpp.o
[ 6%] Building CXX object CMakeFiles/rtde.dir/src/dashboard_enums.cpp.o
[ 7%] Building CXX object CMakeFiles/rtde.dir/src/script_client.cpp.o
[ 9%] Building CXX object CMakeFiles/rtde.dir/src/rtde_control_interface.cpp.o
[ 10%] Building CXX object CMakeFiles/rtde.dir/src/rtde_receive_interface.cpp.o
[ 12%] Building CXX object CMakeFiles/rtde.dir/src/rtde_io_interface.cpp.o
[ 13%] Linking CXX shared library librtde.so
[ 13%] Built target rtde
Scanning dependencies of target rtde_io_client
[ 15%] Building CXX object CMakeFiles/rtde_io_client.dir/src/rtde_io_client.cpp.o
[ 16%] Linking CXX executable rtde_io_client
[ 16%] Built target rtde_io_client
Scanning dependencies of target rtde_receive_client
[ 18%] Building CXX object CMakeFiles/rtde_receive_client.dir/src/rtde_receive_client.cpp.o
[ 20%] Linking CXX executable rtde_receive_client
[ 20%] Built target rtde_receive_client
Scanning dependencies of target rtde_control
[ 21%] Building CXX object CMakeFiles/rtde_control.dir/src/robot_state.cpp.o
[ 23%] Building CXX object CMakeFiles/rtde_control.dir/src/rtde.cpp.o
[ 24%] Building CXX object CMakeFiles/rtde_control.dir/src/dashboard_client.cpp.o
[ 26%] Building CXX object CMakeFiles/rtde_control.dir/src/dashboard_enums.cpp.o
[ 27%] Building CXX object CMakeFiles/rtde_control.dir/src/script_client.cpp.o
[ 29%] Building CXX object CMakeFiles/rtde_control.dir/src/rtde_control_interface.cpp.o
[ 30%] Building CXX object CMakeFiles/rtde_control.dir/src/rtde_receive_interface.cpp.o
[ 32%] Building CXX object CMakeFiles/rtde_control.dir/src/rtde_io_interface.cpp.o
[ 33%] Building CXX object CMakeFiles/rtde_control.dir/src/rtde_python_bindings.cpp.o
/data/hdd1/kb/agile/aoc_grasp01/ur_rtde/src/rtde_python_bindings.cpp:18:16: error: expected constructor, destructor, or type conversion before ‘(’ token
PYBIND11_MODULE(rtde_control, m)
^
/data/hdd1/kb/agile/aoc_grasp01/ur_rtde/src/rtde_python_bindings.cpp:110:16: error: expected constructor, destructor, or type conversion before ‘(’ token
PYBIND11_MODULE(rtde_receive, m)
^
/data/hdd1/kb/agile/aoc_grasp01/ur_rtde/src/rtde_python_bindings.cpp:173:16: error: expected constructor, destructor, or type conversion before ‘(’ token
PYBIND11_MODULE(rtde_io, m)
^
/data/hdd1/kb/agile/aoc_grasp01/ur_rtde/src/rtde_python_bindings.cpp:190:16: error: expected constructor, destructor, or type conversion before ‘(’ token
PYBIND11_MODULE(script_client, m)
^
/data/hdd1/kb/agile/aoc_grasp01/ur_rtde/src/rtde_python_bindings.cpp:209:16: error: expected constructor, destructor, or type conversion before ‘(’ token
PYBIND11_MODULE(dashboard_client, m)
^
CMakeFiles/rtde_control.dir/build.make:254: recipe for target 'CMakeFiles/rtde_control.dir/src/rtde_python_bindings.cpp.o' failed
make[2]: *** [CMakeFiles/rtde_control.dir/src/rtde_python_bindings.cpp.o] Error 1
CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/rtde_control.dir/all' failed
make[1]: *** [CMakeFiles/rtde_control.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
报错原因是由于pybind11