We are using the Interbotix 5-DOF ViperX 300 arm for our application. We have replaced the gripper with our own end effector which is a module consisting of a trigger mechanism. This trigger mechanism is actuated by the motor that originally actuated the gripper. The orientation of the motor has been changed as well.

We generated the modified URDF using the solids works to URDF exporter add on: http://wiki.ros.org/sw_urdf_exporter
We also generated the Moveit configuration package for the new URDF using the Moveit setup assistant using the steps mentioned here: http://docs.ros.org/en/kinetic/api/m..._tutorial.html

After executing the following command to perform planning using Moveit:

HTML Code:
$ roslaunch interbotix_xsarm_moveit xsarm_moveit.launch robot_model:=vx300 use_actual:=true dof:=5
We get the following output in the terminal:
HTML Code:
[ INFO] [1641512207.653920457]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1641512208.446841559]: [xs_sdk] The operating mode for the 'arm' group was changed to position.
[ WARN] [1641512208.447201358]: [xs_sdk] The 'gripper' joint/group does not exist. Was it added to the motor config file?
[ INFO] [1641512208.465047555]: rviz version 1.14.11
[ INFO] [1641512208.465174953]: compiled against Qt version 5.12.8
[ INFO] [1641512208.465228392]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1641512208.540827120]: Forcing OpenGl version 0.
[ INFO] [1641512209.916891040]: waitForService: Service [/vx300/get_robot_info] is now available.
[ INFO] [1641512212.466563297]: Publishing maintained planning scene on 'monitored_planning_scene'
[ INFO] [1641512212.477914883]: Listening to 'joint_states' for joint states
[ INFO] [1641512212.506653072]: Listening to '/vx300/attached_collision_object' for attached collision objects
[ INFO] [1641512212.506763439]: Starting planning scene monitor
[ INFO] [1641512212.519643910]: Listening to '/vx300/planning_scene'
[ INFO] [1641512212.519754798]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[ INFO] [1641512212.525287775]: [xs_sdk] Interbotix 'xs_sdk' node is up!
[ INFO] [1641512212.540236934]: Listening to '/vx300/collision_object'
[ INFO] [1641512212.554547538]: Listening to '/vx300/planning_scene_world' for planning scene world geometry
[ INFO] [1641512216.817701891]: Loading planning pipeline ''
[ INFO] [1641512220.766697657]: Using planning interface 'OMPL'
[ INFO] [1641512220.886718123]: Param 'default_workspace_bounds' was not set. Using default value: 10
[ INFO] [1641512220.890097046]: Param 'start_state_max_bounds_error' was set to 0.1
[ INFO] [1641512220.892778143]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1641512220.895224755]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1641512220.898113824]: Param 'jiggle_fraction' was set to 0.05
[ INFO] [1641512220.901425246]: Param 'max_sampling_attempts' was not set. Using default value: 100
[ INFO] [1641512220.901620510]: Using planning request adapter 'Add Time Parameterization'
[ INFO] [1641512220.901699210]: Using planning request adapter 'Fix Workspace Bounds'
[ INFO] [1641512220.901749263]: Using planning request adapter 'Fix Start State Bounds'
[ INFO] [1641512220.901795774]: Using planning request adapter 'Fix Start State In Collision'
[ INFO] [1641512220.901841661]: Using planning request adapter 'Fix Start State Path Constraints'
[ INFO] [1641512221.577526833]: Stereo is NOT SUPPORTED
[ INFO] [1641512221.577755275]: OpenGL device: NVIDIA Tegra X1 (nvgpu)/integrated
[ INFO] [1641512221.577851214]: OpenGl version: 4.6 (GLSL 4.6).

[vx300/xs_sdk-3] process has died [pid 147468, exit code -11, cmd /home/dave/interbotix_ws/devel/lib/interbotix_xs_sdk/xs_sdk __name:=xs_sdk __log:=/home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_sdk-3.log].
log file: /home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_sdk-3*.log
terminate called after throwing an instance of 'std:ut_of_range'
  what():  vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
