├── .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 |
--------------------------------------------------------------------------------