├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── calib.io_charuco_508x406.4_16x22_20_DICT_4X4_finalized.pdf ├── enable_cm4_oak.py ├── interbotix_ws ├── .catkin_workspace └── src │ ├── CMakeLists.txt │ ├── interbotix_descriptions │ ├── CMakeLists.txt │ ├── README.md │ ├── images │ │ └── descriptions_flowchart.png │ ├── launch │ │ └── description.launch │ ├── meshes │ │ ├── interbotix_black.png │ │ ├── meshes_px100 │ │ │ ├── PXA-100-M-1-Base.stl │ │ │ ├── PXA-100-M-2-Shoulder.stl │ │ │ ├── PXA-100-M-3-UA.stl │ │ │ ├── PXA-100-M-4-Forearm.stl │ │ │ ├── PXA-100-M-5-Wrist-Gripper.stl │ │ │ ├── PXA-100-M-6-Gripper-Prop.stl │ │ │ ├── PXA-100-M-7-Gripper-Bar.stl │ │ │ └── PXA-100-M-8-Finger.stl │ │ ├── meshes_px150 │ │ │ ├── PXA-150-M-1-Base.stl │ │ │ ├── PXA-150-M-2-Shoulder.stl │ │ │ ├── PXA-150-M-3-UA.stl │ │ │ ├── PXA-150-M-4-Forearm.stl │ │ │ ├── PXA-150-M-5-Wrist.stl │ │ │ ├── PXA-150-M-6-Gripper.stl │ │ │ ├── PXA-150-M-7-Gripper-Prop.stl │ │ │ ├── PXA-150-M-8-Gripper-Bar.stl │ │ │ └── PXA-150-M-9-Finger.stl │ │ ├── meshes_pxxls │ │ │ ├── PXT-XLS-M-1-Base.stl │ │ │ ├── PXT-XLS-M-2-Shoulder.stl │ │ │ └── PXT-XLS-M-3-Top.stl │ │ ├── meshes_rx150 │ │ │ ├── RXA-150-M-1-Base.stl │ │ │ ├── RXA-150-M-2-Shoulder.stl │ │ │ ├── RXA-150-M-3-UA.stl │ │ │ ├── RXA-150-M-4-Forearm.stl │ │ │ ├── RXA-150-M-5-Wrist.stl │ │ │ ├── RXA-150-M-6-Gripper.stl │ │ │ ├── RXA-150-M-7-Gripper-Prop.stl │ │ │ ├── RXA-150-M-8-Gripper-Bar.stl │ │ │ └── RXA-150-M-9-Finger.stl │ │ ├── meshes_rx200 │ │ │ ├── RXA-200-M-1-Base.stl │ │ │ ├── RXA-200-M-2-Shoulder.stl │ │ │ ├── RXA-200-M-3-UA.stl │ │ │ ├── RXA-200-M-4-Forearm.stl │ │ │ ├── RXA-200-M-5-Wrist.stl │ │ │ ├── RXA-200-M-6-Gripper.stl │ │ │ ├── RXA-200-M-7-Gripper-Prop.stl │ │ │ ├── RXA-200-M-8-Gripper-Bar.stl │ │ │ └── RXA-200-M-9-Finger.stl │ │ ├── meshes_vx250 │ │ │ ├── VXA-250-M-1-Base.stl │ │ │ ├── VXA-250-M-2-Shoulder.stl │ │ │ ├── VXA-250-M-3-UA.stl │ │ │ ├── VXA-250-M-4-Forearm.stl │ │ │ ├── VXA-250-M-5-Wrist.stl │ │ │ ├── VXA-250-M-6-Gripper.stl │ │ │ ├── VXA-250-M-7-Gripper-Prop.stl │ │ │ ├── VXA-250-M-8-Gripper-Bar.stl │ │ │ └── VXA-250-M-9-Finger.stl │ │ ├── meshes_vx300 │ │ │ ├── VXA-300-M-1-Base.stl │ │ │ ├── VXA-300-M-2-Shoulder.stl │ │ │ ├── VXA-300-M-3-UA.stl │ │ │ ├── VXA-300-M-4-Forearm.stl │ │ │ ├── VXA-300-M-5-Wrist.stl │ │ │ ├── VXA-300-M-6-Gripper.stl │ │ │ ├── VXA-300-M-7-Gripper-Prop.stl │ │ │ ├── VXA-300-M-8-Gripper-Bar.stl │ │ │ └── VXA-300-M-9-Finger.stl │ │ ├── meshes_vx300s │ │ │ ├── VXSA-300-M-1-Base.stl │ │ │ ├── VXSA-300-M-10-Finger.stl │ │ │ ├── VXSA-300-M-2-Shoulder.stl │ │ │ ├── VXSA-300-M-3-UA.stl │ │ │ ├── VXSA-300-M-4-UF.stl │ │ │ ├── VXSA-300-M-5-LF.stl │ │ │ ├── VXSA-300-M-6-Wrist.stl │ │ │ ├── VXSA-300-M-7-Gripper.stl │ │ │ ├── VXSA-300-M-8-Gripper-Prop.stl │ │ │ └── VXSA-300-M-9-Gripper-Bar.stl │ │ ├── meshes_vxxmd │ │ │ ├── VXT-XMD-M-1-Base.stl │ │ │ ├── VXT-XMD-M-2-Shoulder.stl │ │ │ └── VXT-XMD-M-3-Top.stl │ │ ├── meshes_vxxms │ │ │ ├── VXT-XMS-M-1-Base.stl │ │ │ ├── VXT-XMS-M-2-Shoulder.stl │ │ │ └── VXT-XMS-M-3-Top.stl │ │ ├── meshes_wx200 │ │ │ ├── WXA-200-M-1-Base.stl │ │ │ ├── WXA-200-M-2-Shoulder.stl │ │ │ ├── WXA-200-M-3-UA.stl │ │ │ ├── WXA-200-M-4-Forearm.stl │ │ │ ├── WXA-200-M-5-Wrist.stl │ │ │ ├── WXA-200-M-6-Gripper.stl │ │ │ ├── WXA-200-M-7-Gripper-Prop.stl │ │ │ ├── WXA-200-M-8-Gripper-Bar.stl │ │ │ └── WXA-200-M-9-Finger.stl │ │ ├── meshes_wx250 │ │ │ ├── WXA-250-M-1-Base.stl │ │ │ ├── WXA-250-M-2-Shoulder.stl │ │ │ ├── WXA-250-M-3-UA.stl │ │ │ ├── WXA-250-M-4-Forearm.stl │ │ │ ├── WXA-250-M-5-Wrist.stl │ │ │ ├── WXA-250-M-6-Gripper.stl │ │ │ ├── WXA-250-M-7-Gripper-Prop.stl │ │ │ ├── WXA-250-M-8-Gripper-Bar.stl │ │ │ └── WXA-250-M-9-Finger.stl │ │ ├── meshes_wx250s │ │ │ ├── WXSA-250-M-1-Base.stl │ │ │ ├── WXSA-250-M-10-Finger.stl │ │ │ ├── WXSA-250-M-2-Shoulder.stl │ │ │ ├── WXSA-250-M-3-UA.stl │ │ │ ├── WXSA-250-M-4-UF.stl │ │ │ ├── WXSA-250-M-5-LF.stl │ │ │ ├── WXSA-250-M-6-Wrist.stl │ │ │ ├── WXSA-250-M-7-Gripper.stl │ │ │ ├── WXSA-250-M-8-Gripper-Prop.stl │ │ │ └── WXSA-250-M-9-Gripper-Bar.stl │ │ ├── meshes_wxxmd │ │ │ ├── WXT-XMD-M-1-Base.stl │ │ │ ├── WXT-XMD-M-2-Shoulder.stl │ │ │ └── WXT-XMD-M-3-Top.stl │ │ └── meshes_wxxms │ │ │ ├── WXT-XMS-M-1-Base.stl │ │ │ ├── WXT-XMS-M-2-Shoulder.stl │ │ │ └── WXT-XMS-M-3-Top.stl │ ├── package.xml │ ├── rviz │ │ └── description.rviz │ ├── setup.py │ ├── src │ │ └── interbotix_descriptions │ │ │ ├── __init__.py │ │ │ ├── interbotix_mr_descriptions.py │ │ │ └── interbotix_mr_descriptions.pyc │ └── urdf │ │ ├── px100.urdf.xacro │ │ ├── px150.urdf.xacro │ │ ├── pxxls.urdf.xacro │ │ ├── rx150.urdf.xacro │ │ ├── rx200.urdf.xacro │ │ ├── vx250.urdf.xacro │ │ ├── vx300.urdf.xacro │ │ ├── vx300s.urdf.xacro │ │ ├── vxxmd.urdf.xacro │ │ ├── vxxms.urdf.xacro │ │ ├── wx200.urdf.xacro │ │ ├── wx250.urdf.xacro │ │ ├── wx250s.urdf.xacro │ │ ├── wxxmd.urdf.xacro │ │ └── wxxms.urdf.xacro │ ├── interbotix_gazebo │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── interbotix_texture.gazebo │ │ ├── px100_gazebo_controllers.yaml │ │ ├── px150_gazebo_controllers.yaml │ │ ├── rx150_gazebo_controllers.yaml │ │ ├── rx200_gazebo_controllers.yaml │ │ ├── vx250_gazebo_controllers.yaml │ │ ├── vx300_gazebo_controllers.yaml │ │ ├── vx300s_gazebo_controllers.yaml │ │ ├── wx200_gazebo_controllers.yaml │ │ ├── wx250_gazebo_controllers.yaml │ │ └── wx250s_gazebo_controllers.yaml │ ├── images │ │ └── gazebo_flowchart.png │ ├── launch │ │ └── gazebo.launch │ ├── media │ │ └── materials │ │ │ ├── scripts │ │ │ └── interbotix_black.material │ │ │ └── textures │ │ │ └── interbotix_black.png │ └── package.xml │ ├── interbotix_moveit │ ├── .setup_assistant │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── chomp_planning.yaml │ │ ├── controllers │ │ │ ├── 4dof_controllers.yaml │ │ │ ├── 5dof_controllers.yaml │ │ │ └── 6dof_controllers.yaml │ │ ├── fake_controllers │ │ │ ├── 4dof_controllers.yaml │ │ │ ├── 5dof_controllers.yaml │ │ │ └── 6dof_controllers.yaml │ │ ├── joint_limits │ │ │ ├── 4dof_joint_limits.yaml │ │ │ ├── 5dof_joint_limits.yaml │ │ │ └── 6dof_joint_limits.yaml │ │ ├── kinematics.yaml │ │ ├── ompl_planning.yaml │ │ └── srdf │ │ │ ├── px100.srdf.xacro │ │ │ ├── px150.srdf.xacro │ │ │ ├── rx150.srdf.xacro │ │ │ ├── rx200.srdf.xacro │ │ │ ├── vx250.srdf.xacro │ │ │ ├── vx300.srdf.xacro │ │ │ ├── vx300s.srdf.xacro │ │ │ ├── wx200.srdf.xacro │ │ │ ├── wx250.srdf.xacro │ │ │ └── wx250s.srdf.xacro │ ├── images │ │ └── moveit_flowchart.png │ ├── launch │ │ ├── chomp_planning_pipeline.launch.xml │ │ ├── default_warehouse_db.launch │ │ ├── interbotix_moveit copy.launch │ │ ├── interbotix_moveit.launch │ │ ├── interbotix_moveit_controller_manager.launch.xml │ │ ├── interbotix_moveit_sensor_manager.launch.xml │ │ ├── joystick_control.launch │ │ ├── move_group.launch │ │ ├── moveit.rviz │ │ ├── moveit_rviz.launch │ │ ├── ompl_planning_pipeline.launch.xml │ │ ├── planning_context.launch │ │ ├── planning_pipeline.launch.xml │ │ ├── run_benchmark_ompl.launch │ │ ├── sensor_manager.launch.xml │ │ ├── setup_assistant.launch │ │ ├── trajectory_execution.launch.xml │ │ ├── warehouse.launch │ │ └── warehouse_settings.launch.xml │ └── package.xml │ ├── interbotix_moveit_interface │ ├── CMakeLists.txt │ ├── README.md │ ├── desktop │ │ ├── arm_control.desktop.in │ │ └── arm_control.png │ ├── include │ │ └── interbotix_moveit_interface │ │ │ └── moveit_interface.h │ ├── launch │ │ ├── focus_capture.launch │ │ ├── location_capture.launch │ │ └── moveit_interface.launch │ ├── package.xml │ ├── scripts │ │ ├── arm_exec.bash.in │ │ ├── consts │ │ │ ├── __init__.py │ │ │ └── resource_paths.py │ │ ├── focus_capture_moveit │ │ ├── location_capture_moveit │ │ ├── moveit_python_interface │ │ └── resources │ │ │ ├── boards │ │ │ ├── BW1092.json │ │ │ ├── BW1097.json │ │ │ └── BW1098OBC.json │ │ │ ├── calibration-chess-board.png │ │ │ ├── default.calib │ │ │ ├── nn │ │ │ ├── age-gender-recognition-retail-0013 │ │ │ │ ├── age-gender-recognition-retail-0013.blob │ │ │ │ └── age-gender-recognition-retail-0013.json │ │ │ ├── emotions-recognition-retail-0003 │ │ │ │ ├── emotions-recognition-retail-0003.blob │ │ │ │ └── emotions-recognition-retail-0003.json │ │ │ ├── face-detection-adas-0001 │ │ │ │ ├── face-detection-adas-0001.blob │ │ │ │ ├── face-detection-adas-0001.json │ │ │ │ └── face-detection-adas-0001_depth.json │ │ │ ├── face-detection-retail-0004 │ │ │ │ ├── face-detection-retail-0004.blob │ │ │ │ ├── face-detection-retail-0004.json │ │ │ │ └── face-detection-retail-0004_depth.json │ │ │ ├── facial-landmarks-35-adas-0002 │ │ │ │ ├── facial-landmarks-35-adas-0002.blob │ │ │ │ └── facial-landmarks-35-adas-0002.json │ │ │ ├── json_validation_schema.json │ │ │ ├── landmarks-regression-retail-0009 │ │ │ │ ├── landmarks-regression-retail-0009.blob │ │ │ │ └── landmarks-regression-retail-0009.json │ │ │ ├── mobilenet-ssd │ │ │ │ ├── mobilenet-ssd.blob │ │ │ │ ├── mobilenet-ssd.json │ │ │ │ └── mobilenet-ssd_depth.json │ │ │ ├── pedestrian-detection-adas-0002 │ │ │ │ ├── pedestrian-detection-adas-0002.blob │ │ │ │ ├── pedestrian-detection-adas-0002.json │ │ │ │ └── pedestrian-detection-adas-0002_depth.json │ │ │ ├── person-detection-retail-0013 │ │ │ │ ├── person-detection-retail-0013.blob │ │ │ │ ├── person-detection-retail-0013.json │ │ │ │ └── person-detection-retail-0013_depth.json │ │ │ ├── person-vehicle-bike-detection-crossroad-1016 │ │ │ │ ├── person-vehicle-bike-detection-crossroad-1016.blob │ │ │ │ ├── person-vehicle-bike-detection-crossroad-1016.json │ │ │ │ └── person-vehicle-bike-detection-crossroad-1016_depth.json │ │ │ ├── tiny-yolo │ │ │ │ ├── tiny-yolo.blob │ │ │ │ └── tiny-yolo.json │ │ │ ├── vehicle-detection-adas-0002 │ │ │ │ ├── vehicle-detection-adas-0002.blob │ │ │ │ ├── vehicle-detection-adas-0002.json │ │ │ │ └── vehicle-detection-adas-0002_depth.json │ │ │ └── vehicle-license-plate-detection-barrier-0106 │ │ │ │ ├── vehicle-license-plate-detection-barrier-0106.blob │ │ │ │ ├── vehicle-license-plate-detection-barrier-0106.json │ │ │ │ └── vehicle-license-plate-detection-barrier-0106_depth.json │ │ │ └── patternnew.png │ ├── src │ │ ├── moveit_interface.cpp │ │ └── moveit_interface_node.cpp │ └── srv │ │ ├── Capture.srv │ │ └── MoveItPlan.srv │ └── interbotix_sdk │ ├── 10-interbotix-udev.rules │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ ├── px100.yaml │ ├── px150.yaml │ ├── pxxls.yaml │ ├── rx150.yaml │ ├── rx200.yaml │ ├── vx250.yaml │ ├── vx300.yaml │ ├── vx300s.yaml │ ├── vxxmd.yaml │ ├── vxxms.yaml │ ├── wx200.yaml │ ├── wx250.yaml │ ├── wx250s.yaml │ ├── wxxmd.yaml │ └── wxxms.yaml │ ├── images │ └── sdk_flowchart.png │ ├── include │ └── interbotix_sdk │ │ ├── arm_obj.h │ │ └── pid.h │ ├── launch │ ├── arm_run.launch │ └── turret_run.launch │ ├── msg │ ├── JointCommands.msg │ └── SingleCommand.msg │ ├── package.xml │ ├── pid_config │ ├── px100_pid.yaml │ ├── px150_pid.yaml │ ├── rx150_pid.yaml │ ├── rx200_pid.yaml │ ├── vx250_pid.yaml │ ├── vx300_pid.yaml │ ├── vx300s_pid.yaml │ ├── wx200_pid.yaml │ ├── wx250_pid.yaml │ └── wx250s_pid.yaml │ ├── setup.py │ ├── src │ ├── arm_node.cpp │ ├── arm_obj.cpp │ ├── interbotix_sdk │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ └── robot_manipulation.cpython-36.pyc │ │ ├── angle_manipulation.py │ │ ├── angle_manipulation.pyc │ │ ├── robot_manipulation.py │ │ └── robot_manipulation.pyc │ └── pid.cpp │ └── srv │ ├── FirmwareGains.srv │ ├── OperatingModes.srv │ ├── RegisterValues.srv │ └── RobotInfo.srv ├── pattern.pdf ├── pattern_medium_2x3ft.pdf ├── python3_ws ├── .catkin_workspace └── src │ ├── CMakeLists.txt │ └── calibration │ ├── CMakeLists.txt │ ├── launch │ ├── depthai_calib.launch │ ├── depthai_calib_poe.launch │ ├── oak_d_cm4.launch │ ├── oak_d_cm4_poe.launch │ └── oak_d_cm4_poe_c11.launch │ ├── package.xml │ ├── perspective │ └── image.perspective │ ├── scripts │ ├── 1097_socket_read.py │ ├── __init__.py │ ├── consts │ │ ├── __init__.py │ │ └── resource_paths.py │ ├── depthai_calibrator.py │ ├── depthai_cm4_calibration.py │ ├── depthai_helpers │ │ ├── __init__.py │ │ ├── age_gender_recognition_handler.py │ │ ├── cli_utils.py │ │ ├── emotion_recognition_handler.py │ │ ├── landmarks_recognition_handler.py │ │ ├── mobilenet_ssd_handler.py │ │ ├── model_downloader.py │ │ ├── object_tracker_handler.py │ │ ├── production_support_server_api.py │ │ ├── pygame_checkbox.py │ │ ├── tiny_yolo_v3_handler.py │ │ ├── update_submodules.py │ │ └── utils.py │ ├── resources │ │ ├── calibration-chess-board.png │ │ ├── default.calib │ │ ├── nn │ │ │ └── mobilenet-ssd │ │ │ │ ├── mobilenet-ssd.blob │ │ │ │ ├── mobilenet-ssd.json │ │ │ │ └── mobilenet-ssd_depth.json │ │ └── patternnew.png │ ├── select_device_ui.py │ ├── test-legacy.json │ └── test.json │ ├── setup.py │ └── srv │ ├── Capture.srv │ └── MoveItPlan.srv ├── rc.local ├── requirements.txt ├── requirements_cm4.txt └── server.py /.gitignore: -------------------------------------------------------------------------------- 1 | dataset 2 | # Prerequisites 3 | *.d 4 | *build 5 | # Compiled Object files 6 | *.slo 7 | *.lo 8 | *.o 9 | *.obj 10 | */py3venv/ 11 | # Precompiled Headers 12 | *.gch 13 | *.pch 14 | *.pyc 15 | *__pycache__ 16 | # Compiled Dynamic libraries 17 | *.so 18 | *.dylib 19 | *.dll 20 | */__pycache__/ 21 | 22 | */__pycache__ 23 | 24 | # Fortran module files 25 | *.mod 26 | *.smod 27 | 28 | # Compiled Static libraries 29 | *.lai 30 | *.la 31 | *.a 32 | *.lib 33 | 34 | # Executables 35 | *.exe 36 | *.out 37 | *.app 38 | 39 | # ROS folders 40 | */devel/ 41 | */build/ 42 | */install/ 43 | # IPYNB checkpoints 44 | *.ipynb_checkpoints 45 | 46 | # rosbags 47 | *.bag 48 | 49 | # VS Code 50 | .vscode/ 51 | 52 | # Remove DS_Store 53 | *.DS_Store 54 | 55 | # Ignore .catkin_workspace 56 | ros_ws/.catkin_workspace 57 | 58 | # Ignoring pcd and json files 59 | *.pcd 60 | *.calib 61 | 62 | results_cache.jsonl -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "python3_ws/src/calibration/scripts/resources/depthai-boards"] 2 | path = python3_ws/src/calibration/scripts/resources/depthai_boards 3 | url = ../depthai-boards 4 | [submodule "python3_ws/src/calibration/scripts/resources/depthai-boards-private"] 5 | path = python3_ws/src/calibration/scripts/resources/depthai_boards_private 6 | url = ../depthai-boards-private.git 7 | [submodule "python3_ws/src/calibration/scripts/depthai_calibration"] 8 | path = python3_ws/src/calibration/scripts/depthai_calibration 9 | url = ../depthai-calibration.git 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Luxonis Holding Corporation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /calib.io_charuco_508x406.4_16x22_20_DICT_4X4_finalized.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/calib.io_charuco_508x406.4_16x22_20_DICT_4X4_finalized.pdf -------------------------------------------------------------------------------- /enable_cm4_oak.py: -------------------------------------------------------------------------------- 1 | import RPi.GPIO as GPIO 2 | GPIO.setmode(GPIO.BCM) 3 | GPIO.setup(1, GPIO.OUT) 4 | GPIO.output(1, GPIO.LOW) 5 | -------------------------------------------------------------------------------- /interbotix_ws/.catkin_workspace: -------------------------------------------------------------------------------- 1 | # This file currently only serves to mark the location of a catkin workspace for tool integration 2 | -------------------------------------------------------------------------------- /interbotix_ws/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | /opt/ros/noetic/share/catkin/cmake/toplevel.cmake -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(interbotix_descriptions) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | find_package(catkin REQUIRED COMPONENTS 8 | joint_state_publisher 9 | joint_state_publisher_gui 10 | robot_state_publisher 11 | roslaunch 12 | rviz 13 | xacro 14 | ) 15 | 16 | ## Uncomment this if the package has a setup.py. This macro ensures 17 | ## modules and global scripts declared therein get installed 18 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 19 | catkin_python_setup() 20 | 21 | ################################### 22 | ## catkin specific configuration ## 23 | ################################### 24 | ## The catkin_package macro generates cmake config files for your package 25 | ## Declare things to be passed to dependent projects 26 | catkin_package( 27 | CATKIN_DEPENDS joint_state_publisher joint_state_publisher_gui robot_state_publisher roslaunch rviz xacro 28 | ) 29 | 30 | ########### 31 | ## Build ## 32 | ########### 33 | 34 | ## Specify additional locations of header files 35 | ## Your package locations should be listed before other locations 36 | include_directories( 37 | ${catkin_INCLUDE_DIRS} 38 | ) 39 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/images/descriptions_flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/images/descriptions_flowchart.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/launch/description.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 36 | 37 | 38 | 43 | 44 | 45 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/interbotix_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/interbotix_black.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-5-Wrist-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-5-Wrist-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-6-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-6-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-7-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-7-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-8-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px100/PXA-100-M-8-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-5-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-5-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-6-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-6-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-7-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-7-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-8-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-8-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-9-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_px150/PXA-150-M-9-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_pxxls/PXT-XLS-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_pxxls/PXT-XLS-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_pxxls/PXT-XLS-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_pxxls/PXT-XLS-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_pxxls/PXT-XLS-M-3-Top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_pxxls/PXT-XLS-M-3-Top.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-5-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-5-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-6-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-6-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-7-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-7-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-8-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-8-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-9-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx150/RXA-150-M-9-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-5-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-5-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-6-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-6-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-7-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-7-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-8-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-8-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-9-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_rx200/RXA-200-M-9-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-5-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-5-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-6-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-6-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-7-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-7-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-8-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-8-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-9-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx250/VXA-250-M-9-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-5-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-5-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-6-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-6-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-7-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-7-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-8-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-8-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-9-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300/VXA-300-M-9-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-10-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-10-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-4-UF.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-4-UF.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-5-LF.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-5-LF.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-6-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-6-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-7-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-7-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-8-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-8-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-9-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vx300s/VXSA-300-M-9-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxmd/VXT-XMD-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxmd/VXT-XMD-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxmd/VXT-XMD-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxmd/VXT-XMD-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxmd/VXT-XMD-M-3-Top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxmd/VXT-XMD-M-3-Top.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxms/VXT-XMS-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxms/VXT-XMS-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxms/VXT-XMS-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxms/VXT-XMS-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxms/VXT-XMS-M-3-Top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_vxxms/VXT-XMS-M-3-Top.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-5-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-5-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-6-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-6-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-7-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-7-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-8-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-8-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-9-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx200/WXA-200-M-9-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-4-Forearm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-4-Forearm.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-5-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-5-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-6-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-6-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-7-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-7-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-8-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-8-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-9-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250/WXA-250-M-9-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-10-Finger.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-10-Finger.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-3-UA.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-3-UA.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-4-UF.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-4-UF.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-5-LF.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-5-LF.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-6-Wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-6-Wrist.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-7-Gripper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-7-Gripper.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-8-Gripper-Prop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-8-Gripper-Prop.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-9-Gripper-Bar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wx250s/WXSA-250-M-9-Gripper-Bar.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxmd/WXT-XMD-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxmd/WXT-XMD-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxmd/WXT-XMD-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxmd/WXT-XMD-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxmd/WXT-XMD-M-3-Top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxmd/WXT-XMD-M-3-Top.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxms/WXT-XMS-M-1-Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxms/WXT-XMS-M-1-Base.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxms/WXT-XMS-M-2-Shoulder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxms/WXT-XMS-M-2-Shoulder.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxms/WXT-XMS-M-3-Top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/meshes/meshes_wxxms/WXT-XMS-M-3-Top.stl -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | interbotix_descriptions 4 | 0.0.0 5 | The interbotix_descriptions package 6 | Solomon Wiznitzer 7 | BSD 8 | 9 | Solomon Wiznitzer 10 | 11 | 12 | 13 | catkin 14 | joint_state_publisher 15 | joint_state_publisher_gui 16 | robot_state_publisher 17 | roslaunch 18 | rviz 19 | xacro 20 | joint_state_publisher 21 | joint_state_publisher_gui 22 | robot_state_publisher 23 | roslaunch 24 | rviz 25 | xacro 26 | joint_state_publisher 27 | joint_state_publisher_gui 28 | robot_state_publisher 29 | roslaunch 30 | rviz 31 | xacro 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/setup.py: -------------------------------------------------------------------------------- 1 | ## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD 2 | 3 | from distutils.core import setup 4 | from catkin_pkg.python_setup import generate_distutils_setup 5 | 6 | # fetch values from package.xml 7 | setup_args = generate_distutils_setup( 8 | packages=['interbotix_descriptions'], 9 | package_dir={'': 'src'}, 10 | ) 11 | 12 | setup(**setup_args) 13 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/src/interbotix_descriptions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/src/interbotix_descriptions/__init__.py -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_descriptions/src/interbotix_descriptions/interbotix_mr_descriptions.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_descriptions/src/interbotix_descriptions/interbotix_mr_descriptions.pyc -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(interbotix_gazebo) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | find_package(catkin REQUIRED COMPONENTS 8 | controller_manager 9 | effort_controllers 10 | gazebo_ros 11 | gazebo_ros_control 12 | interbotix_descriptions 13 | joint_state_controller 14 | joint_trajectory_controller 15 | ) 16 | 17 | ################################### 18 | ## catkin specific configuration ## 19 | ################################### 20 | ## The catkin_package macro generates cmake config files for your package 21 | ## Declare things to be passed to dependent projects 22 | catkin_package( 23 | CATKIN_DEPENDS controller_manager effort_controllers gazebo_ros gazebo_ros_control interbotix_descriptions joint_state_controller joint_trajectory_controller 24 | ) 25 | 26 | ########### 27 | ## Build ## 28 | ########### 29 | 30 | ## Specify additional locations of header files 31 | ## Your package locations should be listed before other locations 32 | include_directories( 33 | ${catkin_INCLUDE_DIRS} 34 | ) 35 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/interbotix_texture.gazebo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | gazebo_ros_control/DefaultRobotHWSim 7 | true 8 | 9 | 10 | 11 | 12 | Custom/Interbotix 13 | 14 | 15 | 16 | Custom/Interbotix 17 | 18 | 19 | 20 | Custom/Interbotix 21 | 22 | 23 | 24 | Custom/Interbotix 25 | 26 | 27 | 28 | Custom/Interbotix 29 | 30 | 31 | 32 | Custom/Interbotix 33 | 34 | 35 | 36 | Custom/Interbotix 37 | 38 | 39 | 40 | Custom/Interbotix 41 | 42 | 43 | 44 | 1 45 | Custom/Interbotix 46 | 47 | 48 | 49 | Custom/Interbotix 50 | 51 | 52 | 53 | Custom/Interbotix 54 | 55 | 56 | 57 | Custom/Interbotix 58 | 59 | 60 | 61 | true 62 | 63 | 64 | 65 | true 66 | 67 | 68 | 69 | true 70 | 71 | 72 | 73 | true 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/px100_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | gains: # Required because we're controlling an effort interface 15 | waist: {p: 100.0, d: 0.5, i: 5.0} 16 | shoulder: {p: 500.0, d: 0.5, i: 10.0} 17 | elbow: {p: 300.0, d: 0.0, i: 10.0} 18 | wrist_angle: {p: 100.0, d: 0.0, i: 3.0} 19 | 20 | constraints: 21 | goal_time: 0.2 22 | waist: 23 | goal: 0.1 24 | trajectory: 0.2 25 | shoulder: 26 | goal: 0.2 27 | trajectory: 0.2 28 | elbow: 29 | goal: 0.2 30 | trajectory: 0.2 31 | wrist_angle: 32 | goal: 0.2 33 | trajectory: 0.2 34 | 35 | gripper_controller: 36 | type: effort_controllers/JointTrajectoryController 37 | joints: 38 | - left_finger 39 | - right_finger 40 | gains: 41 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 42 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 43 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/px150_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | - wrist_rotate 15 | gains: # Required because we're controlling an effort interface 16 | waist: {p: 100.0, d: 0.1, i: 5.0} 17 | shoulder: {p: 500.0, d: 0.1, i: 10.0} 18 | elbow: {p: 300.0, d: 0.5, i: 10.0} 19 | wrist_angle: {p: 500.0, d: 0.1, i: 1.0} 20 | wrist_rotate: {p: 500.0, d: 0.1, i: 1.0} 21 | 22 | constraints: 23 | goal_time: 0.2 24 | waist: 25 | goal: 0.1 26 | trajectory: 0.2 27 | shoulder: 28 | goal: 0.2 29 | trajectory: 0.2 30 | elbow: 31 | goal: 0.2 32 | trajectory: 0.2 33 | wrist_angle: 34 | goal: 0.2 35 | trajectory: 0.2 36 | wrist_rotate: 37 | goal: 0.2 38 | trajectory: 0.2 39 | 40 | gripper_controller: 41 | type: effort_controllers/JointTrajectoryController 42 | joints: 43 | - left_finger 44 | - right_finger 45 | gains: 46 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 47 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/rx150_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | - wrist_rotate 15 | gains: # Required because we're controlling an effort interface 16 | waist: {p: 100.0, d: 1.0, i: 5.0} 17 | shoulder: {p: 500.0, d: 1.0, i: 10.0} 18 | elbow: {p: 300.0, d: 1.0, i: 10.0} 19 | wrist_angle: {p: 100.0, d: 0.1, i: 3.0} 20 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 21 | 22 | constraints: 23 | goal_time: 0.2 24 | waist: 25 | goal: 0.1 26 | trajectory: 0.2 27 | shoulder: 28 | goal: 0.2 29 | trajectory: 0.2 30 | elbow: 31 | goal: 0.2 32 | trajectory: 0.2 33 | wrist_angle: 34 | goal: 0.2 35 | trajectory: 0.2 36 | wrist_rotate: 37 | goal: 0.2 38 | trajectory: 0.2 39 | 40 | gripper_controller: 41 | type: effort_controllers/JointTrajectoryController 42 | joints: 43 | - left_finger 44 | - right_finger 45 | gains: 46 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 47 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/rx200_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | - wrist_rotate 15 | gains: # Required because we're controlling an effort interface 16 | waist: {p: 100.0, d: 1.0, i: 5.0} 17 | shoulder: {p: 500.0, d: 1.0, i: 10.0} 18 | elbow: {p: 300.0, d: 1.0, i: 10.0} 19 | wrist_angle: {p: 100.0, d: 1.0, i: 3.0} 20 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 21 | 22 | constraints: 23 | goal_time: 0.2 24 | waist: 25 | goal: 0.1 26 | trajectory: 0.2 27 | shoulder: 28 | goal: 0.2 29 | trajectory: 0.2 30 | elbow: 31 | goal: 0.2 32 | trajectory: 0.2 33 | wrist_angle: 34 | goal: 0.2 35 | trajectory: 0.2 36 | wrist_rotate: 37 | goal: 0.2 38 | trajectory: 0.2 39 | 40 | gripper_controller: 41 | type: effort_controllers/JointTrajectoryController 42 | joints: 43 | - left_finger 44 | - right_finger 45 | gains: 46 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 47 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/vx250_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | - wrist_rotate 15 | gains: # Required because we're controlling an effort interface 16 | waist: {p: 100.0, d: 0.5, i: 5.0} 17 | shoulder: {p: 500.0, d: 0.5, i: 10.0} 18 | elbow: {p: 300.0, d: 0.5, i: 10.0} 19 | wrist_angle: {p: 100.0, d: 0.1, i: 3.0} 20 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 21 | 22 | constraints: 23 | goal_time: 0.2 24 | waist: 25 | goal: 0.1 26 | trajectory: 0.2 27 | shoulder: 28 | goal: 0.2 29 | trajectory: 0.2 30 | elbow: 31 | goal: 0.2 32 | trajectory: 0.2 33 | wrist_angle: 34 | goal: 0.2 35 | trajectory: 0.2 36 | wrist_rotate: 37 | goal: 0.2 38 | trajectory: 0.2 39 | 40 | gripper_controller: 41 | type: effort_controllers/JointTrajectoryController 42 | joints: 43 | - left_finger 44 | - right_finger 45 | gains: 46 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 47 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/vx300_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | - wrist_rotate 15 | gains: # Required because we're controlling an effort interface 16 | waist: {p: 100.0, d: 1.0, i: 5.0} 17 | shoulder: {p: 500.0, d: 1.0, i: 10.0} 18 | elbow: {p: 300.0, d: 1.0, i: 10.0} 19 | wrist_angle: {p: 100.0, d: 0.1, i: 3.0} 20 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 21 | 22 | constraints: 23 | goal_time: 0.2 24 | waist: 25 | goal: 0.1 26 | trajectory: 0.2 27 | shoulder: 28 | goal: 0.2 29 | trajectory: 0.2 30 | elbow: 31 | goal: 0.2 32 | trajectory: 0.2 33 | wrist_angle: 34 | goal: 0.2 35 | trajectory: 0.2 36 | wrist_rotate: 37 | goal: 0.2 38 | trajectory: 0.2 39 | 40 | gripper_controller: 41 | type: effort_controllers/JointTrajectoryController 42 | joints: 43 | - left_finger 44 | - right_finger 45 | gains: 46 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 47 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/vx300s_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - forearm_roll 14 | - wrist_angle 15 | - wrist_rotate 16 | gains: # Required because we're controlling an effort interface 17 | waist: {p: 100.0, d: 1.0, i: 5.0} 18 | shoulder: {p: 500.0, d: 1.0, i: 10.0} 19 | elbow: {p: 300.0, d: 1.0, i: 10.0} 20 | forearm_roll: {p: 100.0, d: 0.1, i: 3.0} 21 | wrist_angle: {p: 100.0, d: 0.1, i: 3.0} 22 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 23 | 24 | constraints: 25 | goal_time: 0.2 26 | waist: 27 | goal: 0.1 28 | trajectory: 0.2 29 | shoulder: 30 | goal: 0.2 31 | trajectory: 0.2 32 | elbow: 33 | goal: 0.2 34 | trajectory: 0.2 35 | forearm_roll: 36 | goal: 0.2 37 | trajectory: 0.2 38 | wrist_angle: 39 | goal: 0.2 40 | trajectory: 0.2 41 | wrist_rotate: 42 | goal: 0.2 43 | trajectory: 0.2 44 | 45 | gripper_controller: 46 | type: effort_controllers/JointTrajectoryController 47 | joints: 48 | - left_finger 49 | - right_finger 50 | gains: 51 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 52 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 53 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/wx200_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | - wrist_rotate 15 | gains: # Required because we're controlling an effort interface 16 | waist: {p: 100.0, d: 1.0, i: 5.0} 17 | shoulder: {p: 500.0, d: 1.0, i: 10.0} 18 | elbow: {p: 300.0, d: 1.0, i: 10.0} 19 | wrist_angle: {p: 100.0, d: 1.0, i: 3.0} 20 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 21 | 22 | constraints: 23 | goal_time: 0.2 24 | waist: 25 | goal: 0.1 26 | trajectory: 0.2 27 | shoulder: 28 | goal: 0.2 29 | trajectory: 0.2 30 | elbow: 31 | goal: 0.2 32 | trajectory: 0.2 33 | wrist_angle: 34 | goal: 0.2 35 | trajectory: 0.2 36 | wrist_rotate: 37 | goal: 0.2 38 | trajectory: 0.2 39 | 40 | gripper_controller: 41 | type: effort_controllers/JointTrajectoryController 42 | joints: 43 | - left_finger 44 | - right_finger 45 | gains: 46 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 47 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/wx250_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - wrist_angle 14 | - wrist_rotate 15 | gains: # Required because we're controlling an effort interface 16 | waist: {p: 100.0, d: 1.0, i: 5.0} 17 | shoulder: {p: 500.0, d: 1.0, i: 10.0} 18 | elbow: {p: 300.0, d: 1.0, i: 10.0} 19 | wrist_angle: {p: 100.0, d: 1.0, i: 3.0} 20 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 21 | 22 | constraints: 23 | goal_time: 0.2 24 | waist: 25 | goal: 0.1 26 | trajectory: 0.2 27 | shoulder: 28 | goal: 0.2 29 | trajectory: 0.2 30 | elbow: 31 | goal: 0.2 32 | trajectory: 0.2 33 | wrist_angle: 34 | goal: 0.2 35 | trajectory: 0.2 36 | wrist_rotate: 37 | goal: 0.2 38 | trajectory: 0.2 39 | 40 | gripper_controller: 41 | type: effort_controllers/JointTrajectoryController 42 | joints: 43 | - left_finger 44 | - right_finger 45 | gains: 46 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 47 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/config/wx250s_gazebo_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Publish all joint states 2 | # Creates the /joint_states topic necessary in ROS 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 100 6 | 7 | arm_controller: 8 | type: effort_controllers/JointTrajectoryController 9 | joints: 10 | - waist 11 | - shoulder 12 | - elbow 13 | - forearm_roll 14 | - wrist_angle 15 | - wrist_rotate 16 | gains: # Required because we're controlling an effort interface 17 | waist: {p: 100.0, d: 1.0, i: 5.0} 18 | shoulder: {p: 500.0, d: 1.0, i: 10.0} 19 | elbow: {p: 300.0, d: 1.0, i: 10.0} 20 | forearm_roll: {p: 5.0, d: 0, i: 0} 21 | wrist_angle: {p: 100.0, d: 1.0, i: 3.0} 22 | wrist_rotate: {p: 100.0, d: 0.1, i: 1.0} 23 | 24 | constraints: 25 | goal_time: 0.2 26 | waist: 27 | goal: 0.1 28 | trajectory: 0.2 29 | shoulder: 30 | goal: 0.2 31 | trajectory: 0.2 32 | elbow: 33 | goal: 0.2 34 | trajectory: 0.2 35 | forearm_roll: 36 | goal: 0.2 37 | trajectory: 0.2 38 | wrist_angle: 39 | goal: 0.2 40 | trajectory: 0.2 41 | wrist_rotate: 42 | goal: 0.2 43 | trajectory: 0.2 44 | 45 | gripper_controller: 46 | type: effort_controllers/JointTrajectoryController 47 | joints: 48 | - left_finger 49 | - right_finger 50 | gains: 51 | left_finger: {p: 100.0, d: 1.0, i: 0.0} 52 | right_finger: {p: 100.0, d: 1.0, i: 0.0} 53 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/images/gazebo_flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_gazebo/images/gazebo_flowchart.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/media/materials/scripts/interbotix_black.material: -------------------------------------------------------------------------------- 1 | material Custom/Interbotix 2 | { 3 | technique 4 | { 5 | pass 6 | { 7 | texture_unit 8 | { 9 | texture interbotix_black.png 10 | scale 1 1 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/media/materials/textures/interbotix_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_gazebo/media/materials/textures/interbotix_black.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_gazebo/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | interbotix_gazebo 4 | 0.0.0 5 | The interbotix_gazebo package 6 | Solomon Wiznitzer 7 | BSD 8 | 9 | Solomon Wiznitzer 10 | 11 | 12 | 13 | catkin 14 | controller_manager 15 | effort_controllers 16 | gazebo_ros 17 | gazebo_ros_control 18 | interbotix_descriptions 19 | joint_state_controller 20 | joint_trajectory_controller 21 | controller_manager 22 | effort_controllers 23 | gazebo_ros 24 | gazebo_ros_control 25 | interbotix_descriptions 26 | joint_state_controller 27 | joint_trajectory_controller 28 | controller_manager 29 | effort_controllers 30 | gazebo_ros 31 | gazebo_ros_control 32 | interbotix_descriptions 33 | joint_state_controller 34 | joint_trajectory_controller 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/.setup_assistant: -------------------------------------------------------------------------------- 1 | moveit_setup_assistant_config: 2 | URDF: 3 | package: interbotix_descriptions 4 | relative_path: urdf/wx200.urdf.xacro 5 | xacro_args: "--inorder " 6 | SRDF: 7 | relative_path: config/wx200.srdf 8 | CONFIG: 9 | author_name: Solomon Wiznitzer 10 | author_email: trsupport@trossenrobotics.com 11 | generated_timestamp: 1565280240 -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(interbotix_moveit) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | 8 | install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 9 | PATTERN "setup_assistant.launch" EXCLUDE) 10 | install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 11 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/chomp_planning.yaml: -------------------------------------------------------------------------------- 1 | planning_time_limit: 10.0 2 | max_iterations: 200 3 | max_iterations_after_collision_free: 5 4 | smoothness_cost_weight: 0.1 5 | obstacle_cost_weight: 1.0 6 | learning_rate: 0.01 7 | smoothness_cost_velocity: 0.0 8 | smoothness_cost_acceleration: 1.0 9 | smoothness_cost_jerk: 0.0 10 | ridge_factor: 0.01 11 | use_pseudo_inverse: false 12 | pseudo_inverse_ridge_factor: 1e-4 13 | joint_update_limit: 0.1 14 | collision_clearence: 0.2 15 | collision_threshold: 0.07 16 | use_stochastic_descent: true 17 | enable_failure_recovery: true 18 | max_recovery_attempts: 5 -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/controllers/4dof_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: "arm_controller" 3 | action_ns: follow_joint_trajectory 4 | type: FollowJointTrajectory 5 | joints: [waist, shoulder, elbow, wrist_angle] 6 | - name: "gripper_controller" 7 | action_ns: follow_joint_trajectory 8 | type: FollowJointTrajectory 9 | joints: [right_finger, left_finger] 10 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/controllers/5dof_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: "arm_controller" 3 | action_ns: follow_joint_trajectory 4 | type: FollowJointTrajectory 5 | joints: [waist, shoulder, elbow, wrist_angle, wrist_rotate] 6 | - name: "gripper_controller" 7 | action_ns: follow_joint_trajectory 8 | type: FollowJointTrajectory 9 | joints: [right_finger, left_finger] 10 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/controllers/6dof_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: "arm_controller" 3 | action_ns: follow_joint_trajectory 4 | type: FollowJointTrajectory 5 | joints: [waist, shoulder, elbow, forearm_roll, wrist_angle, wrist_rotate] 6 | - name: "gripper_controller" 7 | action_ns: follow_joint_trajectory 8 | type: FollowJointTrajectory 9 | joints: [right_finger, left_finger] 10 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/fake_controllers/4dof_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: fake_interbotix_arm_controller 3 | joints: 4 | - waist 5 | - shoulder 6 | - elbow 7 | - wrist_angle 8 | - name: fake_interbotix_gripper_controller 9 | joints: 10 | - left_finger 11 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/fake_controllers/5dof_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: fake_interbotix_arm_controller 3 | joints: 4 | - waist 5 | - shoulder 6 | - elbow 7 | - wrist_angle 8 | - wrist_rotate 9 | - name: fake_interbotix_gripper_controller 10 | joints: 11 | - left_finger 12 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/fake_controllers/6dof_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: fake_interbotix_arm_controller 3 | joints: 4 | - waist 5 | - shoulder 6 | - elbow 7 | - forearm_roll 8 | - wrist_angle 9 | - wrist_rotate 10 | - name: fake_interbotix_gripper_controller 11 | joints: 12 | - left_finger 13 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/joint_limits/4dof_joint_limits.yaml: -------------------------------------------------------------------------------- 1 | # joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed 2 | # Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration] 3 | # Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits] 4 | joint_limits: 5 | elbow: 6 | has_velocity_limits: true 7 | max_velocity: 3.14 8 | has_acceleration_limits: true 9 | max_acceleration: 5 10 | left_finger: 11 | has_velocity_limits: true 12 | max_velocity: 1 13 | has_acceleration_limits: true 14 | max_acceleration: 0.01 15 | right_finger: 16 | has_velocity_limits: true 17 | max_velocity: 1 18 | has_acceleration_limits: true 19 | max_acceleration: 0.01 20 | shoulder: 21 | has_velocity_limits: true 22 | max_velocity: 3.14 23 | has_acceleration_limits: true 24 | max_acceleration: 5 25 | waist: 26 | has_velocity_limits: true 27 | max_velocity: 3.14 28 | has_acceleration_limits: true 29 | max_acceleration: 5 30 | wrist_angle: 31 | has_velocity_limits: true 32 | max_velocity: 3.14 33 | has_acceleration_limits: true 34 | max_acceleration: 5 35 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/joint_limits/5dof_joint_limits.yaml: -------------------------------------------------------------------------------- 1 | # joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed 2 | # Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration] 3 | # Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits] 4 | joint_limits: 5 | elbow: 6 | has_velocity_limits: true 7 | max_velocity: 3.14 8 | has_acceleration_limits: true 9 | max_acceleration: 5 10 | left_finger: 11 | has_velocity_limits: true 12 | max_velocity: 1 13 | has_acceleration_limits: true 14 | max_acceleration: 0.01 15 | right_finger: 16 | has_velocity_limits: true 17 | max_velocity: 1 18 | has_acceleration_limits: true 19 | max_acceleration: 0.01 20 | shoulder: 21 | has_velocity_limits: true 22 | max_velocity: 3.14 23 | has_acceleration_limits: true 24 | max_acceleration: 5 25 | waist: 26 | has_velocity_limits: true 27 | max_velocity: 3.14 28 | has_acceleration_limits: true 29 | max_acceleration: 5 30 | wrist_angle: 31 | has_velocity_limits: true 32 | max_velocity: 3.14 33 | has_acceleration_limits: true 34 | max_acceleration: 5 35 | wrist_rotate: 36 | has_velocity_limits: true 37 | max_velocity: 3.14 38 | has_acceleration_limits: true 39 | max_acceleration: 5 40 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/joint_limits/6dof_joint_limits.yaml: -------------------------------------------------------------------------------- 1 | # joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed 2 | # Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration] 3 | # Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits] 4 | default_velocity_scaling_factor: 1 5 | default_acceleration_scaling_factor: 1 6 | 7 | joint_limits: 8 | elbow: 9 | has_velocity_limits: true 10 | max_velocity: 3.14 11 | has_acceleration_limits: true 12 | max_acceleration: 5 13 | forearm_roll: 14 | has_velocity_limits: true 15 | max_velocity: 3.14 16 | has_acceleration_limits: true 17 | max_acceleration: 5 18 | left_finger: 19 | has_velocity_limits: true 20 | max_velocity: 1 21 | has_acceleration_limits: true 22 | max_acceleration: 0.01 23 | right_finger: 24 | has_velocity_limits: true 25 | max_velocity: 1 26 | has_acceleration_limits: true 27 | max_acceleration: 0.01 28 | shoulder: 29 | has_velocity_limits: true 30 | max_velocity: 3.14 31 | has_acceleration_limits: true 32 | max_acceleration: 5 33 | waist: 34 | has_velocity_limits: true 35 | max_velocity: 3.14 36 | has_acceleration_limits: true 37 | max_acceleration: 5 38 | wrist_angle: 39 | has_velocity_limits: true 40 | max_velocity: 3.14 41 | has_acceleration_limits: true 42 | max_acceleration: 5 43 | wrist_rotate: 44 | has_velocity_limits: true 45 | max_velocity: 3.14 46 | has_acceleration_limits: true 47 | max_acceleration: 5 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/config/kinematics.yaml: -------------------------------------------------------------------------------- 1 | # position-only-ik and orientation-only-ik don't work unless position_only_ik 2 | # is set to true for the KDL and trac_ik plugins 3 | 4 | # interbotix_arm: 5 | # kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin 6 | # kinematics_solver_search_resolution: 0.005 7 | # kinematics_solver_timeout: 0.005 8 | # kinematics_solver_attempts: 3 9 | # position_only_ik: true 10 | 11 | interbotix_arm: 12 | kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin 13 | kinematics_solver_timeout: 0.005 14 | solve_type: Speed 15 | position_only_ik: true 16 | 17 | # Position-only-ik and orientation-only-ik work automatically for the LMA plugin 18 | 19 | # interbotix_arm: 20 | # kinematics_solver: lma_kinematics_plugin/LMAKinematicsPlugin 21 | # kinematics_solver_search_resolution: 0.005 22 | # kinematics_solver_timeout: 0.005 23 | # kinematics_solver_attempts: 3 24 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/images/moveit_flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit/images/moveit_flowchart.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/chomp_planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/default_warehouse_db.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/interbotix_moveit_controller_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/interbotix_moveit_sensor_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/joystick_control.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/moveit_rviz.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/ompl_planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/planning_context.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/run_benchmark_ompl.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/sensor_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/setup_assistant.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/trajectory_execution.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/warehouse.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/launch/warehouse_settings.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | interbotix_moveit 4 | 0.3.0 5 | 6 | An automatically generated package with all the configuration and launch files for using an Interbotix Arm with the MoveIt! Motion Planning Framework 7 | 8 | Solomon Wiznitzer 9 | Solomon Wiznitzer 10 | 11 | BSD 12 | 13 | http://moveit.ros.org/ 14 | https://github.com/ros-planning/moveit/issues 15 | https://github.com/ros-planning/moveit 16 | 17 | catkin 18 | moveit_ros_move_group 19 | moveit_simple_controller_manager 20 | moveit_fake_controller_manager 21 | moveit_kinematics 22 | moveit_planners_ompl 23 | moveit_ros_visualization 24 | moveit_setup_assistant 25 | trac_ik_kinematics_plugin 26 | joint_state_publisher 27 | robot_state_publisher 28 | xacro 29 | 30 | 31 | interbotix_descriptions 32 | interbotix_descriptions 33 | 34 | 35 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/desktop/arm_control.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=arm control${DESKTOP_APP_SUFFIX} 3 | Comment=ROS based interbotix vx300s arm control node 4 | Exec=${CMAKE_CURRENT_BINARY_DIR}/scripts/arm_exec.bash 5 | Icon=${DESKTOP_ICON_DIR}/arm_control.png 6 | Type=Application 7 | Categories=ROS; 8 | StartupNotify=true -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/desktop/arm_control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/desktop/arm_control.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/launch/focus_capture.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/launch/location_capture.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/launch/moveit_interface.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/arm_exec.bash.in: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source @CMAKE_BINARY_DIR@/../devel/setup.bash 3 | export LC_NUMERIC="en_US.UTF-8" 4 | 5 | check_roscore() 6 | { 7 | rosnode list 8 | roscore_exist=$? 9 | } 10 | 11 | check_roscore 12 | if [ $roscore_exist -ne 0 ]; then 13 | echo "roscore not running! Running it as background process" 14 | roscore & 15 | 16 | while [ $roscore_exist -eq 0 ]; do 17 | echo 'Waiting for roscore...' 18 | sleep 0.2 19 | check_roscore 20 | done 21 | sleep 1 22 | fi 23 | 24 | roslaunch @PROJECT_NAME@ moveit_interface.launch robot_name:=vx300s use_actual:=true dof:=6 25 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/consts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/consts/__init__.py -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/consts/resource_paths.py: -------------------------------------------------------------------------------- 1 | import os 2 | from os import path 3 | from pathlib import Path 4 | 5 | 6 | def relative_to_abs_path(relative_path): 7 | dirname = Path(__file__).parent 8 | try: 9 | return str((dirname / relative_path).resolve()) 10 | except FileNotFoundError: 11 | return None 12 | 13 | prefix = relative_to_abs_path('../resources/')+"/" 14 | device_cmd_fpath = relative_to_abs_path('../depthai.cmd') 15 | device_usb2_cmd_fpath = relative_to_abs_path('../depthai_usb2.cmd') 16 | boards_dir_path = relative_to_abs_path('../resources/boards') + "/" 17 | custom_calib_fpath = relative_to_abs_path('../resources/depthai.calib') 18 | nn_resource_path = relative_to_abs_path('../resources/nn')+"/" 19 | blob_fpath = relative_to_abs_path('../resources/nn/mobilenet-ssd/mobilenet-ssd.blob') 20 | blob_config_fpath = relative_to_abs_path('../resources/nn/mobilenet-ssd/mobilenet-ssd.json') 21 | 22 | if custom_calib_fpath is not None and Path(custom_calib_fpath).exists(): 23 | calib_fpath = custom_calib_fpath 24 | print("Using Custom Calibration File: depthai.calib") 25 | else: 26 | calib_fpath = '' 27 | print("No calibration file. Using Calibration Defaults.") 28 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/boards/BW1092.json: -------------------------------------------------------------------------------- 1 | { 2 | "board_config": 3 | { 4 | "name": "BW1092", 5 | "revision": "R0M0E0", 6 | "swap_left_and_right_cameras": true, 7 | "left_fov_deg": 71.86, 8 | "rgb_fov_deg": 68.7938, 9 | "left_to_right_distance_cm": 4.0, 10 | "left_to_rgb_distance_cm": 1.0 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/boards/BW1097.json: -------------------------------------------------------------------------------- 1 | { 2 | "board_config": 3 | { 4 | "name": "BW1097", 5 | "revision": "R1M1E2", 6 | "swap_left_and_right_cameras": true, 7 | "left_fov_deg": 71.86, 8 | "rgb_fov_deg": 68.7938, 9 | "left_to_right_distance_cm": 9.0, 10 | "left_to_rgb_distance_cm": 2.0 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/boards/BW1098OBC.json: -------------------------------------------------------------------------------- 1 | { 2 | "board_config": 3 | { 4 | "name": "BW1098OBC", 5 | "revision": "R0M0E0", 6 | "swap_left_and_right_cameras": true, 7 | "left_fov_deg": 71.86, 8 | "rgb_fov_deg": 68.7938, 9 | "left_to_right_distance_cm": 7.5, 10 | "left_to_rgb_distance_cm": 3.75 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/calibration-chess-board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/calibration-chess-board.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/default.calib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/default.calib -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/age-gender-recognition-retail-0013/age-gender-recognition-retail-0013.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/age-gender-recognition-retail-0013/age-gender-recognition-retail-0013.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/age-gender-recognition-retail-0013/age-gender-recognition-retail-0013.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 1, 1], 7 | "output_entry_iteration_index": 0, 8 | "output_properties_dimensions": [0], 9 | "property_key_mapping": 10 | [ 11 | ["age"] 12 | ], 13 | "output_properties_type": "f16" 14 | }, 15 | { 16 | "output_tensor_name": "out1", 17 | "output_dimensions": [1, 2, 1, 1], 18 | "output_entry_iteration_index": 0, 19 | "output_properties_dimensions": [0], 20 | "property_key_mapping": 21 | [ 22 | ["female", "male"] 23 | ], 24 | "output_properties_type": "f16" 25 | } 26 | ] 27 | } 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/emotions-recognition-retail-0003/emotions-recognition-retail-0003.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/emotions-recognition-retail-0003/emotions-recognition-retail-0003.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/emotions-recognition-retail-0003/emotions-recognition-retail-0003.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 5, 1, 1], 7 | "output_entry_iteration_index": 0, 8 | "output_properties_dimensions": [0], 9 | "property_key_mapping": [], 10 | "output_properties_type": "f16" 11 | } 12 | ], 13 | "mappings": 14 | { 15 | "labels": 16 | [ 17 | "neutral", 18 | "happy", 19 | "sad", 20 | "surprise", 21 | "anger" 22 | ] 23 | } 24 | } 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-adas-0001/face-detection-adas-0001.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-adas-0001/face-detection-adas-0001.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-adas-0001/face-detection-adas-0001.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "face" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-adas-0001/face-detection-adas-0001_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "face" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-retail-0004/face-detection-retail-0004.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-retail-0004/face-detection-retail-0004.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-retail-0004/face-detection-retail-0004.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "face" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/face-detection-retail-0004/face-detection-retail-0004_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "face" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/facial-landmarks-35-adas-0002/facial-landmarks-35-adas-0002.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/facial-landmarks-35-adas-0002/facial-landmarks-35-adas-0002.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/facial-landmarks-35-adas-0002/facial-landmarks-35-adas-0002.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 70], 7 | "output_entry_iteration_index": 0, 8 | "output_properties_dimensions": [0], 9 | "property_key_mapping": [], 10 | "output_properties_type": "f16" 11 | } 12 | ] 13 | } 14 | 15 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/landmarks-regression-retail-0009/landmarks-regression-retail-0009.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/landmarks-regression-retail-0009/landmarks-regression-retail-0009.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/landmarks-regression-retail-0009/landmarks-regression-retail-0009.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 10], 7 | "output_entry_iteration_index": 0, 8 | "output_properties_dimensions": [0], 9 | "property_key_mapping": [], 10 | "output_properties_type": "f16" 11 | } 12 | ] 13 | } 14 | 15 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "background", 24 | "aeroplane", 25 | "bicycle", 26 | "bird", 27 | "boat", 28 | "bottle", 29 | "bus", 30 | "car", 31 | "cat", 32 | "chair", 33 | "cow", 34 | "diningtable", 35 | "dog", 36 | "horse", 37 | "motorbike", 38 | "person", 39 | "pottedplant", 40 | "sheep", 41 | "sofa", 42 | "train", 43 | "tvmonitor" 44 | ] 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "background", 24 | "aeroplane", 25 | "bicycle", 26 | "bird", 27 | "boat", 28 | "bottle", 29 | "bus", 30 | "car", 31 | "cat", 32 | "chair", 33 | "cow", 34 | "diningtable", 35 | "dog", 36 | "horse", 37 | "motorbike", 38 | "person", 39 | "pottedplant", 40 | "sheep", 41 | "sofa", 42 | "train", 43 | "tvmonitor" 44 | ] 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/pedestrian-detection-adas-0002/pedestrian-detection-adas-0002.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/pedestrian-detection-adas-0002/pedestrian-detection-adas-0002.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/pedestrian-detection-adas-0002/pedestrian-detection-adas-0002.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "pedestrian" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/pedestrian-detection-adas-0002/pedestrian-detection-adas-0002_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "pedestrian" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-detection-retail-0013/person-detection-retail-0013.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-detection-retail-0013/person-detection-retail-0013.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-detection-retail-0013/person-detection-retail-0013.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "person" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-detection-retail-0013/person-detection-retail-0013_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "unknown", 24 | "person" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-vehicle-bike-detection-crossroad-1016/person-vehicle-bike-detection-crossroad-1016.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-vehicle-bike-detection-crossroad-1016/person-vehicle-bike-detection-crossroad-1016.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-vehicle-bike-detection-crossroad-1016/person-vehicle-bike-detection-crossroad-1016.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "bike", 24 | "vechicle", 25 | "person" 26 | ] 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/person-vehicle-bike-detection-crossroad-1016/person-vehicle-bike-detection-crossroad-1016_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "bike", 24 | "vechicle", 25 | "person" 26 | ] 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/tiny-yolo/tiny-yolo.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/tiny-yolo/tiny-yolo.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/tiny-yolo/tiny-yolo.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 24, 26, 26], 7 | "output_entry_iteration_index": 0, 8 | "output_properties_dimensions": [0], 9 | "property_key_mapping": [], 10 | "output_properties_type": "f16" 11 | }, 12 | { 13 | "output_tensor_name": "out2", 14 | "output_dimensions": [1, 24, 13, 13], 15 | "output_entry_iteration_index": 0, 16 | "output_properties_dimensions": [0], 17 | "property_key_mapping": [], 18 | "output_properties_type": "f16" 19 | } 20 | ], 21 | "mappings": 22 | { 23 | "labels": 24 | [ 25 | "mask", 26 | "no mask", 27 | "no mask2" 28 | ] 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-detection-adas-0002/vehicle-detection-adas-0002.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-detection-adas-0002/vehicle-detection-adas-0002.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-detection-adas-0002/vehicle-detection-adas-0002.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "", 24 | "vehicle" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-detection-adas-0002/vehicle-detection-adas-0002_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "", 24 | "vehicle" 25 | ] 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-license-plate-detection-barrier-0106/vehicle-license-plate-detection-barrier-0106.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-license-plate-detection-barrier-0106/vehicle-license-plate-detection-barrier-0106.blob -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-license-plate-detection-barrier-0106/vehicle-license-plate-detection-barrier-0106.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "", 24 | "vehicle", 25 | "license plate" 26 | ] 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/nn/vehicle-license-plate-detection-barrier-0106/vehicle-license-plate-detection-barrier-0106_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "", 24 | "vehicle", 25 | "license plate" 26 | ] 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/scripts/resources/patternnew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_moveit_interface/scripts/resources/patternnew.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/src/moveit_interface_node.cpp: -------------------------------------------------------------------------------- 1 | #include "interbotix_moveit_interface/moveit_interface.h" 2 | 3 | int main( int argc, char** argv ) 4 | { 5 | ros::init(argc, argv, "moveit_interface"); 6 | // We need two spinners to run the InterbotixMoveItInterface node 7 | // - One spinner allows ROS messages to be processed during the blocking 'move_group.move()' command 8 | // - Another spinner allows ROS messages to be processed during a blocking service call (since planning 9 | // can take some time and the service does not return until the planning is done) 10 | ros::AsyncSpinner spinner(2); 11 | spinner.start(); 12 | ros::NodeHandle n; 13 | // Create instance of MoveIt interface 14 | InterbotixMoveItInterface interface(&n); 15 | ros::waitForShutdown(); 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/srv/Capture.srv: -------------------------------------------------------------------------------- 1 | #name of the image to be captured 2 | string name 3 | --- 4 | bool success 5 | string error 6 | 7 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_moveit_interface/srv/MoveItPlan.srv: -------------------------------------------------------------------------------- 1 | # Send commands to the moveit_plan server 2 | # 3 | # Enum values that define the commands available for the server. Note that all 4 | # ee_poses (defined in the 'ee_arm_link' frame) are relative to the 'world' frame. 5 | # There are 4 options: 6 | # 1) CMD_PLAN_POSE - Desired ee_pose which is made up of a position and orientation element 7 | # 2) CMD_PLAN_POSITION - Desired ee_position which is made up of a position element only; orientation is not constrained 8 | # 3) CMD_PLAN_ORIENTATION - Desired ee_orientation which is made up of an orientation element only; position is not constrained 9 | # 4) CMD_EXECUTE - Once a plan is available, this command executes the planned trajectory on the gazebo or physical robot 10 | int8 CMD_PLAN_POSE = 1 11 | int8 CMD_PLAN_POSITION = 2 12 | int8 CMD_PLAN_ORIENTATION = 3 13 | int8 CMD_EXECUTE = 4 14 | int8 cmd 15 | 16 | # desired ee_pose, position, or orientation 17 | geometry_msgs/Pose ee_pose 18 | --- 19 | # message if the planning or execution was successful; this is displayed in the custom GUI. 20 | std_msgs/String msg 21 | 22 | # boolean to easily check if the planning or execution was successful. 23 | bool success 24 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/10-interbotix-udev.rules: -------------------------------------------------------------------------------- 1 | # Place this file in /etc/udev/rules.d/ 2 | # Sets up rules to give permanent names to devices 3 | 4 | # Allow serial devices to be read by anyone 5 | KERNEL=="ttyUSB*", MODE:="0666" 6 | KERNEL=="ttyACM*", MODE:="0666" 7 | KERNEL=="js*", MODE:="0666" 8 | 9 | # OpenCM9.04C board 10 | SUBSYSTEM=="tty", ATTRS{idVendor}=="fff1", ATTRS{idProduct}=="ff48", ENV{ID_MM_DEVICE_IGNORE}="1", SYMLINK+="ttyDXL" 11 | 12 | # U2D2 board (also sets latency timer to 1ms for faster communication) 13 | SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", ENV{ID_MM_DEVICE_IGNORE}="1", ATTR{device/latency_timer}="1", SYMLINK+="ttyDXL" 14 | 15 | # RPLidar 16 | SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="rplidar" 17 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/images/sdk_flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_sdk/images/sdk_flowchart.png -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/launch/turret_run.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/msg/JointCommands.msg: -------------------------------------------------------------------------------- 1 | # Send a vector of position [rad], velocity [rad/s], current [mA], or pwm commands to a group of joints synchronously 2 | # as defined in the 'order' sequence in the motor config files (excludes the 'gripper' joint if present) 3 | # 4 | # The order of the joints is the same as the order of the joint names as published in the joint states topic 5 | 6 | float64[] cmd 7 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/msg/SingleCommand.msg: -------------------------------------------------------------------------------- 1 | # Send a command to the specified joint 2 | # 3 | # 'joint_name' is the name of the joint to control (any of the motor names listed 4 | # in the 'order' or 'singles' lists located in a motor config file - except for shadow motors) 5 | # 'cmd' can be a position [rad], velocity [rad/s], current [mA], or pwm depending on what operating 6 | # mode the joint is currently set at. 7 | # 8 | # Note that the gripper can be controlled by publishing this type of message to the 9 | # //single_joint/command topic as well. There are two main differences between using 10 | # this topic and the //gripper/command topic for controlling the gripper: 11 | # 1) By publishing to the //gripper/command topic, you do not have to specify that you 12 | # are commanding the gripper - it's automatically understood. 13 | # 2) When the gripper is in "position" control, using the //gripper/command topic specifies a 14 | # linear distance in meters between the gripper fingers. However, using the //single_joint/command 15 | # topic specifies an angular distance in radians. 16 | 17 | string joint_name 18 | float64 cmd 19 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/px100_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/px150_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/rx150_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/rx200_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/vx250_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/vx300_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/vx300s_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/wx200_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/wx250_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/pid_config/wx250s_pid.yaml: -------------------------------------------------------------------------------- 1 | # This file contains settings for operating the PID controllers that can be used when 2 | # sending trajectories to the arm joints. As menioned in the documentation, there are two 3 | # control modes when commanding trajectories. The first mode involves taking the desired 4 | # joint 'positions' in each waypoint and commanding them directly to all the motors. 5 | # Similarly, the second mode involves taking the desired joint 'velocities' in each waypoint 6 | # and commanding them directly to all the motors. The issue with doing this is that the 7 | # interbotix_sdk assumes that when a 'position' or 'velocity' command is sent to a motor, 8 | # the internal PID controller in the motor firmware is able to track the command perfectly. 9 | # However, due to gravity, backlash, and potentially other factors, this is not always the case. 10 | # To fix this issue, velocity-based-position-PID-controllers were placed in the 11 | # interbotix_sdk between the desired trajectory and the motors. The way this works is as follows: 12 | # 13 | # 1) Whenever it's time for a new waypoint in a trajectory to get processed, the desired joint 14 | # positions are set as reference positions for all controllers. Additionally, the desired joint 15 | # velocities are set as feedforward terms for all controllers. Lastly, all PID error terms are cleared to 0. 16 | # 2) Between waypoints, the PID controllers run at 100 Hz, reading the current joint positions and adjusting 17 | # the outputted control velocities based on the errors. 18 | # 19 | # Note that doing PID control will be most useful when working with MoveIt since MoveIt generates a 20 | # trajectory message with both desired positions and velocities. The controllers will not work well 21 | # if only joint positions or only joint velocities are specified exclusively. 22 | # 23 | # The positions of the gains in the vectors below correspond to the positions of the joint names in the 24 | # JointState.name vector of the published JointState messages. Note that the default gains seem to work 25 | # well when controlling the WidowX 200 Robot Arm. Some tuning may be required for the other robot arms. 26 | 27 | Kp_vec: [5, 5, 5, 5, 5, 5] # Proportional gain vector 28 | Ki_vec: [0, 0, 0, 0, 0, 0] # Integral gain vector 29 | Kd_vec: [0, 0, 0, 0, 0, 0] # Derivative gain vector 30 | umin_vec: [-3.14, -3.14, -3.14, -3.14, -3.14, -3.14] # Min allowable controller output (-PI rad/s) 31 | umax_vec: [3.14, 3.14, 3.14, 3.14, 3.14, 3.14] # Max allowable controller output (PI rad/s) 32 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/setup.py: -------------------------------------------------------------------------------- 1 | ## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD 2 | 3 | from distutils.core import setup 4 | from catkin_pkg.python_setup import generate_distutils_setup 5 | 6 | # fetch values from package.xml 7 | setup_args = generate_distutils_setup( 8 | packages=['interbotix_sdk'], 9 | package_dir={'': 'src'}, 10 | ) 11 | 12 | setup(**setup_args) 13 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/src/arm_node.cpp: -------------------------------------------------------------------------------- 1 | #include "interbotix_sdk/arm_obj.h" 2 | 3 | int main( int argc, char** argv ) 4 | { 5 | ros::init(argc, argv, "arm"); 6 | ros::NodeHandle n; 7 | std::string robot_name, robot_model; 8 | ros::param::get("~robot_name", robot_name); 9 | ros::param::get("~robot_model", robot_model); 10 | RobotArm bot(&n, robot_name, robot_model); 11 | ros::spin(); 12 | return 0; 13 | } 14 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/__init__.py -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/__pycache__/robot_manipulation.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/__pycache__/robot_manipulation.cpython-36.pyc -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/angle_manipulation.py: -------------------------------------------------------------------------------- 1 | # Code copied from https://www.learnopencv.com/rotation-matrix-to-euler-angles/ 2 | 3 | import numpy as np 4 | import math 5 | 6 | # Calculates Rotation Matrix given euler angles. 7 | def eulerAnglesToRotationMatrix(theta): 8 | 9 | R_x = np.array([[1, 0, 0 ], 10 | [0, math.cos(theta[0]), -math.sin(theta[0]) ], 11 | [0, math.sin(theta[0]), math.cos(theta[0]) ] 12 | ]) 13 | 14 | R_y = np.array([[math.cos(theta[1]), 0, math.sin(theta[1]) ], 15 | [0, 1, 0 ], 16 | [-math.sin(theta[1]), 0, math.cos(theta[1]) ] 17 | ]) 18 | 19 | R_z = np.array([[math.cos(theta[2]), -math.sin(theta[2]), 0], 20 | [math.sin(theta[2]), math.cos(theta[2]), 0], 21 | [0, 0, 1] 22 | ]) 23 | 24 | R = np.dot(R_z, np.dot( R_y, R_x )) 25 | 26 | return R 27 | 28 | # Checks if a matrix is a valid rotation matrix. 29 | def isRotationMatrix(R): 30 | Rt = np.transpose(R) 31 | shouldBeIdentity = np.dot(Rt, R) 32 | I = np.identity(3, dtype = R.dtype) 33 | n = np.linalg.norm(I - shouldBeIdentity) 34 | return n < 1e-6 35 | 36 | 37 | # Calculates rotation matrix to euler angles 38 | # The result is the same as MATLAB except the order 39 | # of the euler angles ( x and z are swapped ). 40 | def rotationMatrixToEulerAngles(R): 41 | 42 | assert(isRotationMatrix(R)) 43 | 44 | sy = math.sqrt(R[0,0] * R[0,0] + R[1,0] * R[1,0]) 45 | 46 | singular = sy < 1e-6 47 | 48 | if not singular : 49 | x = math.atan2(R[2,1] , R[2,2]) 50 | y = math.atan2(-R[2,0], sy) 51 | z = math.atan2(R[1,0], R[0,0]) 52 | else : 53 | x = math.atan2(-R[1,2], R[1,1]) 54 | y = math.atan2(-R[2,0], sy) 55 | z = 0 56 | 57 | return np.array([x, y, z]) 58 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/angle_manipulation.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/angle_manipulation.pyc -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/robot_manipulation.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/interbotix_ws/src/interbotix_sdk/src/interbotix_sdk/robot_manipulation.pyc -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/srv/FirmwareGains.srv: -------------------------------------------------------------------------------- 1 | # Send Position PID and/or Velocity PI gains to the firmware 2 | # 3 | # To get familiar with the register values, go to... 4 | # http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_workbench/ 5 | # ...click on a motor model, and scroll down to the 'Control Table of RAM Area' section. 6 | # 7 | # Set 'joint_id' to 0 if you want to specify pid gains for each joint separately. 8 | # Each column in the arrays below will then correspond to a single joint. Note that 9 | # this is the case even if the joint is controlled by two motors. Thus, the total 10 | # size of each array will be equivalent to the number of joints in the robot. Also, 11 | # joints are listed from the 'bottom-up'. For example, the indexes corresponding to 12 | # the WX200 robot would be [waist, shoulder, elbow, wrist_angle, wrist_rotate, gripper]. 13 | # 14 | # Set 'joint_id' to 1 or higher to specify pid gains for only that joint. In this 15 | # case, 'joint_id' corresponds to the motor id specified in the robot-specific 'yaml' 16 | # file located in the 'config' directory. Additionally, the arrays below will all 17 | # have a length of 1. 18 | int8 joint_id 19 | 20 | # Each index in the arrays below correspond to a specific joint. Note that if a 21 | # joint is controlled by two motors, both motors' pid gains will change. Values 22 | # can range from 0 - 16,383. 23 | int32[] Kp_pos 24 | int32[] Ki_pos 25 | int32[] Kd_pos 26 | 27 | # In a similar fashion, the feed-forward velocity gains (K1) and feed-forward acceleration 28 | # gains (K2) can be specified. The range of values is the same as that for the PID gains. 29 | 30 | int32[] K1 31 | int32[] K2 32 | 33 | # Set Velocity PI gains similarly below. 34 | 35 | int32[] Kp_vel 36 | int32[] Ki_vel 37 | --- 38 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/srv/OperatingModes.srv: -------------------------------------------------------------------------------- 1 | # Set the operating modes for the arm, gripper, or a single joint 2 | # 3 | # There are four options when setting operating modes: 4 | # 1) ARM_JOINTS_AND_GRIPPER - affects the operating modes for all joints, including the gripper. 5 | # 2) ARM_JOINTS - affects the operating modes for all joints, excluding the gripper. 6 | # 3) GRIPPER - affects the operating mode only for the gripper 7 | # 4) SINGLE_JOINT - affects the operating mode for the joint specified by 'joint_name'. 8 | # Note that the 'joint_name' parameter only needs to be used for this 9 | # option. For any other option, it can be left blank. 10 | # Set the option to the 'cmd' parameter and the 'joint_name' to the specified joint (if doing the 11 | # SINGLE_JOINT option). 12 | 13 | # There are 5 valid operating modes for the arm. They are... 14 | # "none" - arm motors will not respond to any joint command 15 | # "position" - arm motors will expect only position commands 16 | # "velocity" - arm motors will expect only velocity commands 17 | # "current" - arm motors will expect only current commands 18 | # "pwm" - arm motors will expect only pwm commands 19 | # 20 | # The gripper can also be set to "ext_position". This allows the gripper to do 21 | # multiple rotations instead of just one. It should only be used if you are using 22 | # a custom gripper capable of doing more than one rotation. 23 | # 24 | # For "position" control, profile_velocity sets the max speed of each joint while 25 | # profile_acceleration sets the max acceleration. Please reference the motor datasheet 26 | # (just click a motor at http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_workbench/) 27 | # for conversion factors. Values can be between 0 and 32,767. If setting custom profiles, 28 | # make sure to set 'use_custom_x_profiles' to true. 29 | # 30 | # For "velocity" control, only profile_acceleration is used. 31 | # 32 | # The velocity and acceleration profiles are not used in the "current" and "pwm" modes. 33 | 34 | int8 ARM_JOINTS_AND_GRIPPER = 1 35 | int8 ARM_JOINTS = 2 36 | int8 GRIPPER = 3 37 | int8 SINGLE_JOINT = 4 38 | 39 | int8 cmd 40 | string mode 41 | string joint_name 42 | bool use_custom_profiles 43 | int32 profile_velocity 44 | int32 profile_acceleration 45 | --- 46 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/srv/RegisterValues.srv: -------------------------------------------------------------------------------- 1 | # Set or get the register(s) value(s) from motor(s) 2 | # 3 | # To get familiar with the register values, go to... 4 | # http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_workbench/ 5 | # ...click on a motor model, and scroll down to the 'Control Table of RAM Area' section. 6 | # 7 | # There are four options to set or get a register value: 8 | # 1) ARM_JOINTS_AND_GRIPPER - affects the register values for all arm joints, including the gripper. 9 | # 2) ARM_JOINTS - affects the register values for all arm joints, excluding the gripper. 10 | # 3) GRIPPER - affects the register value only for the gripper 11 | # 4) SINGLE_MOTOR - affects the register for the motor specified by 'motor_name'. 12 | # Note that the 'motor_name' parameter only needs to be used for this 13 | # option. For any other option, it can be left blank. 14 | # 15 | # Set the option to the 'cmd' parameter and the 'motor_name' to the specified motor (if doing the 16 | # SINGLE_MOTOR option).. 17 | # 18 | # Next, set the 'addr_name' parameter to the name of the register to be written to or read from. 19 | # 20 | # If setting the register(s) value, set the 'value' parameter to the desired value. This value will be 21 | # written to either one or many motors depending on the 'cmd' option selected. Note that if a joint is 22 | # controlled by two motors and the register is in the RAM area, both motors' registers will be updated 23 | # with the desired value. If the register is in the EEPROM area, it must be modified with another service call. 24 | # As an FYI, if modifying an EEPROM register, the servo must first be torqued off. 25 | # 26 | # If reading the register(s) values, do not set the 'value' parameter. Instead, call the service at this 27 | # stage. The 'values' vector will be automatically updated with the register(s) value(s). If reading from 28 | # multiple joints at a time, the indexes of the values correspond with the joint names at those indexes in the 29 | # joint_states.name vector. 30 | 31 | int8 ARM_JOINTS_AND_GRIPPER = 1 32 | int8 ARM_JOINTS = 2 33 | int8 GRIPPER = 3 34 | int8 SINGLE_MOTOR = 4 35 | 36 | int8 cmd 37 | string motor_name 38 | string addr_name 39 | int32 value 40 | --- 41 | int32[] values 42 | -------------------------------------------------------------------------------- /interbotix_ws/src/interbotix_sdk/srv/RobotInfo.srv: -------------------------------------------------------------------------------- 1 | # Get robot information 2 | # 3 | # Note that all data that is returned in a vector is organized such that each index 4 | # corresponds to the joint at the same index as it appears in the joint_states topic. 5 | # Gripper info is NOT included in the vectors. 6 | # 7 | # Multiple types of robot information are provided, including: 8 | # 1) joint_names - the names of all joints in the robot 9 | # 2) joint_ids - the Dynamixel IDs for all joints in the robot 10 | # 3) lower_joint_limits - the lower joint limits in radians (taken from URDF) 11 | # 4) upper_joint_limits - the upper joint limits in radians (taken from URDF) 12 | # 5) velocity_limits - the velocity limits in rad/s (taken from URDF) 13 | # 6) lower_gripper_limit - the lower gripper limit in radians (taken from URDF) 14 | # 7) upper_gripper_limit - the upper gripper limit in radians (taken from URDF) 15 | # 8) use_gripper - True if the driver node can control the gripper - otherwise, False 16 | # 9) home_pos - home position for each robot; essentially commands all joints 17 | # (excluding gripper) to 0 radians (taken from arm_poses.h) 18 | # 10) sleep_pos - sleep position for each robot; essentially commands all joints 19 | # (excluding gripper) to a specific position in radians so that 20 | # if the driver node is shutdown (which torques off all motors), 21 | # the arm doesn't come crashing down (taken from arm_poses.h) 22 | # 11) num_joints - the number of joints in the arm (excluding gripper) 23 | # 12) num_single_joints - the number of all joints in the robot (includes gripper and any 'single' joints) 24 | 25 | --- 26 | # joint names appear in the same order as they do in the joint_states.name vector 27 | string[] joint_names 28 | int16[] joint_ids 29 | float64[] lower_joint_limits 30 | float64[] upper_joint_limits 31 | float64[] velocity_limits 32 | float64 lower_gripper_limit 33 | float64 upper_gripper_limit 34 | bool use_gripper 35 | float64[] home_pos 36 | float64[] sleep_pos 37 | int8 num_joints 38 | int8 num_single_joints 39 | -------------------------------------------------------------------------------- /pattern.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/pattern.pdf -------------------------------------------------------------------------------- /pattern_medium_2x3ft.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/pattern_medium_2x3ft.pdf -------------------------------------------------------------------------------- /python3_ws/.catkin_workspace: -------------------------------------------------------------------------------- 1 | # This file currently only serves to mark the location of a catkin workspace for tool integration 2 | -------------------------------------------------------------------------------- /python3_ws/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | /opt/ros/noetic/share/catkin/cmake/toplevel.cmake -------------------------------------------------------------------------------- /python3_ws/src/calibration/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(calibration) 3 | 4 | ## Compile as C++11, supported in ROS Kinetic and newer 5 | add_compile_options(-std=c++11) 6 | 7 | ## Find catkin macros and libraries 8 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 9 | ## is used, also find other catkin packages 10 | find_package(catkin REQUIRED COMPONENTS 11 | roscpp 12 | rospy 13 | std_msgs 14 | message_generation 15 | ) 16 | 17 | 18 | 19 | 20 | ################################################ 21 | ## Declare ROS messages, services and actions ## 22 | ################################################ 23 | catkin_python_setup() 24 | 25 | ## Generate services in the 'srv' folder 26 | add_service_files( 27 | FILES 28 | Capture.srv 29 | ) 30 | 31 | ## Generate added messages and services with any dependencies listed here 32 | generate_messages( 33 | DEPENDENCIES 34 | std_msgs # Or other packages containing msgs 35 | ) 36 | 37 | 38 | ################################### 39 | ## catkin specific configuration ## 40 | ################################### 41 | ## The catkin_package macro generates cmake config files for your package 42 | ## Declare things to be passed to dependent projects 43 | catkin_package( 44 | # INCLUDE_DIRS include 45 | # CATKIN_DEPENDS message_runtime roscpp rospy std_msgs 46 | CATKIN_DEPENDS message_runtime 47 | ) 48 | 49 | 50 | ########### 51 | ## Build ## 52 | ########### 53 | 54 | ## Specify additional locations of header files 55 | ## Your package locations should be listed before other locations 56 | # include_directories( 57 | # include 58 | # ${catkin_INCLUDE_DIRS} 59 | # ) 60 | 61 | ## Declare a C++ executable 62 | ## Specify libraries to link a library or executable target against 63 | ## Add cmake target dependencies of the executable 64 | # add_executable(moveit_interface_node src/moveit_interface_node.cpp src/moveit_interface.cpp) 65 | # target_link_libraries(moveit_interface_node ${catkin_LIBRARIES}) 66 | # add_dependencies(moveit_interface_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 67 | 68 | ############# 69 | ## Install ## 70 | ############# 71 | 72 | ## Mark executable scripts (Python etc.) for installation 73 | ## in contrast to setup.py, you can choose the destination 74 | catkin_install_python(PROGRAMS 75 | scripts/depthai_calibrator.py 76 | scripts/1097_socket_read.py 77 | scripts/depthai_cm4_calibration.py 78 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 79 | ) 80 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/launch/depthai_calib.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/launch/depthai_calib_poe.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | calibration 4 | 0.0.0 5 | The calibration package 6 | Sachin Guruswamy 7 | BSD 8 | 9 | Sachin Guruswamy 10 | 11 | 12 | 13 | catkin 14 | message_generation 15 | roscpp 16 | rospy 17 | std_msgs 18 | message_generation 19 | 20 | 21 | 22 | roscpp 23 | rospy 24 | std_msgs 25 | 26 | 27 | 28 | message_runtime 29 | 30 | 31 | 32 | 33 | roscpp 34 | rospy 35 | std_msgs 36 | rqt_image_view 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/python3_ws/src/calibration/scripts/__init__.py -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/consts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/python3_ws/src/calibration/scripts/consts/__init__.py -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/consts/resource_paths.py: -------------------------------------------------------------------------------- 1 | import os 2 | from os import path 3 | from pathlib import Path 4 | 5 | 6 | def relative_to_abs_path(relative_path): 7 | dirname = Path(__file__).parent 8 | try: 9 | return str((dirname / relative_path).resolve()) 10 | except FileNotFoundError: 11 | return None 12 | 13 | prefix = relative_to_abs_path('../resources/')+"/" 14 | device_cmd_fpath = relative_to_abs_path('../depthai.cmd') 15 | device_usb2_cmd_fpath = relative_to_abs_path('../depthai_usb2.cmd') 16 | custom_calib_fpath = relative_to_abs_path('../resources/depthai.calib') 17 | nn_resource_path = relative_to_abs_path('../resources/nn')+"/" 18 | blob_fpath = relative_to_abs_path('../resources/nn/mobilenet-ssd/mobilenet-ssd.blob') 19 | blob_config_fpath = relative_to_abs_path('../resources/nn/mobilenet-ssd/mobilenet-ssd.json') 20 | factory_path = relative_to_abs_path('../../../../../') + "/" 21 | 22 | # if environment variable DEPTHAI_BOARDS_PRIVATE_PATH is set, use it, else use the submodule 23 | depthai_boards_dir_path = os.environ.get("DEPTHAI_BOARDS_PRIVATE_PATH", relative_to_abs_path('../resources/depthai_boards')) 24 | boards_dir_path = Path(depthai_boards_dir_path) / "boards" 25 | batch_dir_path = Path(depthai_boards_dir_path) / "batch" 26 | 27 | if custom_calib_fpath is not None and Path(custom_calib_fpath).exists(): 28 | calib_fpath = custom_calib_fpath 29 | print("Using Custom Calibration File: depthai.calib") 30 | else: 31 | calib_fpath = '' 32 | print("No calibration file. Using Calibration Defaults.") 33 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/python3_ws/src/calibration/scripts/depthai_helpers/__init__.py -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/age_gender_recognition_handler.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | 4 | 5 | def decode_age_gender_recognition(nnet_packet, **kwargs): 6 | detections = [] 7 | for _, e in enumerate(nnet_packet.entries()): 8 | if e[1]["female"] > 0.8 or e[1]["male"] > 0.8: 9 | detections.append(e[0]["age"]) 10 | if e[1]["female"] > e[1]["male"]: 11 | detections.append("female") 12 | else: 13 | detections.append("male") 14 | return detections 15 | 16 | def show_age_gender_recognition(entries_prev, frame, **kwargs): 17 | # img_h = frame.shape[0] 18 | # img_w = frame.shape[1] 19 | if len(entries_prev) != 0: 20 | age = (int)(entries_prev[0]*100) 21 | cv2.putText(frame, "Age: " + str(age), (0, 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) 22 | gender = entries_prev[1] 23 | cv2.putText(frame, "G: " + str(gender), (0, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) 24 | frame = cv2.resize(frame, (300, 300)) 25 | return frame 26 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/emotion_recognition_handler.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | 4 | 5 | def decode_emotion_recognition(nnet_packet, **kwargs): 6 | detections = [] 7 | for i in range(len(nnet_packet.entries()[0][0])): 8 | detections.append(nnet_packet.entries()[0][0][i]) 9 | return detections 10 | 11 | def show_emotion_recognition(entries_prev, frame, **kwargs): 12 | # img_h = frame.shape[0] 13 | # img_w = frame.shape[1] 14 | e_states = kwargs['labels'] 15 | 16 | if len(entries_prev) != 0: 17 | max_confidence = max(entries_prev) 18 | if(max_confidence > 0.7): 19 | emotion = e_states[np.argmax(entries_prev)] 20 | cv2.putText(frame, emotion, (10, 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) 21 | frame = cv2.resize(frame, (300, 300)) 22 | 23 | return frame -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/landmarks_recognition_handler.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | 4 | 5 | def decode_landmarks_recognition(nnet_packet, **kwargs): 6 | landmarks = [] 7 | for i in range(len(nnet_packet.entries()[0][0])): 8 | landmarks.append(nnet_packet.entries()[0][0][i]) 9 | 10 | landmarks = list(zip(*[iter(landmarks)]*2)) 11 | return landmarks 12 | 13 | def show_landmarks_recognition(entries_prev, frame, **kwargs): 14 | img_h = frame.shape[0] 15 | img_w = frame.shape[1] 16 | 17 | if len(entries_prev) != 0: 18 | for i in entries_prev: 19 | try: 20 | x = int(i[0]*img_h) 21 | y = int(i[1]*img_w) 22 | except: 23 | continue 24 | # # print(x,y) 25 | cv2.circle(frame, (x,y), 3, (0, 0, 255)) 26 | 27 | frame = cv2.resize(frame, (300, 300)) 28 | 29 | return frame -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/model_downloader.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | 4 | def download_model(model, shaves, cmx_slices, nces, output_file): 5 | PLATFORM="VPU_MYRIAD_2450" if nces == 0 else "VPU_MYRIAD_2480" 6 | 7 | url = "http://luxonis.com:8080/" 8 | payload = { 9 | 'compile_type': 'zoo', 10 | 'model_name': model, 11 | 'model_downloader_params': '--precisions FP16 --num_attempts 5', 12 | 'intermediate_compiler_params': '--data_type=FP16 --mean_values [127.5,127.5,127.5] --scale_values [255,255,255]', 13 | 'compiler_params': '-ip U8 -VPU_MYRIAD_PLATFORM ' + PLATFORM + ' -VPU_NUMBER_OF_SHAVES ' + str(shaves) +' -VPU_NUMBER_OF_CMX_SLICES ' + str(cmx_slices) 14 | } 15 | try: 16 | response = requests.request("POST", url, data=payload) 17 | except: 18 | print("Connection timed out!") 19 | return 1 20 | 21 | if response.status_code == 200: 22 | blob_file = open(output_file, 'wb') 23 | blob_file.write(response.content) 24 | blob_file.close() 25 | else: 26 | print("Model compilation failed with error code: " + str(response.status_code)) 27 | print(str(response.text.encode('utf8'))) 28 | return 2 29 | 30 | return 0 -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/object_tracker_handler.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | 4 | def show_tracklets(tracklets, frame, labels): 5 | # img_h = frame.shape[0] 6 | # img_w = frame.shape[1] 7 | 8 | # iterate through pre-saved entries & draw rectangle & text on image: 9 | tracklet_nr = tracklets.getNrTracklets() 10 | 11 | for i in range(tracklet_nr): 12 | tracklet = tracklets.getTracklet(i) 13 | left_coord = tracklet.getLeftCoord() 14 | top_coord = tracklet.getTopCoord() 15 | right_coord = tracklet.getRightCoord() 16 | bottom_coord = tracklet.getBottomCoord() 17 | tracklet_id = tracklet.getId() 18 | tracklet_label = labels[tracklet.getLabel()] 19 | tracklet_status = tracklet.getStatus() 20 | 21 | # print("left: {0} top: {1} right: {2}, bottom: {3}, id: {4}, label: {5}, status: {6} "\ 22 | # .format(left_coord, top_coord, right_coord, bottom_coord, tracklet_id, tracklet_label, tracklet_status)) 23 | 24 | pt1 = left_coord, top_coord 25 | pt2 = right_coord, bottom_coord 26 | color = (255, 0, 0) # bgr 27 | cv2.rectangle(frame, pt1, pt2, color) 28 | 29 | middle_pt = (int)(left_coord + (right_coord - left_coord)/2), (int)(top_coord + (bottom_coord - top_coord)/2) 30 | cv2.circle(frame, middle_pt, 0, color, -1) 31 | cv2.putText(frame, "ID {0}".format(tracklet_id), middle_pt, cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2) 32 | 33 | x1, y1 = left_coord, bottom_coord 34 | 35 | 36 | pt_t1 = x1, y1 - 40 37 | cv2.putText(frame, tracklet_label, pt_t1, cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2) 38 | pt_t2 = x1, y1 - 20 39 | cv2.putText(frame, tracklet_status, pt_t2, cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2) 40 | 41 | 42 | 43 | return frame 44 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/production_support_server_api.py: -------------------------------------------------------------------------------- 1 | import jsonlines 2 | from typing import Dict, Union 3 | from datetime import datetime 4 | import requests 5 | import os 6 | import json 7 | import numpy as np 8 | 9 | CACHE_FILE_NAME = os.environ.get('CACHE_FILE_NAME', 'results_cache.jsonl') 10 | CACHE_DIRECTORY = os.environ.get('CACHE_DIRECTORY', '') 11 | CACHE_FILE_PATH = os.path.join(CACHE_DIRECTORY, CACHE_FILE_NAME) 12 | PRODUCTION_SUPPORT_SERVER_URL = os.environ.get('PRODUCTION_SUPPORT_SERVER_URL', 'http://localhost') 13 | API_KEY = os.environ.get('PRODUCTION_SUPPORT_API_KEY', '1234') 14 | 15 | print(f'Stats server API: {PRODUCTION_SUPPORT_SERVER_URL}, API key: ***') 16 | 17 | class NumpyArrayEncoder(json.JSONEncoder): 18 | def default(self, obj): 19 | if isinstance(obj, np.ndarray): 20 | return obj.tolist() 21 | try: 22 | return json.JSONEncoder.default(self, obj) 23 | except: 24 | return str(obj) 25 | 26 | def add_result( 27 | stage: str, 28 | device_id: str, 29 | device_type: str, 30 | bootloader_version: str, 31 | library_version: str, 32 | start_time: datetime, 33 | end_time: datetime, 34 | result_data: Dict, 35 | error: Union[str, None] = None 36 | ): 37 | """ 38 | Adds a result to the cache. 39 | """ 40 | 41 | result = { 42 | 'stage': stage, 43 | 'device_id': device_id, 44 | 'device_type': device_type, 45 | 'bootloader_version': bootloader_version, 46 | 'library_version': library_version, 47 | 'start_time': start_time.isoformat(), 48 | 'end_time': end_time.isoformat(), 49 | 'result_data': result_data, 50 | 'error': error 51 | } 52 | 53 | # add to cache 54 | with jsonlines.open(CACHE_FILE_PATH, mode='a', dumps=lambda o: json.dumps(o, cls=NumpyArrayEncoder)) as writer: 55 | writer.write(result) 56 | 57 | def sync(): 58 | """ 59 | Tries to upload the result to the server. If the server is not available, 60 | the result stays in the cache and will be uploaded later. 61 | """ 62 | try: 63 | with jsonlines.open(CACHE_FILE_PATH, mode='r') as reader: 64 | results = [result for result in reader] 65 | 66 | response = requests.post( 67 | f'{PRODUCTION_SUPPORT_SERVER_URL}/results', 68 | json=results, 69 | headers={'x-api-key': API_KEY}, 70 | timeout=1 71 | ) 72 | if response.status_code != 200: 73 | raise Exception(f'Status code: {response.status_code}, response: {response.text}') 74 | # clear cache 75 | with open(CACHE_FILE_PATH, 'w') as f: 76 | f.write('') 77 | except Exception as e: 78 | print(f'Failed to upload results: {e}') -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/update_submodules.py: -------------------------------------------------------------------------------- 1 | import os 2 | import subprocess 3 | 4 | def update_submodules(): 5 | scriptDirectory = os.path.dirname(os.path.realpath(__file__)) 6 | subprocess.check_call(['git', 'submodule', 'update', '--init', '--recursive'], cwd=scriptDirectory) -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/depthai_helpers/utils.py: -------------------------------------------------------------------------------- 1 | # https://stackoverflow.com/questions/20656135/python-deep-merge-dictionary-data#20666342 2 | def merge(source, destination): 3 | """ 4 | run me with nosetests --with-doctest file.py 5 | 6 | >>> a = { 'first' : { 'all_rows' : { 'pass' : 'dog', 'number' : '1' } } } 7 | >>> b = { 'first' : { 'all_rows' : { 'fail' : 'cat', 'number' : '5' } } } 8 | >>> merge(b, a) == { 'first' : { 'all_rows' : { 'pass' : 'dog', 'fail' : 'cat', 'number' : '5' } } } 9 | True 10 | """ 11 | for key, value in source.items(): 12 | if isinstance(value, dict): 13 | # get node or create one 14 | node = destination.setdefault(key, {}) 15 | merge(value, node) 16 | else: 17 | destination[key] = value 18 | 19 | return destination 20 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/resources/calibration-chess-board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/python3_ws/src/calibration/scripts/resources/calibration-chess-board.png -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/resources/default.calib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/python3_ws/src/calibration/scripts/resources/default.calib -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd.blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/python3_ws/src/calibration/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd.blob -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 7], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "background", 24 | "aeroplane", 25 | "bicycle", 26 | "bird", 27 | "boat", 28 | "bottle", 29 | "bus", 30 | "car", 31 | "cat", 32 | "chair", 33 | "cow", 34 | "diningtable", 35 | "dog", 36 | "horse", 37 | "motorbike", 38 | "person", 39 | "pottedplant", 40 | "sheep", 41 | "sofa", 42 | "train", 43 | "tvmonitor" 44 | ] 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/resources/nn/mobilenet-ssd/mobilenet-ssd_depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "tensors": 3 | [ 4 | { 5 | "output_tensor_name": "out", 6 | "output_dimensions": [1, 1, 100, 10], 7 | "output_entry_iteration_index": 2, 8 | "output_properties_dimensions": [3], 9 | "property_key_mapping": 10 | [ 11 | [], 12 | [], 13 | [], 14 | ["id", "label", "confidence", "left", "top", "right", "bottom", "distance_x", "distance_y", "distance_z"] 15 | ], 16 | "output_properties_type": "f16" 17 | } 18 | ], 19 | "mappings": 20 | { 21 | "labels": 22 | [ 23 | "background", 24 | "aeroplane", 25 | "bicycle", 26 | "bird", 27 | "boat", 28 | "bottle", 29 | "bus", 30 | "car", 31 | "cat", 32 | "chair", 33 | "cow", 34 | "diningtable", 35 | "dog", 36 | "horse", 37 | "motorbike", 38 | "person", 39 | "pottedplant", 40 | "sheep", 41 | "sofa", 42 | "train", 43 | "tvmonitor" 44 | ] 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/resources/patternnew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luxonis/Factory-calibration-DepthAI/44a5c9db957dd9935cb9cfc6d021d1fde94cefdf/python3_ws/src/calibration/scripts/resources/patternnew.png -------------------------------------------------------------------------------- /python3_ws/src/calibration/scripts/test-legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "legacy_id": 124345, 3 | "legacy_log": { 4 | "rgb-CCM": "ArduCam", 5 | "left-CCM": "ArduCam", 6 | "right-CCM": "ArduCam", 7 | "rgb-focus-stdDev": 27.81681692, 8 | "left-focus-stdDev": 52.79373687, 9 | "right-focus-stdDev": 45.62265908, 10 | "rgb-Reprojection-Error": 0.7998989545996881, 11 | "left-Reprojection-Error": 0.29162165318305006, 12 | "Epipolar-error-right-rgb": 0.31309770757501776, 13 | "right-Reprojection-Error": 0.28229905181483195, 14 | "Epipolar-error-left-right": 0.30716896507506386 15 | }, 16 | "eeprom_data": null 17 | } -------------------------------------------------------------------------------- /python3_ws/src/calibration/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | from catkin_pkg.python_setup import generate_distutils_setup 3 | 4 | setup_args = generate_distutils_setup( 5 | version="0.0.0", 6 | packages=['calibration'], 7 | package_dir={'': 'scripts'}) 8 | 9 | setup(**setup_args) -------------------------------------------------------------------------------- /python3_ws/src/calibration/srv/Capture.srv: -------------------------------------------------------------------------------- 1 | #name of the image to be captured 2 | string name 3 | --- 4 | bool success 5 | string error 6 | 7 | -------------------------------------------------------------------------------- /python3_ws/src/calibration/srv/MoveItPlan.srv: -------------------------------------------------------------------------------- 1 | # Send commands to the moveit_plan server 2 | # 3 | # Enum values that define the commands available for the server. Note that all 4 | # ee_poses (defined in the 'ee_arm_link' frame) are relative to the 'world' frame. 5 | # There are 4 options: 6 | # 1) CMD_PLAN_POSE - Desired ee_pose which is made up of a position and orientation element 7 | # 2) CMD_PLAN_POSITION - Desired ee_position which is made up of a position element only; orientation is not constrained 8 | # 3) CMD_PLAN_ORIENTATION - Desired ee_orientation which is made up of an orientation element only; position is not constrained 9 | # 4) CMD_EXECUTE - Once a plan is available, this command executes the planned trajectory on the gazebo or physical robot 10 | int8 CMD_PLAN_POSE = 1 11 | int8 CMD_PLAN_POSITION = 2 12 | int8 CMD_PLAN_ORIENTATION = 3 13 | int8 CMD_EXECUTE = 4 14 | int8 cmd 15 | 16 | # desired ee_pose, position, or orientation 17 | geometry_msgs/Pose ee_pose 18 | --- 19 | # message if the planning or execution was successful; this is displayed in the custom GUI. 20 | std_msgs/String msg 21 | 22 | # boolean to easily check if the planning or execution was successful. 23 | bool success 24 | -------------------------------------------------------------------------------- /rc.local: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | # 3 | # rc.local 4 | # 5 | # This script is executed at the end of each multiuser runlevel. 6 | # Make sure that the script will "exit 0" on success or any other 7 | # value on error. 8 | # 9 | # In order to enable or disable this script just change the execution 10 | # bits. 11 | # 12 | # By default this script does nothing. 13 | 14 | # Print the IP address 15 | _IP=$(hostname -I) || true 16 | if [ "$_IP" ]; then 17 | printf "My IP address is %s\n" "$_IP" 18 | fi 19 | 20 | python3 /home/pi/enable_cm4_oak.py 21 | 22 | exit 0 23 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pydantic==1.9.2 2 | opencv-python==4.5.4.58 3 | opencv-contrib-python==4.5.4.58 4 | requests==2.24.0 5 | argcomplete==1.12.1 6 | pygame==2.0.0 7 | rospkg==1.2.8 8 | scipy 9 | access-dict-by-dot 10 | ssh-wait 11 | --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/ 12 | depthai==2.22.0.0.dev+4b8f0a3f40945a74d4603e8b383a00d76f9bdc56 # production version of depthai (supports flashWrite, flashRead) 13 | jsonlines 14 | numpy 15 | --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-depthai-data-local/wheels/ 16 | pyqt5>5,<5.15.6 ; platform_machine != "armv6l" and platform_machine != "armv7l" and platform_machine != "aarch64" 17 | -------------------------------------------------------------------------------- /requirements_cm4.txt: -------------------------------------------------------------------------------- 1 | --extra-index-url https://pypi.org/simple 2 | opencv-contrib-python==4.5.4.58 3 | requests==2.24.0 4 | argcomplete==1.12.1 5 | scipy 6 | access-dict-by-dot 7 | ssh-wait 8 | --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/ 9 | depthai==2.22.0.0.dev+4b8f0a3f40945a74d4603e8b383a00d76f9bdc56 # production version of depthai (supports flashWrite, flashRead) 10 | jsonlines 11 | numpy 12 | --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-depthai-data-local/wheels/ 13 | --------------------------------------------------------------------------------