[vx300/xs_hardware_interface-5] process has died [pid 147470, exit code -6, cmd /home/dave/interbotix_ws/devel/lib/interbotix_xs_ros_control/xs_hardware_interface __name:=xs_hardware_interface __log:=/home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_hardware_interface-5.log].
log file: /home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_hardware_interface-5*.log

[ WARN] [1641512226.093863949]: Waiting for arm_controller/follow_joint_trajectory to come up
[ INFO] [1641512226.496648092]: Loading robot model 'vx300'...
[ INFO] [1641512226.497293366]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1641512228.900737488]: Starting planning scene monitor
[ INFO] [1641512228.912573562]: Listening to '/vx300/move_group/monitored_planning_scene'
[ INFO] [1641512229.477646793]: waitForService: Service [/vx300/get_planning_scene] has not been advertised, waiting...
[ WARN] [1641512232.094391927]: Waiting for arm_controller/follow_joint_trajectory to come up
[ INFO] [1641512234.485502256]: Failed to call service get_planning_scene, have you launched move_group or called psm.providePlanningSceneService()?
[ INFO] [1641512234.486327533]: Constructing new MoveGroup connection for group 'interbotix_arm' in namespace ''
[ERROR] [1641512238.094974438]: Action client not connected: arm_controller/follow_joint_trajectory
[ INFO] [1641512255.320648421]: Returned 0 controllers in list
[ INFO] [1641512255.388658198]: Trajectory execution is managing controllers
[ INFO] [1641512255.398528013]: MoveGroup debug mode is OFF
Loading 'move_group/ApplyPlanningSceneService'...
Loading 'move_group/ClearOctomapService'...
Loading 'move_group/MoveGroupCartesianPathService'...
Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
Loading 'move_group/MoveGroupGetPlanningSceneService'...
Loading 'move_group/MoveGroupKinematicsService'...
Loading 'move_group/MoveGroupMoveAction'...
Loading 'move_group/MoveGroupPickPlaceAction'...
Loading 'move_group/MoveGroupPlanService'...
Loading 'move_group/MoveGroupQueryPlannersService'...
Loading 'move_group/MoveGroupStateValidationService'...
[ INFO] [1641512255.790386761]: 

********************************************************
* MoveGroup using: 
*     - ApplyPlanningSceneService
*     - ClearOctomapService
*     - CartesianPathService
*     - ExecuteTrajectoryAction
*     - GetPlanningSceneService
*     - KinematicsService
*     - MoveAction
*     - PickPlaceAction
*     - MotionPlanService
*     - QueryPlannersService
*     - StateValidationService
********************************************************

[ INFO] [1641512255.796736129]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
[ INFO] [1641512255.796903425]: MoveGroup context initialization complete

You can start planning now!

[ INFO] [1641512256.793578215]: Ready to take commands for planning group interbotix_arm.
As it can be seen from the output, there are mainly three issues:-

1.
HTML Code:
[vx300/xs_sdk-3] process has died [pid 147468, exit code -11, cmd /home/dave/interbotix_ws/devel/lib/interbotix_xs_sdk/xs_sdk __name:=xs_sdk __log:=/home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_sdk-3.log]. log file: /home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_sdk-3*.log
2.
HTML Code:
[vx300/xs_hardware_interface-5] process has died [pid 147470, exit code -6, cmd /home/dave/interbotix_ws/devel/lib/interbotix_xs_ros_control/xs_hardware_interface __name:=xs_hardware_interface __log:=/home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_hardware_interface-5.log]. log file: /home/dave/.ros/log/b0cbdafa-6e74-11ec-8148-1793d85abc12/vx300-xs_hardware_interface-5*.log
The above two errors seem to be caused due to:-
HTML Code:
terminate called after throwing an instance of 'std:ut_of_range' what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
3.
HTML Code:
[ERROR] [1641512238.094974438]: Action client not connected: arm_controller/follow_joint_trajectory

The above error highlights that the controllers do not come up. This caused failure in execution. (Even though planning took place)
Another notable point is that "initial planning scenes" were not recognized in RViz. The arm's initial position (which is the sleep position) was not recognized.

Any suggestions to fix the above errors would be highly appreciated.

Has anyone tried modifying the URDF for their own custom made end-effector ?

Please let me know if you need any additional information.