panda-python 0.6.2__tar.gz → 0.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- panda_python-0.7.1/.github/workflows/main.yml +49 -0
- panda_python-0.7.1/.github/workflows/pull_request.yml +19 -0
- panda_python-0.7.1/.github/workflows/release.yml +68 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/.vscode/settings.json +14 -7
- {panda_python-0.6.2 → panda_python-0.7.1}/CMakeLists.txt +5 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/PKG-INFO +14 -8
- {panda_python-0.6.2 → panda_python-0.7.1}/README.md +13 -7
- panda_python-0.7.1/bin/build.sh +65 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/conf.py +1 -2
- panda_python-0.7.1/examples/vacuum_object.py +57 -0
- panda_python-0.7.1/libfranka/.ci/Dockerfile.bionic +18 -0
- panda_python-0.7.1/libfranka/.ci/Dockerfile.focal +19 -0
- panda_python-0.7.1/libfranka/.ci/checkgithistory.sh +35 -0
- panda_python-0.7.1/libfranka/.ci/coverage.sh +12 -0
- panda_python-0.7.1/libfranka/.ci/debug.sh +12 -0
- panda_python-0.7.1/libfranka/.ci/libonly.sh +11 -0
- panda_python-0.7.1/libfranka/.ci/lint.sh +11 -0
- panda_python-0.7.1/libfranka/.ci/release.sh +20 -0
- panda_python-0.7.1/libfranka/.clang-format +4 -0
- panda_python-0.7.1/libfranka/.clang-tidy +60 -0
- panda_python-0.7.1/libfranka/.gitignore +7 -0
- panda_python-0.7.1/libfranka/.gitmodules +3 -0
- panda_python-0.7.1/libfranka/.travis.yml +48 -0
- panda_python-0.7.1/libfranka/CHANGELOG.md +196 -0
- panda_python-0.7.1/libfranka/CMakeLists.txt +249 -0
- panda_python-0.7.1/libfranka/Jenkinsfile +207 -0
- panda_python-0.7.1/libfranka/LICENSE +176 -0
- panda_python-0.7.1/libfranka/NOTICE +15 -0
- panda_python-0.7.1/libfranka/README.md +18 -0
- panda_python-0.7.1/libfranka/build/CMakeCache.txt +574 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/3.28.1/CMakeCXXCompiler.cmake +85 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/3.28.1/CMakeDetermineCompilerABI_CXX.bin +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/3.28.1/CMakeSystem.cmake +15 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/3.28.1/CompilerIdCXX/CMakeCXXCompilerId.cpp +869 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/3.28.1/CompilerIdCXX/a.out +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/CMakeConfigureLog.yaml +316 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/Export/b99263ce54765e680b47d65446dafe94/FrankaTargets-release.cmake +20 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/Export/b99263ce54765e680b47d65446dafe94/FrankaTargets.cmake +103 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/Makefile.cmake +147 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/Makefile2 +129 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/TargetDirectories.txt +17 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/cmake.check_cache +1 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/DependInfo.cmake +52 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/build.make +473 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/cmake_clean.cmake +58 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/compiler_depend.internal +6911 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/compiler_depend.make +8154 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/compiler_depend.ts +2 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/depend.make +2 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/flags.make +10 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/link.txt +1 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/progress.make +25 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/control_loop.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/control_loop.cpp.o.d +199 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/control_tools.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/control_tools.cpp.o.d +172 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/control_types.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/control_types.cpp.o.d +149 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/duration.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/duration.cpp.o.d +45 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/errors.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/errors.cpp.o.d +160 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/exception.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/exception.cpp.o.d +177 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/gripper.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/gripper.cpp.o.d +297 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/gripper_state.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/gripper_state.cpp.o.d +159 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/library_downloader.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/library_downloader.cpp.o.d +296 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/library_loader.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/library_loader.cpp.o.d +186 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/load_calculations.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/load_calculations.cpp.o.d +321 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/log.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/log.cpp.o.d +179 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/logger.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/logger.cpp.o.d +179 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/lowpass_filter.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/lowpass_filter.cpp.o.d +382 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/model.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/model.cpp.o.d +441 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/model_library.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/model_library.cpp.o.d +292 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/network.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/network.cpp.o.d +296 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/rate_limiting.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/rate_limiting.cpp.o.d +381 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/robot.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/robot.cpp.o.d +307 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/robot_impl.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/robot_impl.cpp.o.d +442 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/robot_state.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/robot_state.cpp.o.d +165 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/vacuum_gripper.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/vacuum_gripper.cpp.o.d +298 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/vacuum_gripper_state.cpp.o +0 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/franka.dir/src/vacuum_gripper_state.cpp.o.d +159 -0
- panda_python-0.7.1/libfranka/build/CMakeFiles/progress.marks +1 -0
- panda_python-0.7.1/libfranka/build/CPackConfig.cmake +74 -0
- panda_python-0.7.1/libfranka/build/CPackSourceConfig.cmake +82 -0
- panda_python-0.7.1/libfranka/build/FrankaConfig.cmake +12 -0
- panda_python-0.7.1/libfranka/build/FrankaConfigVersion.cmake +65 -0
- panda_python-0.7.1/libfranka/build/FrankaTargets.cmake +70 -0
- panda_python-0.7.1/libfranka/build/Makefile +846 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/control +11 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/control.tar.gz +0 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/data.tar.gz +0 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/debian-binary +1 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/md5sums +21 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/command_types.h +42 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/control_tools.h +77 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/control_types.h +359 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/duration.h +265 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/errors.h +258 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/exception.h +109 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/gripper.h +156 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/gripper_state.h +61 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/log.h +70 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/lowpass_filter.h +60 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/model.h +290 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/rate_limiting.h +288 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/robot.h +724 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/robot_state.h +425 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/vacuum_gripper.h +137 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/include/franka/vacuum_gripper_state.h +80 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/lib/cmake/Franka/FrankaConfig.cmake +12 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/lib/cmake/Franka/FrankaConfigVersion.cmake +65 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/lib/cmake/Franka/FrankaTargets-release.cmake +20 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/lib/cmake/Franka/FrankaTargets.cmake +103 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/lib/libfranka.so +1 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/lib/libfranka.so.0.9 +1 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64/usr/lib/libfranka.so.0.9.2 +0 -0
- panda_python-0.7.1/libfranka/build/_CPack_Packages/x86_64/DEB/libfranka-0.9.2-x86_64.deb +0 -0
- panda_python-0.7.1/libfranka/build/cmake_install.cmake +127 -0
- panda_python-0.7.1/libfranka/build/common/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
- panda_python-0.7.1/libfranka/build/common/CMakeFiles/progress.marks +1 -0
- panda_python-0.7.1/libfranka/build/common/Makefile +211 -0
- panda_python-0.7.1/libfranka/build/common/cmake_install.cmake +44 -0
- panda_python-0.7.1/libfranka/build/compile_commands.json +140 -0
- panda_python-0.7.1/libfranka/build/install_manifest.txt +23 -0
- panda_python-0.7.1/libfranka/build/libfranka-0.9.2-x86_64.deb +0 -0
- panda_python-0.7.1/libfranka/build/libfranka.so +1 -0
- panda_python-0.7.1/libfranka/build/libfranka.so.0.9 +1 -0
- panda_python-0.7.1/libfranka/build/libfranka.so.0.9.2 +0 -0
- panda_python-0.7.1/libfranka/cmake/FindEigen3.cmake +16 -0
- panda_python-0.7.1/libfranka/cmake/FindPoco.cmake +32 -0
- panda_python-0.7.1/libfranka/cmake/FrankaConfig.cmake.in +12 -0
- panda_python-0.7.1/libfranka/cmake/GoogleTest-CMakeLists.txt.in +16 -0
- panda_python-0.7.1/libfranka/cmake/SetupGoogleTest.cmake +31 -0
- panda_python-0.7.1/libfranka/codecov.yml +1 -0
- panda_python-0.7.1/libfranka/common/.git +1 -0
- panda_python-0.7.1/libfranka/common/CMakeLists.txt +6 -0
- panda_python-0.7.1/libfranka/common/LICENSE +176 -0
- panda_python-0.7.1/libfranka/common/NOTICE +15 -0
- panda_python-0.7.1/libfranka/common/README.md +11 -0
- panda_python-0.7.1/libfranka/common/include/research_interface/gripper/types.h +145 -0
- panda_python-0.7.1/libfranka/common/include/research_interface/robot/error.h +141 -0
- panda_python-0.7.1/libfranka/common/include/research_interface/robot/rbk_types.h +110 -0
- panda_python-0.7.1/libfranka/common/include/research_interface/robot/service_traits.h +74 -0
- panda_python-0.7.1/libfranka/common/include/research_interface/robot/service_types.h +353 -0
- panda_python-0.7.1/libfranka/common/include/research_interface/vacuum_gripper/types.h +145 -0
- panda_python-0.7.1/libfranka/doc/CMakeLists.txt +25 -0
- panda_python-0.7.1/libfranka/doc/Doxyfile.in +2427 -0
- panda_python-0.7.1/libfranka/doc/Logo_FRANKA_EMIKA_dark.png +0 -0
- panda_python-0.7.1/libfranka/doc/main.md +10 -0
- panda_python-0.7.1/libfranka/examples/CMakeLists.txt +56 -0
- panda_python-0.7.1/libfranka/examples/cartesian_impedance_control.cpp +126 -0
- panda_python-0.7.1/libfranka/examples/communication_test.cpp +125 -0
- panda_python-0.7.1/libfranka/examples/echo_robot_state.cpp +37 -0
- panda_python-0.7.1/libfranka/examples/examples_common.cpp +132 -0
- panda_python-0.7.1/libfranka/examples/examples_common.h +75 -0
- panda_python-0.7.1/libfranka/examples/force_control.cpp +120 -0
- panda_python-0.7.1/libfranka/examples/generate_cartesian_pose_motion.cpp +76 -0
- panda_python-0.7.1/libfranka/examples/generate_cartesian_velocity_motion.cpp +86 -0
- panda_python-0.7.1/libfranka/examples/generate_consecutive_motions.cpp +80 -0
- panda_python-0.7.1/libfranka/examples/generate_elbow_motion.cpp +76 -0
- panda_python-0.7.1/libfranka/examples/generate_joint_position_motion.cpp +74 -0
- panda_python-0.7.1/libfranka/examples/generate_joint_velocity_motion.cpp +69 -0
- panda_python-0.7.1/libfranka/examples/grasp_object.cpp +68 -0
- panda_python-0.7.1/libfranka/examples/joint_impedance_control.cpp +228 -0
- panda_python-0.7.1/libfranka/examples/joint_point_to_point_motion.cpp +58 -0
- panda_python-0.7.1/libfranka/examples/motion_with_control.cpp +210 -0
- panda_python-0.7.1/libfranka/examples/print_joint_poses.cpp +46 -0
- panda_python-0.7.1/libfranka/examples/vacuum_object.cpp +54 -0
- panda_python-0.7.1/libfranka/include/franka/command_types.h +42 -0
- panda_python-0.7.1/libfranka/include/franka/control_tools.h +77 -0
- panda_python-0.7.1/libfranka/include/franka/control_types.h +359 -0
- panda_python-0.7.1/libfranka/include/franka/duration.h +265 -0
- panda_python-0.7.1/libfranka/include/franka/errors.h +258 -0
- panda_python-0.7.1/libfranka/include/franka/exception.h +109 -0
- panda_python-0.7.1/libfranka/include/franka/gripper.h +156 -0
- panda_python-0.7.1/libfranka/include/franka/gripper_state.h +61 -0
- panda_python-0.7.1/libfranka/include/franka/log.h +70 -0
- panda_python-0.7.1/libfranka/include/franka/lowpass_filter.h +60 -0
- panda_python-0.7.1/libfranka/include/franka/model.h +290 -0
- panda_python-0.7.1/libfranka/include/franka/rate_limiting.h +288 -0
- panda_python-0.7.1/libfranka/include/franka/robot.h +724 -0
- panda_python-0.7.1/libfranka/include/franka/robot_state.h +425 -0
- panda_python-0.7.1/libfranka/include/franka/vacuum_gripper.h +137 -0
- panda_python-0.7.1/libfranka/include/franka/vacuum_gripper_state.h +80 -0
- panda_python-0.7.1/libfranka/scripts/fail-on-output.sh +6 -0
- panda_python-0.7.1/libfranka/scripts/format-check.sh +8 -0
- panda_python-0.7.1/libfranka/src/control_loop.cpp +308 -0
- panda_python-0.7.1/libfranka/src/control_loop.h +66 -0
- panda_python-0.7.1/libfranka/src/control_tools.cpp +86 -0
- panda_python-0.7.1/libfranka/src/control_types.cpp +110 -0
- panda_python-0.7.1/libfranka/src/duration.cpp +112 -0
- panda_python-0.7.1/libfranka/src/errors.cpp +132 -0
- panda_python-0.7.1/libfranka/src/exception.cpp +31 -0
- panda_python-0.7.1/libfranka/src/gripper.cpp +95 -0
- panda_python-0.7.1/libfranka/src/gripper_state.cpp +17 -0
- panda_python-0.7.1/libfranka/src/libfcimodels.h +55 -0
- panda_python-0.7.1/libfranka/src/library_downloader.cpp +74 -0
- panda_python-0.7.1/libfranka/src/library_downloader.h +24 -0
- panda_python-0.7.1/libfranka/src/library_loader.cpp +38 -0
- panda_python-0.7.1/libfranka/src/library_loader.h +23 -0
- panda_python-0.7.1/libfranka/src/load_calculations.cpp +80 -0
- panda_python-0.7.1/libfranka/src/load_calculations.h +29 -0
- panda_python-0.7.1/libfranka/src/log.cpp +84 -0
- panda_python-0.7.1/libfranka/src/logger.cpp +48 -0
- panda_python-0.7.1/libfranka/src/logger.h +32 -0
- panda_python-0.7.1/libfranka/src/lowpass_filter.cpp +63 -0
- panda_python-0.7.1/libfranka/src/model.cpp +246 -0
- panda_python-0.7.1/libfranka/src/model_library.cpp +42 -0
- panda_python-0.7.1/libfranka/src/model_library.h +57 -0
- panda_python-0.7.1/libfranka/src/motion_generator_traits.h +37 -0
- panda_python-0.7.1/libfranka/src/network.cpp +80 -0
- panda_python-0.7.1/libfranka/src/network.h +276 -0
- panda_python-0.7.1/libfranka/src/platform.h +27 -0
- panda_python-0.7.1/libfranka/src/rate_limiting.cpp +251 -0
- panda_python-0.7.1/libfranka/src/robot.cpp +310 -0
- panda_python-0.7.1/libfranka/src/robot_control.h +38 -0
- panda_python-0.7.1/libfranka/src/robot_impl.cpp +390 -0
- panda_python-0.7.1/libfranka/src/robot_impl.h +303 -0
- panda_python-0.7.1/libfranka/src/robot_state.cpp +90 -0
- panda_python-0.7.1/libfranka/src/vacuum_gripper.cpp +122 -0
- panda_python-0.7.1/libfranka/src/vacuum_gripper_state.cpp +37 -0
- panda_python-0.7.1/libfranka/test/CMakeLists.txt +137 -0
- panda_python-0.7.1/libfranka/test/calculations_tests.cpp +128 -0
- panda_python-0.7.1/libfranka/test/control_loop_tests.cpp +1307 -0
- panda_python-0.7.1/libfranka/test/control_types_tests.cpp +125 -0
- panda_python-0.7.1/libfranka/test/duration_tests.cpp +118 -0
- panda_python-0.7.1/libfranka/test/errors_tests.cpp +49 -0
- panda_python-0.7.1/libfranka/test/gripper_command_tests.cpp +178 -0
- panda_python-0.7.1/libfranka/test/gripper_tests.cpp +43 -0
- panda_python-0.7.1/libfranka/test/helpers.cpp +753 -0
- panda_python-0.7.1/libfranka/test/helpers.h +76 -0
- panda_python-0.7.1/libfranka/test/libfcimodels_stub.cpp +191 -0
- panda_python-0.7.1/libfranka/test/logger_tests.cpp +146 -0
- panda_python-0.7.1/libfranka/test/lowpass_filter_tests.cpp +68 -0
- panda_python-0.7.1/libfranka/test/mock_robot_control.h +33 -0
- panda_python-0.7.1/libfranka/test/mock_server.cpp +227 -0
- panda_python-0.7.1/libfranka/test/mock_server.h +268 -0
- panda_python-0.7.1/libfranka/test/model_library_interface.h +67 -0
- panda_python-0.7.1/libfranka/test/model_tests.cpp +397 -0
- panda_python-0.7.1/libfranka/test/rate_limiting_tests.cpp +518 -0
- panda_python-0.7.1/libfranka/test/robot_command_tests.cpp +466 -0
- panda_python-0.7.1/libfranka/test/robot_impl_tests.cpp +1271 -0
- panda_python-0.7.1/libfranka/test/robot_state_tests.cpp +100 -0
- panda_python-0.7.1/libfranka/test/robot_tests.cpp +458 -0
- panda_python-0.7.1/libfranka/test/vacuum_gripper_command_tests.cpp +168 -0
- panda_python-0.7.1/libfranka/test/vacuum_gripper_tests.cpp +43 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/pyproject.toml +4 -1
- {panda_python-0.6.2 → panda_python-0.7.1}/src/libfranka.cpp +41 -1
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/__init__.py +2 -0
- panda_python-0.6.2/.github/workflows/docs.yml +0 -32
- panda_python-0.6.2/.github/workflows/release.yml +0 -105
- panda_python-0.6.2/.github/workflows/test.yml +0 -15
- panda_python-0.6.2/.github/workflows/test_all.yml +0 -16
- panda_python-0.6.2/bin/build_all.sh +0 -56
- {panda_python-0.6.2 → panda_python-0.7.1}/.gitignore +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/.pylintrc +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/.vscode/c_cpp_properties.json +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/.vscode/generate_docs_api.sh +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/.vscode/tasks.json +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/CITATION.cff +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/LICENSE +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/bin/before_install_centos.sh +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/bin/before_install_ubuntu.sh +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/Makefile +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/index.rst +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/make.bat +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/panda_py.cli.rst +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/panda_py.constants.rst +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/panda_py.controllers.rst +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/panda_py.libfranka.rst +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/panda_py.motion.rst +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/docs/panda_py.rst +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/cartesian_impedance.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/communication_test.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/mmc.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/notebooks/benchmark.ipynb +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/notebooks/motion.ipynb +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/notebooks/tutorial.ipynb +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/pilot_buttons.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/examples/teaching.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/constants.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/applied_force.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/applied_torque.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/cartesian_impedance.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/controller.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/force.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/integrated_velocity.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/joint_limits/virtual_wall.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/joint_limits/virtual_wall_controller.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/joint_position.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/controllers/trajectory.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/kinematics/fk.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/kinematics/ik.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/motion/generators.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/motion/time_optimal/path.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/motion/time_optimal/trajectory.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/panda.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/include/utils.h +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/logo.jpg +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/_core.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/applied_force.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/applied_torque.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/cartesian_impedance.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/force.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/integrated_velocity.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/joint_limits/virtual_wall.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/joint_position.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/controllers/trajectory.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/motion/generators.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/motion/time_optimal/path.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/motion/time_optimal/trajectory.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda.cpp +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/__init__.pyi +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/_core/__init__.pyi +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/cli.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/constants.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/controllers.py +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/libfranka/__init__.pyi +0 -0
- {panda_python-0.6.2 → panda_python-0.7.1}/src/panda_py/motion.py +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Check commit
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: write
|
|
5
|
+
id-token: write
|
|
6
|
+
pages: write
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
push:
|
|
10
|
+
branches: ["main"]
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build_wheels:
|
|
14
|
+
name: Build wheels for libfranka ${{ matrix.libfranka-version }}
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
strategy:
|
|
17
|
+
matrix:
|
|
18
|
+
libfranka-version: ["0.7.1", "0.8.0", "0.9.2", "0.10.0", "0.11.0", "0.12.1", "0.13.2"]
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v3
|
|
21
|
+
- uses: actions/setup-python@v3
|
|
22
|
+
- name: Install cibuildwheel
|
|
23
|
+
run: python -m pip install cibuildwheel==2.16.2
|
|
24
|
+
- name: Build using cibuildwheel
|
|
25
|
+
run: ./bin/build.sh "${{ matrix.libfranka-version }}"
|
|
26
|
+
documentation:
|
|
27
|
+
name: "Build and deploy documentation"
|
|
28
|
+
needs: [build_wheels]
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
env:
|
|
31
|
+
LIBFRANKA_VER: "0.9.2"
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v3
|
|
34
|
+
- uses: actions/setup-python@v3
|
|
35
|
+
- name: Install requirements
|
|
36
|
+
run: ./bin/before_install_ubuntu.sh
|
|
37
|
+
- name: Build package
|
|
38
|
+
run: pip install .[docs]
|
|
39
|
+
- name: Build documentation
|
|
40
|
+
run: cd docs && make html
|
|
41
|
+
- name: Setup Pages
|
|
42
|
+
uses: actions/configure-pages@v3
|
|
43
|
+
- name: Upload artifact
|
|
44
|
+
uses: actions/upload-pages-artifact@v2
|
|
45
|
+
with:
|
|
46
|
+
path: ./docs/_build/html
|
|
47
|
+
- name: Deploy to GitHub Pages
|
|
48
|
+
id: deployment
|
|
49
|
+
uses: actions/deploy-pages@v2
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: Check pull request
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
build_wheels:
|
|
8
|
+
name: Build wheels for libfranka ${{ matrix.libfranka-version }}
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
strategy:
|
|
11
|
+
matrix:
|
|
12
|
+
libfranka-version: ["0.7.1", "0.8.0", "0.9.2", "0.10.0", "0.11.0", "0.12.1", "0.13.2"]
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v3
|
|
15
|
+
- uses: actions/setup-python@v3
|
|
16
|
+
- name: Install cibuildwheel
|
|
17
|
+
run: python -m pip install cibuildwheel==2.16.2
|
|
18
|
+
- name: Build using cibuildwheel
|
|
19
|
+
run: ./bin/build.sh "${{ matrix.libfranka-version }}"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
env:
|
|
8
|
+
VERSION: 0.7.1
|
|
9
|
+
|
|
10
|
+
permissions: write-all
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build_wheels:
|
|
14
|
+
name: Build wheels for libfranka ${{ matrix.libfranka-version }}
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
strategy:
|
|
17
|
+
matrix:
|
|
18
|
+
libfranka-version: ["0.7.1", "0.8.0", "0.9.2", "0.10.0", "0.11.0", "0.12.1", "0.13.2"]
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v3
|
|
21
|
+
- uses: actions/setup-python@v3
|
|
22
|
+
- name: Install cibuildwheel
|
|
23
|
+
run: python -m pip install cibuildwheel==2.16.2
|
|
24
|
+
- name: Build using cibuildwheel
|
|
25
|
+
run: ./bin/build.sh "${{ matrix.libfranka-version }}"
|
|
26
|
+
- uses: actions/upload-artifact@v3
|
|
27
|
+
with:
|
|
28
|
+
path: ./archive/panda_py_${{ env.VERSION }}_libfranka_${{ matrix.libfranka-version }}.zip
|
|
29
|
+
name: zip-${{ matrix.libfranka-version }}
|
|
30
|
+
upload_pypi:
|
|
31
|
+
name: "Upload wheels to pypi"
|
|
32
|
+
needs: [build_wheels]
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
env:
|
|
35
|
+
LIBFRANKA_VER: "0.9.2"
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@v3
|
|
38
|
+
- uses: actions/setup-python@v3
|
|
39
|
+
- name: Install requirements
|
|
40
|
+
run: |
|
|
41
|
+
./bin/before_install_ubuntu.sh
|
|
42
|
+
python -m pip install build
|
|
43
|
+
- name: Build package
|
|
44
|
+
run: python -m build .
|
|
45
|
+
- uses: pypa/gh-action-pypi-publish@v1.5.0
|
|
46
|
+
with:
|
|
47
|
+
user: __token__
|
|
48
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
49
|
+
upload_assets:
|
|
50
|
+
name: "Upload libfranka ${{ matrix.libfranka-version }} release assets"
|
|
51
|
+
needs: [build_wheels]
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
strategy:
|
|
54
|
+
matrix:
|
|
55
|
+
libfranka-version: ["0.7.1", "0.8.0", "0.9.2", "0.10.0", "0.11.0", "0.12.1", "0.13.2"]
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/download-artifact@v3
|
|
58
|
+
with:
|
|
59
|
+
name: zip-${{ matrix.libfranka-version }}
|
|
60
|
+
path: archive
|
|
61
|
+
- uses: actions/upload-release-asset@v1
|
|
62
|
+
with:
|
|
63
|
+
upload_url: ${{ github.event.release.upload_url }}
|
|
64
|
+
asset_path: ./archive/panda_py_${{ env.VERSION }}_libfranka_${{ matrix.libfranka-version }}.zip
|
|
65
|
+
asset_name: panda_py_${{ env.VERSION }}_libfranka_${{ matrix.libfranka-version }}.zip
|
|
66
|
+
asset_content_type: application/zip
|
|
67
|
+
env:
|
|
68
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
|
|
2
|
+
"pylint.args": [
|
|
3
|
+
"--rcfile=.pylintrc"
|
|
4
|
+
],
|
|
5
|
+
|
|
6
|
+
"yapf.args": [
|
|
4
7
|
"--style",
|
|
5
8
|
"{based_on_style: google, indent_width: 2}"
|
|
6
9
|
],
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
|
|
11
|
+
"[python]": {
|
|
12
|
+
"editor.formatOnSaveMode": "file",
|
|
13
|
+
"editor.formatOnSave": true,
|
|
14
|
+
"editor.defaultFormatter": "eeyore.yapf",
|
|
15
|
+
"editor.codeActionsOnSave": {
|
|
16
|
+
"source.organizeImports": "explicit"
|
|
17
|
+
},
|
|
18
|
+
},
|
|
12
19
|
"editor.tabSize": 2,
|
|
13
20
|
"files.associations": {
|
|
14
21
|
"cctype": "cpp",
|
|
@@ -8,6 +8,11 @@ set (CMAKE_CXX_STANDARD 17)
|
|
|
8
8
|
set(CMAKE_BUILD_TYPE "Release")
|
|
9
9
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
10
10
|
|
|
11
|
+
option(VACUUM_GRIPPER OFF)
|
|
12
|
+
if (VACUUM_GRIPPER)
|
|
13
|
+
add_definitions(-DVACUUM_GRIPPER=${VACUUM_GRIPPER})
|
|
14
|
+
endif()
|
|
15
|
+
|
|
11
16
|
find_package(Eigen3 REQUIRED)
|
|
12
17
|
find_package(Threads REQUIRED)
|
|
13
18
|
find_package(Franka REQUIRED)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: panda-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: Python bindings for the Panda robot
|
|
5
5
|
Keywords: python real-time control robot franka emika
|
|
6
6
|
Author-Email: Jean Elsner <jean.elsner@tum.de>
|
|
@@ -230,15 +230,17 @@ Provides-Extra: examples
|
|
|
230
230
|
Provides-Extra: docs
|
|
231
231
|
Description-Content-Type: text/markdown
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
<div align="center"><img alt="panda-py Logo" src="https://raw.githubusercontent.com/JeanElsner/panda-py/main/logo.jpg" /></div>
|
|
234
234
|
|
|
235
|
-
|
|
235
|
+
<h1 align="center">panda-py</h1>
|
|
236
236
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
237
|
+
<p align="center">
|
|
238
|
+
<a href="https://github.com/JeanElsner/panda-py/actions/workflows/main.yml"><img alt="Continuous Integration" src="https://img.shields.io/github/actions/workflow/status/JeanElsner/panda-py/main.yml" /></a>
|
|
239
|
+
<a href="https://github.com/JeanElsner/panda-py/blob/main/LICENSE"><img alt="Apache-2.0 License" src="https://img.shields.io/github/license/JeanElsner/panda-py" /></a>
|
|
240
|
+
<a href="https://pypi.org/project/panda-python/"><img alt="PyPI - Published Version" src="https://img.shields.io/pypi/v/panda-python"></a>
|
|
241
|
+
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/panda-python">
|
|
242
|
+
<a href="https://jeanelsner.github.io/panda-py"><img alt="Documentation" src="https://shields.io/badge/-Documentation-informational" /><a/>
|
|
243
|
+
</p>
|
|
242
244
|
|
|
243
245
|
Finally, Python bindings for the Panda. These will increase your productivity by 1000%, guaranteed[^1]!
|
|
244
246
|
|
|
@@ -246,6 +248,10 @@ Finally, Python bindings for the Panda. These will increase your productivity by
|
|
|
246
248
|
|
|
247
249
|
To get started, check out the [tutorial paper](https://www.sciencedirect.com/science/article/pii/S2352711023002285), Jupyter [notebooks](https://github.com/JeanElsner/panda-py/tree/main/examples/notebooks) and other examples you can run directly on your robot. For more details on the API, please refer to the [documentation](https://jeanelsner.github.io/panda-py/).
|
|
248
250
|
|
|
251
|
+
## Extensions
|
|
252
|
+
|
|
253
|
+
* [dm_robotics_panda](https://github.com/JeanElsner/dm_robotics_panda) Panda model and tools for reinforcement learning in `dm_robotics`
|
|
254
|
+
|
|
249
255
|
## Install
|
|
250
256
|
|
|
251
257
|
```
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center"><img alt="panda-py Logo" src="https://raw.githubusercontent.com/JeanElsner/panda-py/main/logo.jpg" /></div>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<h1 align="center">panda-py</h1>
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://github.com/JeanElsner/panda-py/actions/workflows/main.yml"><img alt="Continuous Integration" src="https://img.shields.io/github/actions/workflow/status/JeanElsner/panda-py/main.yml" /></a>
|
|
7
|
+
<a href="https://github.com/JeanElsner/panda-py/blob/main/LICENSE"><img alt="Apache-2.0 License" src="https://img.shields.io/github/license/JeanElsner/panda-py" /></a>
|
|
8
|
+
<a href="https://pypi.org/project/panda-python/"><img alt="PyPI - Published Version" src="https://img.shields.io/pypi/v/panda-python"></a>
|
|
9
|
+
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/panda-python">
|
|
10
|
+
<a href="https://jeanelsner.github.io/panda-py"><img alt="Documentation" src="https://shields.io/badge/-Documentation-informational" /><a/>
|
|
11
|
+
</p>
|
|
10
12
|
|
|
11
13
|
Finally, Python bindings for the Panda. These will increase your productivity by 1000%, guaranteed[^1]!
|
|
12
14
|
|
|
@@ -14,6 +16,10 @@ Finally, Python bindings for the Panda. These will increase your productivity by
|
|
|
14
16
|
|
|
15
17
|
To get started, check out the [tutorial paper](https://www.sciencedirect.com/science/article/pii/S2352711023002285), Jupyter [notebooks](https://github.com/JeanElsner/panda-py/tree/main/examples/notebooks) and other examples you can run directly on your robot. For more details on the API, please refer to the [documentation](https://jeanelsner.github.io/panda-py/).
|
|
16
18
|
|
|
19
|
+
## Extensions
|
|
20
|
+
|
|
21
|
+
* [dm_robotics_panda](https://github.com/JeanElsner/dm_robotics_panda) Panda model and tools for reinforcement learning in `dm_robotics`
|
|
22
|
+
|
|
17
23
|
## Install
|
|
18
24
|
|
|
19
25
|
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Check if the libfranka version is provided as an argument
|
|
4
|
+
if [ -z "$1" ]; then
|
|
5
|
+
echo "Usage: $0 <libfranka_version>"
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
# Install Python dependencies
|
|
10
|
+
python -m pip install packaging toml cibuildwheel
|
|
11
|
+
|
|
12
|
+
# Set pyproject.toml path
|
|
13
|
+
root=$(dirname $0)/..
|
|
14
|
+
toml="$root/pyproject.toml"
|
|
15
|
+
|
|
16
|
+
# Store current version
|
|
17
|
+
version=$(python <<END
|
|
18
|
+
from packaging.version import parse
|
|
19
|
+
import toml
|
|
20
|
+
with open('$toml', 'r') as f:
|
|
21
|
+
data = toml.load(f)
|
|
22
|
+
version = parse(data['project']['version'])
|
|
23
|
+
print(f'{version.major}.{version.minor}.{version.micro}')
|
|
24
|
+
END
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
# Print the version
|
|
28
|
+
echo "Current version is $version"
|
|
29
|
+
|
|
30
|
+
change_version() {
|
|
31
|
+
local pandapy_version="$version+libfranka-$1"
|
|
32
|
+
local libfranka_version="LIBFRANKA_VER=$1"
|
|
33
|
+
local vacuum_gripper="ON"
|
|
34
|
+
|
|
35
|
+
if [[ "$1" == "0.7.1" ]]; then
|
|
36
|
+
vacuum_gripper="OFF"
|
|
37
|
+
fi
|
|
38
|
+
echo "VACUUM_GRIPPER: $vacuum_gripper"
|
|
39
|
+
python <<END
|
|
40
|
+
import toml
|
|
41
|
+
|
|
42
|
+
with open('$toml', 'r') as f:
|
|
43
|
+
data = toml.load(f)
|
|
44
|
+
|
|
45
|
+
data['project']['version'] = '$pandapy_version'
|
|
46
|
+
data['tool']['cibuildwheel']['environment'] = '$libfranka_version'
|
|
47
|
+
data['tool']['scikit-build']['cmake']['define']['VACUUM_GRIPPER'] = '$vacuum_gripper'
|
|
48
|
+
|
|
49
|
+
with open('$toml', 'w') as f:
|
|
50
|
+
toml.dump(data, f)
|
|
51
|
+
END
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
mkdir $root/archive
|
|
55
|
+
|
|
56
|
+
# Call the change_version function with the provided libfranka version
|
|
57
|
+
libfranka_version="$1"
|
|
58
|
+
echo "Changing libfranka version in pyproject.toml to: $libfranka_version"
|
|
59
|
+
change_version "$libfranka_version"
|
|
60
|
+
archive=panda_py_${version}_libfranka_${libfranka_version}
|
|
61
|
+
python -m cibuildwheel --output-dir $root/archive/$archive $root
|
|
62
|
+
zip -j $root/archive/$archive.zip $root/archive/$archive/*.whl
|
|
63
|
+
|
|
64
|
+
# Change back to default version
|
|
65
|
+
change_version $version
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
project = 'panda-py'
|
|
10
10
|
copyright = '2023, Jean Elsner'
|
|
11
11
|
author = 'Jean Elsner'
|
|
12
|
-
release = '0.
|
|
12
|
+
release = '0.7.1'
|
|
13
13
|
|
|
14
14
|
# -- General configuration ---------------------------------------------------
|
|
15
15
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
@@ -36,7 +36,6 @@ redirects = {
|
|
|
36
36
|
'index': 'panda_py.html',
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
40
39
|
# -- Options for HTML output -------------------------------------------------
|
|
41
40
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
42
41
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Uses a vacuum gripper to pick up an object, then drops it.
|
|
3
|
+
"""
|
|
4
|
+
import sys
|
|
5
|
+
import time
|
|
6
|
+
from datetime import timedelta
|
|
7
|
+
|
|
8
|
+
import panda_py
|
|
9
|
+
import panda_py.libfranka
|
|
10
|
+
|
|
11
|
+
if __name__ == '__main__':
|
|
12
|
+
if len(sys.argv) < 2:
|
|
13
|
+
raise RuntimeError(f'Usage: python {sys.argv[0]} <robot-hostname>')
|
|
14
|
+
|
|
15
|
+
# Connect to the gripper using the same IP as the robot arm
|
|
16
|
+
# This doesn't prevent you from connecting to the arm
|
|
17
|
+
gripper = panda_py.libfranka.VacuumGripper(sys.argv[1])
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
# Print gripper state.
|
|
21
|
+
state = gripper.read_once()
|
|
22
|
+
print(f"""Gripper State:
|
|
23
|
+
is vacuum within setpoint: {state.in_control_range}
|
|
24
|
+
part detached: {state.part_detached}
|
|
25
|
+
part present: {state.part_present}
|
|
26
|
+
device status: {state.device_status}
|
|
27
|
+
actual power: {state.actual_power}
|
|
28
|
+
vacuum: {state.vacuum}""")
|
|
29
|
+
|
|
30
|
+
print("Vacuuming object")
|
|
31
|
+
# The first argument is the vacuum pressure level
|
|
32
|
+
# The second argument is how long to try vacuuming for before giving an error
|
|
33
|
+
try:
|
|
34
|
+
gripper.vacuum(3, timedelta(seconds=1))
|
|
35
|
+
print("Grabbed object.")
|
|
36
|
+
except:
|
|
37
|
+
# The finally block at the end stops the vacuuming with gripper.stop()
|
|
38
|
+
# otherwise it keeps going
|
|
39
|
+
raise RuntimeError("Failed to grab object.")
|
|
40
|
+
|
|
41
|
+
time.sleep(3)
|
|
42
|
+
# Check if the object is still grasped
|
|
43
|
+
# This works by checking if the pressure level of the vacuum
|
|
44
|
+
# is within a specified range
|
|
45
|
+
state = gripper.read_once()
|
|
46
|
+
if not state.in_control_range:
|
|
47
|
+
raise RuntimeError("Object lost.")
|
|
48
|
+
|
|
49
|
+
print("Releasing object.")
|
|
50
|
+
# The time argument specifies when to time-out.
|
|
51
|
+
try:
|
|
52
|
+
gripper.drop_off(timedelta(seconds=1))
|
|
53
|
+
except:
|
|
54
|
+
raise RuntimeError("Failed to drop object off.")
|
|
55
|
+
finally:
|
|
56
|
+
# Stop whatever the gripper is doing when program terminates.
|
|
57
|
+
gripper.stop()
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
FROM ubuntu:18.04
|
|
2
|
+
RUN apt-get update && apt-get install -y \
|
|
3
|
+
build-essential \
|
|
4
|
+
clang-6.0 \
|
|
5
|
+
clang-format-6.0 \
|
|
6
|
+
clang-tidy-6.0 \
|
|
7
|
+
cmake \
|
|
8
|
+
doxygen \
|
|
9
|
+
graphviz \
|
|
10
|
+
lcov \
|
|
11
|
+
libeigen3-dev \
|
|
12
|
+
libpoco-dev \
|
|
13
|
+
rename \
|
|
14
|
+
valgrind \
|
|
15
|
+
lsb-release \
|
|
16
|
+
dpkg \
|
|
17
|
+
git \
|
|
18
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
FROM ubuntu:20.04
|
|
2
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
3
|
+
RUN apt-get update && apt-get install -y \
|
|
4
|
+
build-essential \
|
|
5
|
+
clang-6.0 \
|
|
6
|
+
clang-format-6.0 \
|
|
7
|
+
clang-tidy-6.0 \
|
|
8
|
+
cmake \
|
|
9
|
+
doxygen \
|
|
10
|
+
graphviz \
|
|
11
|
+
lcov \
|
|
12
|
+
libeigen3-dev \
|
|
13
|
+
libpoco-dev \
|
|
14
|
+
rename \
|
|
15
|
+
valgrind \
|
|
16
|
+
lsb-release \
|
|
17
|
+
dpkg \
|
|
18
|
+
git \
|
|
19
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# the script checks if the public repo and the local repo commit history are sync, otherwise it fails
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
PUBLIC_URL=$1
|
|
6
|
+
BRANCH=${2:-master} # if no second arg supplied, then "master" is used
|
|
7
|
+
|
|
8
|
+
if [ $# -lt 1 ]; then
|
|
9
|
+
>&2 echo "Not enough argument supplied. Usage: checkgithistory.sh PUBLIC_URL [BRANCH]"
|
|
10
|
+
exit 1
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
if [ ! -d ".git/" ] ; then
|
|
14
|
+
echo "Current directory `pwd` does not appear to be a Git repository. Change directory before calling this script"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
public_remote_name=$(git remote -v | grep ${PUBLIC_URL} | head -n 1 | sed -e 's/\s.*$//')
|
|
19
|
+
|
|
20
|
+
if [ -z "$public_remote_name" ]; then
|
|
21
|
+
public_remote_name="public"
|
|
22
|
+
git remote add $public_remote_name $PUBLIC_URL
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
git fetch $public_remote_name
|
|
26
|
+
|
|
27
|
+
local_commit_hash=$(git rev-parse origin/${BRANCH})
|
|
28
|
+
public_commit_hash=$(git rev-parse ${public_remote_name}/${BRANCH})
|
|
29
|
+
|
|
30
|
+
if [ "$local_commit_hash" != "$public_commit_hash" ]; then
|
|
31
|
+
>&2 echo "Local and public commit hashes do not match. Please update local to the latest public commit"
|
|
32
|
+
exit 1
|
|
33
|
+
else
|
|
34
|
+
echo "Local and public commit hashes do match."
|
|
35
|
+
fi
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
set -x
|
|
5
|
+
|
|
6
|
+
rm -rf build-coverage
|
|
7
|
+
mkdir build-coverage
|
|
8
|
+
cd build-coverage
|
|
9
|
+
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_COVERAGE=ON -DBUILD_DOCUMENTATION=OFF \
|
|
10
|
+
-DBUILD_EXAMPLES=OFF -DBUILD_TESTS=ON ..
|
|
11
|
+
cmake --build .
|
|
12
|
+
cmake --build . --target coverage
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
set -x
|
|
5
|
+
|
|
6
|
+
rm -rf build-debug
|
|
7
|
+
mkdir build-debug
|
|
8
|
+
cd build-debug
|
|
9
|
+
cmake -DCMAKE_BUILD_TYPE=Debug -DSTRICT=ON -DBUILD_COVERAGE=OFF -DBUILD_DOCUMENTATION=OFF \
|
|
10
|
+
-DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..
|
|
11
|
+
cmake --build .
|
|
12
|
+
ctest -V
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
set -x
|
|
5
|
+
|
|
6
|
+
rm -rf build-lint
|
|
7
|
+
mkdir build-lint
|
|
8
|
+
cd build-lint
|
|
9
|
+
cmake -DBUILD_COVERAGE=OFF -DBUILD_DOCUMENTATION=OFF -DBUILD_EXAMPLES=ON -DBUILD_TESTS=OFF ..
|
|
10
|
+
cmake --build . --target check-format
|
|
11
|
+
cmake --build . --target check-tidy
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
set -x
|
|
5
|
+
|
|
6
|
+
rm -rf build-release
|
|
7
|
+
mkdir build-release
|
|
8
|
+
cd build-release
|
|
9
|
+
cmake -DCMAKE_BUILD_TYPE=Release -DSTRICT=ON -DBUILD_COVERAGE=OFF -DBUILD_DOCUMENTATION=ON \
|
|
10
|
+
-DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..
|
|
11
|
+
cmake --build .
|
|
12
|
+
ctest -V
|
|
13
|
+
cpack
|
|
14
|
+
|
|
15
|
+
cd ..
|
|
16
|
+
rm -rf build-examples
|
|
17
|
+
mkdir build-examples
|
|
18
|
+
cd build-examples
|
|
19
|
+
cmake -DFranka_DIR:PATH=../build-release ../examples
|
|
20
|
+
cmake --build .
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
Checks: 'clang-diagnostic-*,clang-analyzer-*,-clang-analyzer-alpha*,google-*,misc-*,readability-*,modernize-*,performance-*,cppcoreguidelines-*,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-bounds-constant-array-index,-google-explicit-constructor,-google-runtime-references,-cppcoreguidelines-pro-type-member-init,-cppcoreguidelines-special-member-functions'
|
|
2
|
+
HeaderFilterRegex: '^.*(src|include/franka).*$'
|
|
3
|
+
CheckOptions:
|
|
4
|
+
# Classes, structs, ...
|
|
5
|
+
- key: readability-identifier-naming.NamespaceCase
|
|
6
|
+
value: lower_case
|
|
7
|
+
- key: readability-identifier-naming.ClassCase
|
|
8
|
+
value: CamelCase
|
|
9
|
+
- key: readability-identifier-naming.StructCase
|
|
10
|
+
value: CamelCase
|
|
11
|
+
- key: readability-identifier-naming.EnumCase
|
|
12
|
+
value: CamelCase
|
|
13
|
+
- key: readability-identifier-naming.UnionCase
|
|
14
|
+
value: CamelCase
|
|
15
|
+
- key: readability-identifier-naming.TypedefCase
|
|
16
|
+
value: CamelCase
|
|
17
|
+
|
|
18
|
+
# Variables, member variables, ...
|
|
19
|
+
- key: readability-identifier-naming.ParameterCase
|
|
20
|
+
value: lower_case
|
|
21
|
+
- key: readability-identifier-naming.VariableCase
|
|
22
|
+
value: lower_case
|
|
23
|
+
- key: readability-identifier-naming.MemberCase
|
|
24
|
+
value: lower_case
|
|
25
|
+
- key: readability-identifier-naming.PublicMemberCase
|
|
26
|
+
value: lower_case
|
|
27
|
+
- key: readability-identifier-naming.ProtectedMemberCase
|
|
28
|
+
value: lower_case
|
|
29
|
+
- key: readability-identifier-naming.PrivateMemberCase
|
|
30
|
+
value: lower_case
|
|
31
|
+
- key: readability-identifier-naming.PrivateMemberSuffix
|
|
32
|
+
value: _
|
|
33
|
+
|
|
34
|
+
# Functions, methods, ...
|
|
35
|
+
- key: readability-identifier-naming.FunctionCase
|
|
36
|
+
value: camelBack
|
|
37
|
+
- key: readability-identifier-naming.MethodCase
|
|
38
|
+
value: camelBack
|
|
39
|
+
|
|
40
|
+
# Constants
|
|
41
|
+
- key: readability-identifier-naming.ConstantPrefix
|
|
42
|
+
value: k
|
|
43
|
+
- key: readability-identifier-naming.ConstantCase
|
|
44
|
+
value: CamelCase
|
|
45
|
+
- key: readability-identifier-naming.ConstantMemberPrefix
|
|
46
|
+
value: ''
|
|
47
|
+
- key: readability-identifier-naming.ConstantMemberCase
|
|
48
|
+
value: lower_case
|
|
49
|
+
- key: readability-identifier-naming.ConstantParameterPrefix
|
|
50
|
+
value: ''
|
|
51
|
+
- key: readability-identifier-naming.ConstantParameterCase
|
|
52
|
+
value: lower_case
|
|
53
|
+
- key: readability-identifier-naming.LocalConstantParameterPrefix
|
|
54
|
+
value: ''
|
|
55
|
+
- key: readability-identifier-naming.LocalConstantCase
|
|
56
|
+
value: lower_case
|
|
57
|
+
- key: readability-identifier-naming.ConstexprVariablePrefix
|
|
58
|
+
value: k
|
|
59
|
+
- key: readability-identifier-naming.ConstexprVariableCase
|
|
60
|
+
value: CamelCase
|