Code Monkey home page Code Monkey logo

interbotix_ros_manipulators's Introduction

manipulator_banner

Overview

manipulator_repo_structure Welcome to the interbotix_ros_manipulators repository! This repo contains custom ROS packages to control the various types of arms sold at Trossen Robotics. These ROS packages build upon the ROS driver nodes found in the interbotix_ros_core repository. Support-level software can be found in the interbotix_ros_toolboxes repository.

Build Status

ROS Distro X-Series ROS Manipulators Build
ROS 1 Noetic build-xs-noetic
ROS 2 Galactic build-xs-galactic
ROS 2 Humble build-xs-humble
ROS 2 Rolling build-xs-rolling

Repo Structure

GitHub Landing Page: Explains repository structure and contains a single directory for each type of manipulator.
├── Manipulator Type X Landing Page: Contains 'core' arm ROS packages.
│   ├── Core Arm ROS Package 1
│   ├── Core Arm ROS Package 2
│   ├── Core Arm ROS Package X
│   └── Examples: contains 'demo' arm ROS packages that build upon some of the 'core' arm ROS packages
│       ├── Demo Arm ROS Package 1
│       ├── Demo Arm ROS Package 2
│       ├── Demo Arm ROS Package X
│       └── Demo Scripts: contains example scripts that build upon the interface modules in the interbotix_ros_toolboxes repository
│           ├── Demo Script 1
│           ├── Demo Script 2
|           └── Demo Script X
├── CITATION.cff
├── LICENSE
└── README.md

As shown above, there are five main levels to this repository. To clarify some of the terms above, refer to the descriptions below.

  • Manipulator Type - Any robotic arm that can use the same interbotix_XXarm_control package is considered to be of the same type. For the most part, this division lies on the type of actuator that makes up the robot. As an example, all the X-Series arms are considered the same type of manipulator since they all use various Dynamixel X-Series servos (despite the fact that they come in different sizes, DOF, and motor versions). However, a robotic arm made up of some other manufacturer's servos, or even half made up of Dynamixel servos and half made up of some other manufacturer's servos would be considered a different manipulator type.

  • Core Arm ROS Package - This refers to 'High Profile' ROS packages that are essential to make a given arm work. Examples of 'High Profile' ROS packages include:

    • interbotix_XXarm_control - sets up the proper configurations and makes it possible to control the physical arm
    • interbotix_XXarm_moveit - sets up the proper configurations and makes it possible to control an arm via MoveIt
    • interbotix_XXarm_gazebo - sets up the proper configurations and makes it possible to control a Gazebo simulated arm
    • interbotix_XXarm_ros_control - ROS control package used with MoveIt to control the physical arms
    • interbotix_XXarm_descriptions - contains URDFs and meshes of the arms, making it possible to visualize them in RViz
  • Demo Arm ROS Package - This refers to demo ROS packages that build upon the Core Arm ROS Packages. ROS researchers could use these packages as references to learn how to develop their own ROS packages and to get a feel for how the robot works. Typical demos for a given manipulator type include:

    • interbotix_XXarm_joy - manipulate an arm's end-effector using a joystick controller
    • interbotix_XXarm_puppet - make one or more 'puppet' arms copy the motion of a 'master' arm
    • interbotix_XXarm_moveit_interface - learn how to use MoveIt!'s MoveGroup Python or C++ APIs to control a robot arm
  • Demo Script - This refers to demo scripts that build upon the interface modules in the interbotix_ros_toolboxes repository. These modules essentially abstract away all ROS code, making it easy for a researcher with no ROS experience to interface with an arm as if it was just another object. It also makes sequencing robot motion a piece of cake. These scripts are written in languages that users may feel more comfortable with like Python and MATLAB. The directories that contain demo scripts for each language may be found the in example directory, or in the package that specifically relates to their usage, such as the perception packages.

Over time, the repo will grow to include more types of manipulators.

Contributing

Feel free to send PRs to add features to currently existing Arm ROS packages or to include new ones. Note that all PRs should follow the structure and naming conventions outlined in the repo including documentation.

Contributors

Citing

If using this software for your research, please include the following citation in your publications:

@software{Wiznitzer_interbotix_ros_manipulators,
  author = {Wiznitzer, Solomon and Schmitt, Luke and Trossen, Matt},
  license = {BSD-3-Clause},
  title = {{interbotix_ros_manipulators}},
  url = {https://github.com/Interbotix/interbotix_ros_manipulators}
}

interbotix_ros_manipulators's People

Contributors

lukeschmitt-tr avatar swiz23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

interbotix_ros_manipulators's Issues

MoveIt Pose and Orientation Planning Failures

MoveIt Pose Failures

Hello!

First off, thank you for all of the great info you are publishing into this community!

My question:
I am attempting to follow your youtube video here - Interbotix Tutorials: X-Series Arms | Using The Interbotix MoveIt Interface ROS Package

Using unmodified files, and am running the moveit interface with your cpp gui using:

roslaunch interbotix_xsarm_moveit_interface xsarm_moveit_interface.launch robot_model:=wx250s use_fake:=true dof:=6 use_cpp_interface:=true
however, every time I press the Plan Pose or Plan Orientation buttons on the GUI, the result is not successful. Only the plan position is successful.

Output on the terminal:

[INFO] [1637679240.764232]: Desired end-effector pose: x[m]: 0.20, y[m]: 0.30, z[m] 0.30, roll[rad]: 0.00, pitch[rad]: 0.00, yaw[rad]: 0.00.
[ INFO] [1637679240.780846918]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ INFO] [1637679240.783235304]: Planner configuration 'interbotix_arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1637679240.783705162]: interbotix_arm/interbotix_arm: Starting planning with 1 states already in datastructure
[ERROR] [1637679241.227466066]: interbotix_arm/interbotix_arm: Unable to sample any valid states for goal tree
[ INFO] [1637679241.227490468]: interbotix_arm/interbotix_arm: Created 1 states (1 start + 0 goal)
[ INFO] [1637679241.227500775]: No solution found after 0.443995 seconds
[ INFO] [1637679241.227512375]: Unable to solve the planning problem
[ WARN] [1637679241.227745975]: Fail: ABORTED: No motion plan found. No execution attempted.
[ WARN] [1637679241.227784206]: Skipping path because 0 points passed in.
[ INFO] [1637679241.227800708]: success: 0
[INFO] [1637679241.228001]: Planning EE pose was not successful.

Is there a step or config file I am missing?

Thank you!

Robot Model

wx250s, simulated

Operating System

Ubuntu 20.04, ROS noetic

Anything Else

No response

[Bug]: No CameraInfo received on [/camera/color/camera_info]

When launching the perception package to get the camera_link transform from the robot base_link with the AprilTag.

Robot Model
px100

Operating System
Ubuntu 20.04

ROS Distro
ROS2 Galactic

Camera
Intel RealSense D435

Steps To Reproduce
ros2 launch interbotix_xsarm_perception xsarm_perception.launch.py robot_model:=px100 use_pointcloud_tuner_gui:=true use_armtag_tuner_gui:=true

Result:
image

[Question]: Actual robot not working with MoveIt Python Interface and PATH_TOLERANCE_VIOLATED warning.

Question

Hi,
I am trying to use moveit (and Gazebo) using a python interface. I am successfully able to move the arm in the gazebo world, and the goal state is shown in MoveIt-RViz, but I receive the following warning (see attached terminal screenshot) and the real robot does not move. (see MoveIt and Gazebo screenshots). The following were obtained by planning for the robot to reach the 'Upright' pose.
image
image
image
Note: the MoveIt-RViz also shows the state of the actual robot.

Robot Model

px100

Operating System

Ubuntu 20.04

ROS Version

ROS1 Noetic

Anything Else

No response

[Bug]: set_ee_cartesian_trajectory() only works in simulation

What happened?

I use the python_ros2_api to move the robot. Trying out the functions given in the demo example scripts such as bartender.py I realized a difference between the simulated and real robot.

Most functions had no issues:

  • bot.arm.go_to_home_pose() 
    
  • bot.arm.set_ee_pose_components(x=0.2, y=0.1, z=0.2, roll=1.0, pitch=1.5)
    
  • bot.arm.set_ee_pose_matrix(T_sd)
    
  • bot.gripper.grasp()  
    
  • bot.arm.set_joint_positions(joint_positions)
    
  • bot.arm.go_to_sleep_pose()
    
  • bot.shutdown()
    

But one function only worked in simulation:

  • bot.arm.set_ee_cartesian_trajectory(z=-0.2)
    

When running this command on the real robot it waits and doesn't move while putting out 10 warning messages and then skips to the next line in code fulfilling the other movements without any issues.

To investigate this issue i wrote a python script problem.py:

from interbotix_xs_modules.xs_robot.arm import InterbotixManipulatorXS
import numpy as np


def main():
    bot = InterbotixManipulatorXS(
        robot_model='wx250s',
        group_name='arm',
        gripper_name='gripper'
    )
    bot.arm.go_to_home_pose()

    bot.arm.set_ee_cartesian_trajectory(x=-0.1)
    
    bot.arm.go_to_sleep_pose()

    bot.shutdown()


if __name__ == '__main__':
    main()

The robot only moves to home and back to sleep position while in simulation it moves along the x-axis in between. You find the log-output of the real robot below.

Robot Model

wx250s

Operating System

Ubuntu 20.04

Steps To Reproduce

  1. Launch robot with xsarm_control launch file in simulation. ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=wx250s use_sim:=true
  2. Run python3 problem.py or a demo example python script such as bartender.py containing a set_ee_cartesian_trajectory() command.
  3. Launch robot with xsarm_control launch file with real robot. ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=wx250s
  4. Run the same script and compare the motion.

Relevant log output

mankoch@manuel:~$ ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=wx250s
[INFO] [launch]: All log files can be found below /home/mankoch/.ros/log/2022-06-20-15-34-11-082640-manuel-vm-90340
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [xs_sdk-1]: process started with pid [90343]
[INFO] [robot_state_publisher-2]: process started with pid [90345]
[INFO] [rviz2-3]: process started with pid [90347]
[xs_sdk-1] [INFO] Using Interbotix X-Series Driver Version: 'v0.2.1'.
[xs_sdk-1] [INFO] Loaded mode configs from '/home/mankoch/interbotix_ws/install/interbotix_xsarm_control/share/interbotix_xsarm_control/config/modes.yaml'.
[xs_sdk-1] [INFO] Loaded motor configs from '/home/mankoch/interbotix_ws/install/interbotix_xsarm_control/share/interbotix_xsarm_control/config/wx250s.yaml'.
[xs_sdk-1] [INFO] Found Dynamixel ID : '8',	Model : 'XL430-W250',	Joint Name : 'wrist_rotate'
[xs_sdk-1] [INFO] Found Dynamixel ID : '7',	Model : 'XM430-W350',	Joint Name : 'wrist_angle'
[xs_sdk-1] [INFO] Found Dynamixel ID : '5',	Model : 'XM430-W350',	Joint Name : 'elbow_shadow'
[xs_sdk-1] [INFO] Found Dynamixel ID : '4',	Model : 'XM430-W350',	Joint Name : 'elbow'
[xs_sdk-1] [INFO] Found Dynamixel ID : '6',	Model : 'XM430-W350',	Joint Name : 'forearm_roll'
[xs_sdk-1] [INFO] Found Dynamixel ID : '2',	Model : 'XM430-W350',	Joint Name : 'shoulder'
[xs_sdk-1] [INFO] Found Dynamixel ID : '9',	Model : 'XL430-W250',	Joint Name : 'gripper'
[xs_sdk-1] [INFO] Found Dynamixel ID : '3',	Model : 'XM430-W350',	Joint Name : 'shoulder_shadow'
[xs_sdk-1] [INFO] Found Dynamixel ID : '1',	Model : 'XM430-W350',	Joint Name : 'waist'
[xs_sdk-1] [INFO] The operating mode for the 'arm' group was changed to 'position' with profile type 'time'.
[xs_sdk-1] [INFO] The operating mode for the 'gripper' joint was changed to 'pwm' with profile type 'velocity'.
[xs_sdk-1] [INFO] [1655732053.454646614] [interbotix_xs_sdk.xs_sdk]: InterbotixDriverXS is up!
[xs_sdk-1] [INFO] [1655732053.663590685] [interbotix_xs_sdk.xs_sdk]: InterbotixRobotXS is up!
[xs_sdk-1] [WARN] [1655732065.878556374] [interbotix_xs_sdk.xs_sdk]: The shoulder joint is not at the correct initial state.
[xs_sdk-1] [WARN] [1655732065.878596821] [interbotix_xs_sdk.xs_sdk]: Expected state: 0.01, Actual State: -0.02.
[xs_sdk-1] [WARN] [1655732065.878606073] [interbotix_xs_sdk.xs_sdk]: The elbow joint is not at the correct initial state.
[xs_sdk-1] [WARN] [1655732065.878609108] [interbotix_xs_sdk.xs_sdk]: Expected state: 0.03, Actual State: -0.02.
[xs_sdk-1] [WARN] [1655732065.878612495] [interbotix_xs_sdk.xs_sdk]: The forearm_roll joint is not at the correct initial state.
[xs_sdk-1] [WARN] [1655732065.878615169] [interbotix_xs_sdk.xs_sdk]: Expected state: -0.00, Actual State: -0.02.
[xs_sdk-1] [WARN] [1655732065.878618449] [interbotix_xs_sdk.xs_sdk]: The wrist_angle joint is not at the correct initial state.
[xs_sdk-1] [WARN] [1655732065.878621008] [interbotix_xs_sdk.xs_sdk]: Expected state: 0.01, Actual State: -0.02.
[xs_sdk-1] [WARN] [1655732065.878624319] [interbotix_xs_sdk.xs_sdk]: The wrist_rotate joint is not at the correct initial state.
[xs_sdk-1] [WARN] [1655732065.878626815] [interbotix_xs_sdk.xs_sdk]: Expected state: 0.00, Actual State: -0.02.

Anything Else

Running mankoch@manuel:~$ ros2 topic echo /wx250s/joint_states shows the robot state in "home pose" at the same time as the warnings appear.

header:
  stamp:
    sec: 1655732066
    nanosec: 497496972
  frame_id: ''
name:
- waist
- shoulder
- elbow
- forearm_roll
- wrist_angle
- wrist_rotate
- gripper
- left_finger
- right_finger
position:
- -0.016873789951205254
- 0.00920388475060463
- 0.03374757990241051
- -0.0015339808305725455
- 0.010737866163253784
- 0.0
- -0.4049709439277649
- 0.014743060804903507
- -0.014743060804903507
velocity:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
effort:
- 196.37001037597656
- -126.43000030517578
- -398.1199951171875
- 0.0
- -131.80999755859375
- 0.0
- 0.0
- 0.0
- 0.0
---

[Question]: Eye in hand calibration

Question

Hi, I am currently working with the ViperX300 and a realsense D345i camera.

And I want to do a eye in hand calibration with the robot. I have tested this version https://github.com/lixiny/Handeye-Calibration-ROS.
But I am not sure if it is compatible with the Interbotix robot, or if have implemented it right. But I do not get any reasonable answer.

Right now the camera that is placed on top of the vx300/wrist_link does not get the depth correct, so when creating a pointcloud I get a blurry pointcloud where you can see different layers of the object. (When scanning from different angles). So it is obvious that I do not read the ground plane correctly.

Do you have any alternatives or is it possible at all to make a hand in eye calibration for the viperX300?

Robot Model

Vx300

Operating System

Ubuntu 18.04

Anything Else

No response

Not able to launch the actual physical robot using the moveit package.

Question
I am trying to do obstacle avoidance using the moveit package and depth camera. I am able to do it in simulation using the RVIZ GUI for moveit, but when I try to launch the same package using the actual robot I get the following error

"RLException: roslaunch file contains multiple nodes named [/link1_broadcaster].
Please check all 'name' attributes to make sure they are unique.
Also check that $(anon id) use different ids.
The traceback for the exception was written to the log file"

The command I am using is :- " roslaunch interbotix_xsarm_moveit xsarm_moveit.launch robot_model:=vx300s dof:=6 use_actual:=true"

Robot Model
VX300S

Operating System
Ubuntu 20.04
ROS Noetic

Anything Else
None

Faster Inverse Kinematics

Hi,

I'm trying to use a widowx250s for teleoperation with a VR headset and it seems like the position update of bot.arm.set_ee_pose_matrix(T_sd) is very slow, between 0.1 and 0.6 seconds, making the motion jerky.

The reason for the slowness seems to be that the inverse kinematics used by the modern robotics repo are numerical and use a numpy matrix inverse which can be very slow.

Has anyone implemented faster inverse kinematics?

Thanks!

[Question]: ROS software installation problem

Question

I've tried following the setup guide for installing the Trossen packages. I directed the install to a custom workspace, not the default interbotix_ws one. The install script ran successfully and said that it completed, however I can't find any of the interbotix packages when I run rospack list, nor can I find them in the workspace itself. I also can't run any of the example launches in the packages as ROS can't find them.
I've already restarted the system and sourced my environments.

Thanks for the help!

Robot Model

No response

Operating System

Ubuntu 20.04

ROS Version

ROS1 Noetic

Anything Else

No response

Forearm-Roll Joint Limits on Wx250s

Hello,

I have a wx250s and the joint limits on the forearm_roll joint (in other words the 4th joint, or joint_angles[3]) are very restrictive.
When the forearm_roll joint is in is neutral position (for example when grasping something from a table with a vertical gripper orientation) the forearm_roll is very close to one of its joint limits which are at +- 3.141.

Also I noticed that the initial joint position flips based on the position of the servo in the moment when I run arm_run.lauch. The neutral orientation of the joint can either correspond to -3.141 or +3.141 depending on how the joint is oriented when I run arm_run.launch.

Is there any way to relocate the joint limits and make the initial joint position the same for all initial robot confgurations?

Thanks!

I'm also posting this in the legacy repo, since it also has the same problem.

rviz pose does not match with robot pose (initial install)

I got through installation easily enough.
ran roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=rx200
Is there a setting I need to change or did someone not test stuff? 🤔

Rviz screenshot

Screenshot from 2021-02-06 19-59-53

Reactor 200

20210206_200418

I tried running the example scripts, and well... It proceeded to crash into things.

[Question]: The position error?

Question

Hi,

When I was trying to use moveit to do the path plan, the planned position did not match the goal position, which was symmetric with the goal.
When I did not give the goal position and then give it plan command, it would go to a specific position.
But when I was trying to use Python API to control the arm, everything looks normal.

Could you have a look if there are some config file errors or something?
The screenshots are attached.

The symmetric with goal:
image

Plan Without goal:
image

The information in the terminal:

min@min:~/interbotix_ros2_ws$ ros2 launch interbotix_xsarm_moveit xsarm_moveit.launch.py robot_model:=wx250s hardware_type:=actual
[INFO] [launch]: All log files can be found below /home/min/.ros/log/2022-06-09-19-16-40-677573-min-36063
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [move_group-1]: process started with pid [36083]
[INFO] [rviz2-2]: process started with pid [36085]
[INFO] [ros2_control_node-3]: process started with pid [36087]
[INFO] [spawner-4]: process started with pid [36089]
[INFO] [spawner-5]: process started with pid [36091]
[INFO] [xs_sdk-6]: process started with pid [36093]
[INFO] [robot_state_publisher-7]: process started with pid [36095]
[xs_sdk-6] [INFO] Using Interbotix X-Series Driver Version: 'v0.2.1'.
[xs_sdk-6] [INFO] Loaded mode configs from '/home/min/interbotix_ros2_ws/install/interbotix_xsarm_moveit/share/interbotix_xsarm_moveit/config/modes.yaml'.
[xs_sdk-6] [INFO] Loaded motor configs from '/home/min/interbotix_ros2_ws/install/interbotix_xsarm_control/share/interbotix_xsarm_control/config/wx250s.yaml'.
[move_group-1] [WARN] [1654766201.846310293] [move_group.move_group]: MoveGroup launched without ~default_planning_pipeline specifying the namespace for the default planning pipeline configuration
[move_group-1] [WARN] [1654766201.846358903] [move_group.move_group]: Falling back to using the the move_group node namespace (deprecated behavior).
[move_group-1] [INFO] [1654766201.848459874] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00197784 seconds
[move_group-1] [INFO] [1654766201.848499405] [moveit_robot_model.robot_model]: Loading robot model 'wx250s'...
[move_group-1] [INFO] [1654766201.848509392] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[move_group-1] Link wx250s/base_link had 1 children
[move_group-1] Link wx250s/shoulder_link had 1 children
[move_group-1] Link wx250s/upper_arm_link had 1 children
[move_group-1] Link wx250s/upper_forearm_link had 1 children
[move_group-1] Link wx250s/lower_forearm_link had 1 children
[move_group-1] Link wx250s/wrist_link had 1 children
[move_group-1] Link wx250s/gripper_link had 1 children
[move_group-1] Link wx250s/ee_arm_link had 2 children
[move_group-1] Link wx250s/gripper_prop_link had 0 children
[move_group-1] Link wx250s/gripper_bar_link had 1 children
[move_group-1] Link wx250s/fingers_link had 3 children
[move_group-1] Link wx250s/ee_gripper_link had 0 children
[move_group-1] Link wx250s/left_finger_link had 0 children
[move_group-1] Link wx250s/right_finger_link had 0 children
[xs_sdk-6] [INFO] Found Dynamixel ID : '8',	Model : 'XL430-W250',	Joint Name : 'wrist_rotate'
[move_group-1] [INFO] [1654766201.891336824] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'
[move_group-1] [INFO] [1654766201.891610603] [moveit.ros_planning_interface.moveit_cpp]: Listening to '/wx250s/joint_states' for joint states
[move_group-1] [INFO] [1654766201.891990331] [moveit_ros.current_state_monitor]: Listening to joint states on topic '/wx250s/joint_states'
[move_group-1] [INFO] [1654766201.892411405] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects
[move_group-1] [INFO] [1654766201.892435151] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[move_group-1] [INFO] [1654766201.893042004] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'
[move_group-1] [INFO] [1654766201.893076855] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[move_group-1] [INFO] [1654766201.893403713] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'
[move_group-1] [INFO] [1654766201.893658425] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry
[move_group-1] [WARN] [1654766201.893884362] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-1] [ERROR] [1654766201.893901823] [moveit.ros.occupancy_map_monitor.middleware_handle]: No sensor plugin specified for octomap updater ; ignoring.
[move_group-1] [INFO] [1654766201.893913207] [moveit.ros.occupancy_map_monitor.middleware_handle]: Skipping octomap updater plugin ''
[move_group-1] [INFO] [1654766201.896809464] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'move_group'
[xs_sdk-6] [INFO] Found Dynamixel ID : '7',	Model : 'XM430-W350',	Joint Name : 'wrist_angle'
[move_group-1] [INFO] [1654766201.916747604] [moveit.ros_planning.planning_pipeline]: Using planning interface 'OMPL'
[move_group-1] [INFO] [1654766201.918544276] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.path_tolerance' was not set. Using default value: 0.100000
[move_group-1] [INFO] [1654766201.918563902] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.resample_dt' was not set. Using default value: 0.100000
[move_group-1] [INFO] [1654766201.918569140] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.min_angle_change' was not set. Using default value: 0.001000
[move_group-1] [INFO] [1654766201.918580035] [moveit_ros.fix_workspace_bounds]: Param 'move_group.default_workspace_bounds' was not set. Using default value: 10.000000
[move_group-1] [INFO] [1654766201.918590651] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_bounds_error' was set to 0.100000
[move_group-1] [INFO] [1654766201.918595400] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-1] [INFO] [1654766201.918602943] [moveit_ros.fix_start_state_collision]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-1] [INFO] [1654766201.918608251] [moveit_ros.fix_start_state_collision]: Param 'move_group.jiggle_fraction' was not set. Using default value: 0.020000
[move_group-1] [INFO] [1654766201.918617260] [moveit_ros.fix_start_state_collision]: Param 'move_group.max_sampling_attempts' was not set. Using default value: 100
[move_group-1] [INFO] [1654766201.918625013] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization'
[move_group-1] [INFO] [1654766201.918630251] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds'
[move_group-1] [INFO] [1654766201.918654067] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds'
[move_group-1] [INFO] [1654766201.918658886] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision'
[move_group-1] [INFO] [1654766201.918663146] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints'
[move_group-1] [INFO] [1654766201.932505102] [moveit.plugins.moveit_simple_controller_manager]: Added FollowJointTrajectory controller for /wx250s/arm_controller
[move_group-1] [INFO] [1654766201.933967094] [moveit.plugins.moveit_simple_controller_manager]: Added FollowJointTrajectory controller for /wx250s/gripper_controller
[move_group-1] [INFO] [1654766201.934194637] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766201.934585470] [moveit_ros.trajectory_execution_manager]: Trajectory execution is managing controllers
[move_group-1] [INFO] [1654766201.934603489] [move_group.move_group]: MoveGroup debug mode is ON
[move_group-1] [INFO] [1654766201.946887281] [move_group.move_group]: 
[move_group-1] 
[move_group-1] ********************************************************
[move_group-1] * MoveGroup using: 
[move_group-1] *     - ApplyPlanningSceneService
[move_group-1] *     - ClearOctomapService
[move_group-1] *     - CartesianPathService
[move_group-1] *     - ExecuteTrajectoryAction
[move_group-1] *     - GetPlanningSceneService
[move_group-1] *     - KinematicsService
[move_group-1] *     - MoveAction
[move_group-1] *     - MotionPlanService
[move_group-1] *     - QueryPlannersService
[move_group-1] *     - StateValidationService
[move_group-1] ********************************************************
[move_group-1] 
[move_group-1] [INFO] [1654766201.946928138] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
[move_group-1] [INFO] [1654766201.946951256] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context initialization complete
[move_group-1] Loading 'move_group/ApplyPlanningSceneService'...
[move_group-1] Loading 'move_group/ClearOctomapService'...
[move_group-1] Loading 'move_group/MoveGroupCartesianPathService'...
[move_group-1] Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
[move_group-1] Loading 'move_group/MoveGroupGetPlanningSceneService'...
[move_group-1] Loading 'move_group/MoveGroupKinematicsService'...
[move_group-1] Loading 'move_group/MoveGroupMoveAction'...
[move_group-1] Loading 'move_group/MoveGroupPlanService'...
[move_group-1] Loading 'move_group/MoveGroupQueryPlannersService'...
[move_group-1] Loading 'move_group/MoveGroupStateValidationService'...
[move_group-1] 
[move_group-1] You can start planning now!
[move_group-1] 
[xs_sdk-6] [INFO] Found Dynamixel ID : '5',	Model : 'XM430-W350',	Joint Name : 'elbow_shadow'
[spawner-4] [INFO] [1654766201.968789922] [wx250s.arm_controller_spawner]: Waiting for '/wx250s/controller_manager' services to be available
[spawner-5] [INFO] [1654766201.973266762] [wx250s.gripper_controller_spawner]: Waiting for '/wx250s/controller_manager' services to be available
[xs_sdk-6] [INFO] Found Dynamixel ID : '4',	Model : 'XM430-W350',	Joint Name : 'elbow'
[xs_sdk-6] [INFO] Found Dynamixel ID : '6',	Model : 'XM430-W350',	Joint Name : 'forearm_roll'
[xs_sdk-6] [INFO] Found Dynamixel ID : '2',	Model : 'XM430-W350',	Joint Name : 'shoulder'
[xs_sdk-6] [INFO] Found Dynamixel ID : '9',	Model : 'XL430-W250',	Joint Name : 'gripper'
[xs_sdk-6] [INFO] Found Dynamixel ID : '3',	Model : 'XM430-W350',	Joint Name : 'shoulder_shadow'
[xs_sdk-6] [INFO] Found Dynamixel ID : '1',	Model : 'XM430-W350',	Joint Name : 'waist'
[xs_sdk-6] [INFO] The operating mode for the 'arm' group was changed to 'position' with profile type 'velocity'.
[xs_sdk-6] [INFO] The operating mode for the 'gripper' joint was changed to 'linear_position' with profile type 'velocity'.
[xs_sdk-6] [INFO] [1654766203.347432847] [interbotix_xs_sdk.xs_sdk]: InterbotixDriverXS is up!
[ros2_control_node-3] [INFO] [1654766203.466754524] [wx250s.xs_hardware_interface]: Joint states received.
[ros2_control_node-3] [INFO] [1654766203.471404570] [wx250s.controller_manager]: update rate is 10 Hz
[xs_sdk-6] [INFO] [1654766203.557710636] [interbotix_xs_sdk.xs_sdk]: InterbotixRobotXS is up!
[ros2_control_node-3] [INFO] [1654766203.582313140] [wx250s.controller_manager]: Loading controller 'arm_controller'
[spawner-4] [INFO] [1654766203.673375482] [wx250s.arm_controller_spawner]: Loaded arm_controller
[ros2_control_node-3] [INFO] [1654766203.674803741] [wx250s.controller_manager]: Loading controller 'gripper_controller'
[ros2_control_node-3] [INFO] [1654766203.772435653] [wx250s.controller_manager]: Configuring controller 'arm_controller'
[ros2_control_node-3] [INFO] [1654766203.772662707] [wx250s.arm_controller]: Command interfaces are [position] and and state interfaces are [position].
[spawner-5] [INFO] [1654766203.773436691] [wx250s.gripper_controller_spawner]: Loaded gripper_controller
[ros2_control_node-3] [INFO] [1654766203.773567434] [wx250s.arm_controller]: Controller state will be published at 50.00 Hz.
[ros2_control_node-3] [INFO] [1654766203.776552390] [wx250s.arm_controller]: Action status changes will be monitored at 20.00 Hz.
[ros2_control_node-3] [INFO] [1654766203.780369367] [wx250s.controller_manager]: Configuring controller 'gripper_controller'
[ros2_control_node-3] [INFO] [1654766203.780441304] [wx250s.gripper_controller]: Command interfaces are [position] and and state interfaces are [position].
[ros2_control_node-3] [INFO] [1654766203.780685679] [wx250s.gripper_controller]: Controller state will be published at 50.00 Hz.
[ros2_control_node-3] [INFO] [1654766203.781221992] [wx250s.gripper_controller]: Action status changes will be monitored at 20.00 Hz.
[spawner-4] [INFO] [1654766203.973444638] [wx250s.arm_controller_spawner]: Configured and started arm_controller
[spawner-5] [INFO] [1654766204.173816948] [wx250s.gripper_controller_spawner]: Configured and started gripper_controller
[INFO] [spawner-4]: process has finished cleanly [pid 36089]
[INFO] [spawner-5]: process has finished cleanly [pid 36091]
[move_group-1] [INFO] [1654766490.913145489] [moveit_move_group_default_capabilities.move_action_capability]: Received request
[move_group-1] [INFO] [1654766490.913467944] [moveit_move_group_default_capabilities.move_action_capability]: executing..
[move_group-1] [INFO] [1654766490.919858854] [moveit_move_group_default_capabilities.move_action_capability]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[move_group-1] [INFO] [1654766490.919998605] [moveit_ros.plan_execution]: Planning attempt 1 of at most 1
[move_group-1] [INFO] [1654766490.920007614] [moveit_move_group_capabilities_base.move_group_capability]: Using planning pipeline 'move_group'
[move_group-1] [INFO] [1654766490.921059764] [moveit.ompl_planning.model_based_planning_context]: Planner configuration 'interbotix_arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[move_group-1] [INFO] [1654766490.937958482] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766490.938080983] [moveit_ros.trajectory_execution_manager]: Validating trajectory with allowed_start_tolerance 0.01
[move_group-1] [INFO] [1654766490.938842735] [moveit_ros.trajectory_execution_manager]: Starting trajectory execution ...
[move_group-1] [INFO] [1654766490.938878423] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766490.939179367] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: sending trajectory to /wx250s/arm_controller
[ros2_control_node-3] [INFO] [1654766490.939461313] [wx250s.arm_controller]: Received new action goal
[ros2_control_node-3] [INFO] [1654766490.939538697] [wx250s.arm_controller]: Accepted new action goal
[move_group-1] [INFO] [1654766490.939801926] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: /wx250s/arm_controller started execution
[move_group-1] [INFO] [1654766490.939831050] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Goal request accepted!
[move_group-1] [WARN] [1654766491.576127876] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: waitForExecution timed out
[move_group-1] [ERROR] [1654766491.576195482] [moveit_ros.trajectory_execution_manager]: Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was 0.636149 seconds). Stopping trajectory.
[move_group-1] [INFO] [1654766491.576242973] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Cancelling execution for /wx250s/arm_controller
[ros2_control_node-3] [INFO] [1654766491.579873431] [wx250s.arm_controller]: Got request to cancel goal
[move_group-1] [INFO] [1654766491.580726046] [moveit_ros.trajectory_execution_manager]: Completed trajectory execution with status TIMED_OUT ...
[move_group-1] [INFO] [1654766491.581139991] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Controller '/wx250s/arm_controller' successfully finished
[move_group-1] [INFO] [1654766491.588993435] [moveit_move_group_default_capabilities.move_action_capability]: Timeout reached
[move_group-1] [INFO] [1654766494.137313445] [moveit_move_group_default_capabilities.move_action_capability]: Received request
[move_group-1] [INFO] [1654766494.137448377] [moveit_move_group_default_capabilities.move_action_capability]: executing..
[move_group-1] [INFO] [1654766494.139616302] [moveit_move_group_default_capabilities.move_action_capability]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[move_group-1] [INFO] [1654766494.139723507] [moveit_ros.plan_execution]: Planning attempt 1 of at most 1
[move_group-1] [INFO] [1654766494.139742644] [moveit_move_group_capabilities_base.move_group_capability]: Using planning pipeline 'move_group'
[move_group-1] [INFO] [1654766494.140507189] [moveit.ompl_planning.model_based_planning_context]: Planner configuration 'interbotix_arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[move_group-1] [INFO] [1654766494.158616247] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766494.158692723] [moveit_ros.trajectory_execution_manager]: Validating trajectory with allowed_start_tolerance 0.01
[move_group-1] [INFO] [1654766494.159574671] [moveit_ros.trajectory_execution_manager]: Starting trajectory execution ...
[move_group-1] [INFO] [1654766494.159628448] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766494.159754930] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: sending trajectory to /wx250s/arm_controller
[ros2_control_node-3] [INFO] [1654766494.159978909] [wx250s.arm_controller]: Received new action goal
[ros2_control_node-3] [INFO] [1654766494.160038064] [wx250s.arm_controller]: Accepted new action goal
[move_group-1] [INFO] [1654766494.160171110] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: /wx250s/arm_controller started execution
[move_group-1] [INFO] [1654766494.160188361] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Goal request accepted!
[ros2_control_node-3] [INFO] [1654766497.471799361] [wx250s.arm_controller]: Goal reached, success!
[move_group-1] [INFO] [1654766497.472085848] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Controller '/wx250s/arm_controller' successfully finished
[move_group-1] [INFO] [1654766497.499534910] [moveit_ros.trajectory_execution_manager]: Completed trajectory execution with status SUCCEEDED ...
[move_group-1] [INFO] [1654766497.499690864] [moveit_move_group_default_capabilities.move_action_capability]: Solution was found and executed.
[move_group-1] [INFO] [1654766608.185170425] [moveit_move_group_default_capabilities.move_action_capability]: Received request
[move_group-1] [INFO] [1654766608.185327078] [moveit_move_group_default_capabilities.move_action_capability]: executing..
[move_group-1] [INFO] [1654766608.186680454] [moveit_move_group_default_capabilities.move_action_capability]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[move_group-1] [INFO] [1654766608.186731018] [moveit_ros.plan_execution]: Planning attempt 1 of at most 1
[move_group-1] [INFO] [1654766608.186740936] [moveit_move_group_capabilities_base.move_group_capability]: Using planning pipeline 'move_group'
[move_group-1] [INFO] [1654766608.187184495] [moveit.ompl_planning.model_based_planning_context]: Planner configuration 'interbotix_arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[move_group-1] [INFO] [1654766608.205110118] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766608.205194067] [moveit_ros.trajectory_execution_manager]: Validating trajectory with allowed_start_tolerance 0.01
[move_group-1] [INFO] [1654766608.208673955] [moveit_ros.trajectory_execution_manager]: Starting trajectory execution ...
[move_group-1] [INFO] [1654766608.208748615] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766608.208888297] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: sending trajectory to /wx250s/arm_controller
[ros2_control_node-3] [INFO] [1654766608.209169685] [wx250s.arm_controller]: Received new action goal
[ros2_control_node-3] [INFO] [1654766608.209230168] [wx250s.arm_controller]: Accepted new action goal
[move_group-1] [INFO] [1654766608.209361818] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: /wx250s/arm_controller started execution
[move_group-1] [INFO] [1654766608.209378160] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Goal request accepted!
[move_group-1] [WARN] [1654766612.396877631] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: waitForExecution timed out
[move_group-1] [ERROR] [1654766612.396946215] [moveit_ros.trajectory_execution_manager]: Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was 4.187375 seconds). Stopping trajectory.
[move_group-1] [INFO] [1654766612.396983790] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Cancelling execution for /wx250s/arm_controller
[ros2_control_node-3] [INFO] [1654766612.471631266] [wx250s.arm_controller]: Goal reached, success!
[move_group-1] [INFO] [1654766612.472478365] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Controller '/wx250s/arm_controller' successfully finished
[move_group-1] [INFO] [1654766612.472714497] [moveit_ros.trajectory_execution_manager]: Completed trajectory execution with status TIMED_OUT ...
[move_group-1] [INFO] [1654766612.478792394] [moveit_move_group_default_capabilities.move_action_capability]: Timeout reached
[move_group-1] [INFO] [1654766631.298423997] [moveit_move_group_default_capabilities.move_action_capability]: Received request
[move_group-1] [INFO] [1654766631.298860921] [moveit_move_group_default_capabilities.move_action_capability]: executing..
[move_group-1] [INFO] [1654766631.308176851] [moveit_move_group_default_capabilities.move_action_capability]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[move_group-1] [INFO] [1654766631.308240337] [moveit_ros.plan_execution]: Planning attempt 1 of at most 1
[move_group-1] [INFO] [1654766631.308249207] [moveit_move_group_capabilities_base.move_group_capability]: Using planning pipeline 'move_group'
[move_group-1] [INFO] [1654766631.308594779] [moveit.ompl_planning.model_based_planning_context]: Planner configuration 'interbotix_arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[move_group-1] [INFO] [1654766631.331728860] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766631.331840814] [moveit_ros.trajectory_execution_manager]: Validating trajectory with allowed_start_tolerance 0.01
[move_group-1] [INFO] [1654766631.338188858] [moveit_ros.trajectory_execution_manager]: Starting trajectory execution ...
[move_group-1] [INFO] [1654766631.338252762] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-1] [INFO] [1654766631.338410184] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: sending trajectory to /wx250s/arm_controller
[ros2_control_node-3] [INFO] [1654766631.338667058] [wx250s.arm_controller]: Received new action goal
[ros2_control_node-3] [INFO] [1654766631.338716645] [wx250s.arm_controller]: Accepted new action goal
[move_group-1] [INFO] [1654766631.338811978] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: /wx250s/arm_controller started execution
[move_group-1] [INFO] [1654766631.338824480] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Goal request accepted!
[ros2_control_node-3] [INFO] [1654766636.471615880] [wx250s.arm_controller]: Goal reached, success!
[move_group-1] [INFO] [1654766636.471855714] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Controller '/wx250s/arm_controller' successfully finished
[move_group-1] [INFO] [1654766636.497953702] [moveit_ros.trajectory_execution_manager]: Completed trajectory execution with status SUCCEEDED ...
[move_group-1] [INFO] [1654766636.498438607] [moveit_move_group_default_capabilities.move_action_capability]: Solution was found and executed.

Robot Model

wx250s

Operating System

Ubuntu20.04
ROS2 galactic

Anything Else

No response

[Enhancement]: close range perception with camera mounted near base

Describe the solution you'd like

The specifications of the RealSense D405 allow for depth sensing from 7cm up 50cm, in a smaller form factor. This makes it optimal for mounting the camera near the robot arm base when the arm is mounted on a platform or AMR. It would therefor be useful to get the camera_link TF with the AprilTag mounted on the inside of the arm.

Platform

xarms

Is your feature request related to a problem? Please describe.

No response

Suggested code

Changing the urdf.xacro file of the ar_tag

Anything Else

No response

[Bug]: error during galactic installation on ubuntu 22.04

What happened?

Am getting regular installation errors by following the Trossen Installation guide at https://www.trossenrobotics.com/docs/interbotix_xsarms/ros_interface/software_setup.html.

I am trying to install on Ubuntu 22.04 (yes, I know it says 20.04). I modified the installation script a bit (added "22.04" as an option) but am still getting the error(s) on the AWENT section.

Is there any way to install on 22.04? Is there a way to compile from source?

Robot Model

X250 manipulator

Operating System

Ubuntu 22.04

ROS Distro

ROS2 Galactic

Steps To Reproduce

Run the installation process/sript.

Relevant log output

Starting >>> interbotix_common_sim
--- stderr: dynamixel_workbench_toolbox
CMake Error at CMakeLists.txt:18 (find_package):
  By not providing "Findament_cmake.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "ament_cmake", but CMake did not find one.
  Could not find a package configuration file provided by "ament_cmake" with
  any of the following names:
    ament_cmakeConfig.cmake
    ament_cmake-config.cmake
  Add the installation prefix of "ament_cmake" to CMAKE_PREFIX_PATH or set
  "ament_cmake_DIR" to a directory containing one of the above files.  If
  "ament_cmake" provides a separate development package or SDK, be sure it
  has been installed.
---
Failed   <<< dynamixel_workbench_toolbox [0.67s, exited with code 1]
Aborted  <<< interbotix_xs_msgs [0.66s]
Aborted  <<< interbotix_common_sim [0.99s]
Aborted  <<< interbotix_common_modules [1.06s]
Summary: 0 packages finished [1.31s]
  1 package failed: dynamixel_workbench_toolbox
  3 packages aborted: interbotix_common_modules interbotix_common_sim 
interbotix_xs_msgs
  3 packages had stderr output: dynamixel_workbench_toolbox 
interbotix_common_sim interbotix_xs_msgs
  20 packages not processed
[ERROR] Failed to build Interbotix Arm ROS Packages.
[ERROR] Interbotix Installation Failed!

Anything Else

Nothing else at present

[Bug]: joint_state_publisher_gui process has died

What happened?

After installing the software according to "ROS2 Standard Software Setup" I went through the "ROS2 Quickstart Guide" and ran:
ros2 launch interbotix_xsarm_descriptions xsarm_description.launch.py robot_model:=wx200 use_joint_pub_gui:=true
I obtain an error saying that the joint_state_publisher_gui has died. There is no gui visible and the robot is not displayed properly (see screenshot)
Screenshot from 2022-06-10 16-57-12
The error in the visualization is probably due to missing transforms. And I assume this is correlated with the missing joint state publisher.
Running ros2 run tf2_tools view_frames gives me the following:
frames.pdf

Robot Model

In reality wx250s, but I tried several in this simulation e.g. wx200

Operating System

Ubuntu 20.04

Steps To Reproduce

Run:
ros2 launch interbotix_xsarm_descriptions xsarm_description.launch.py robot_model:=wx200 use_joint_pub_gui:=true

Relevant log output

mankoch@manuel:~$ ros2 launch interbotix_xsarm_descriptions xsarm_description.launch.py robot_model:=wx200 use_joint_pub_gui:=true
[INFO] [launch]: All log files can be found below /home/mankoch/.ros/log/2022-06-10-16-52-24-924161-manuel-vm-10900
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [10903]
[INFO] [joint_state_publisher_gui-2]: process started with pid [10905]
[INFO] [rviz2-3]: process started with pid [10907]
[ERROR] [joint_state_publisher_gui-2]: process has died [pid 10905, exit code 1, cmd '/opt/ros/galactic/lib/joint_state_publisher_gui/joint_state_publisher_gui --ros-args -r __ns:=/wx200 --params-file /tmp/launch_params_lnnt_my_'].

Anything Else

No response

Launch file shutdown on motor error

Is there any way to tell the control node to shutdown or to at least signal the malfunction if any of the motors fails during operation e.g. due to overload error? Currently if we are running the robot and a motor is shut down the arm continues operation using IK but one of the motors does not react to the commands and it is difficult to figure out when the failure occurred.

And maybe a side question: is it possible to programmatically reboot the motor after the overload error? Dynamixel Wizard provides such functionality.

[Question]: error:RLException: ERROR: unable to contact ROS master at [http://hostname.local:11311] The traceback for the exception was written to the log file

Question

when I try to run
roslaunch interbotix_xsarm_gazebo xsarm_gazebo.launch robot_model:=wx250 use_trajectory_controllers:=true

I get error
RLException: ERROR: unable to contact ROS master at [http://hostname.local:11311]
The traceback for the exception was written to the log file

Robot Model

rx150

Operating System

Ubuntu 20.04

ROS Version

ROS1 Noetic

Anything Else

No response

[Question]: Using the gripper servo on the px100 as just another joint

Question

Hello! I have a px100 on which I've replaced the gripper hardware with a custom-printed part. It looks like (at least from the python library) there's no way to continuously move the gripper servo like the others, only open/close.

What's the easiest way to treat servo 5 as just another servo, so that it works with e.g. set_joint_positions? I've tried editing the config yaml file, but that just confuses the GUI and gave me an index out of bounds error in python.

Thanks!! Otherwise really enjoying playing with the robot so far :)

Robot Model

px100

Operating System

A fresh install of Ubuntu 20.04, following instructions from this repo

Anything Else

No response

[Bug]: Can't find dynamixel ID 7

What happened?

I just installed my pincher 150 on ubuntu 20.04 with Noetic. The robot used to work on Ubuntu 18.04 on melodic.
When I launch :
roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=px150
I got the error
[ERROR] [1655578620.814204761]: [xs_sdk] Can't find Dynamixel ID '7', Joint Name : 'wrist_rotate'.
So I tried with my other computer running on melodic and it gives me the same message. When powering on the robot, all the motor LED are flashing, which suggest this is not a power issue. I tried many times to turn off and unplug the U2D2 and only once it was able to launch the robot but I got a [ERROR] [1655574845.543144203]: [xs_sdk] [TxRxResult] There is no status packet! after 20sec.
I decided to check the motors with the dynamixel wizard and this one can only find ID001 ID002 and ID003. Since their firmware was outdated I updated them successfully but it did not solve my issue.
During the scan of the dynamixel, I made sure to scan everything.
I did not use the robot that much yet, so I don't think it is a motor malfunction (or I'm quite unlucky)

Thanks for your help !

Robot Model

px150

Operating System

Ubuntu 20.04

Steps To Reproduce

Powering the robot on, plug in the U2D2 then start the command roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=px150

Relevant log output

roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=px150
... logging to /home/altair/.ros/log/6f063422-ef38-11ec-8f96-33824b0b8ff6/roslaunch-WKS-99331-NLT-9653.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://192.168.1.36:44755/

SUMMARY
========

PARAMETERS
 * /px150/robot_description: <?xml version="1....
 * /px150/xs_sdk/load_configs: True
 * /px150/xs_sdk/mode_configs: /home/altair/inte...
 * /px150/xs_sdk/motor_configs: /home/altair/inte...
 * /rosdistro: noetic
 * /rosversion: 1.15.14

NODES
  /px150/
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    rviz (rviz/rviz)
    xs_sdk (interbotix_xs_sdk/xs_sdk)

auto-starting new master
process[master]: started with pid [9663]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 6f063422-ef38-11ec-8f96-33824b0b8ff6
process[rosout-1]: started with pid [9673]
started core service [/rosout]
process[px150/robot_state_publisher-2]: started with pid [9680]
process[px150/rviz-3]: started with pid [9681]
process[px150/xs_sdk-4]: started with pid [9682]
[ INFO] [1655578620.743824133]: [xs_sdk] Loaded mode configs from '/home/altair/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/config/modes.yaml'.
[ INFO] [1655578620.744337213]: [xs_sdk] Loaded motor configs from '/home/altair/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/config/px150.yaml'.
[ERROR] [1655578620.814204761]: [xs_sdk] Can't find Dynamixel ID '7',	Joint Name : 'wrist_rotate'.
[ERROR] [1655578620.814244999]: [xs_sdk] Failed to find all motors specified in the motor_config file. Shutting down...
[ERROR] [1655578620.814256287]: [xs_sdk] For troubleshooting, please see https://www.trossenrobotics.com/docs/interbotix_xsarms/troubleshooting/index.html
[px150/xs_sdk-4] process has finished cleanly
log file: /home/altair/.ros/log/6f063422-ef38-11ec-8f96-33824b0b8ff6/px150-xs_sdk-4*.log
[px150/rviz-3] process has finished cleanly
log file: /home/altair/.ros/log/6f063422-ef38-11ec-8f96-33824b0b8ff6/px150-rviz-3*.log

Anything Else

No response

Adjusting the interbotix_xsarm_diagnostic_tool

I am looking to run a my own python movement script and retrieve data, from the joints of a px150, like temperature or current. I am wondering is there a way to use the diagnostic tool but instead of the default one joint rotating over and back motion in the package, I would like to include a python script with my own movements? Is this possible or will I have to write a script or package from scratch?
Any help is greatly appreciated, thanks.

Incorrect config for RX150

Hi, I just launched RX150, and the config for it is incorrect, since it contains wrong number of motors, I copied the config from rx200 and it works nicely.

RealSense on ROS Noetic

It looks like the default kernel for Ubuntu 20.04 (after updating the desktop image) is now 5.11. However, librealsense is only compatible with 5.8 or lower. You might need to check if this is an issue. If it is, a user will need to switch to the 5.8 kernel. This issue also applies to the interbotix_ros_rovers repo. However, in the case of interbotix_ros_rovers, the kernel will need to be rolled back before locobots ship.

[Question]: Ar tag missing for WX250 arm. Unable to get a perception pipeline tuning sucessfully

Question

Hello team Trossen Robotics,

I hope you are doing well. My name is Lazaro Couso and I am a student from the University of Florida doing a research project using your interbotix widow arm.

We could not find the ar tag for the wx250 arm, is it possible to get one by the end of this week?

Also, do I really need the ar tag to successfully pick and place objects? In RVIZ, I noticed that my camera is detecting the objects on the surface upside down, and I can see it has the camera_color_optical_frame on the ar tag baseplate of the robot instead of where the camera is. I am not sure if this is happening because I do not have an ar tag.

I was following this tutorial, https://youtu.be/UesfMYM4qcc, and when I use the ArmTag Tuner GUI and clicked on snapped pose, in RVIZ, the objects appeared upside down instead of being just on the top surface of the table.

I would appreciate any help with this and thanks,

Lazaro Couso

Robot Model

wx250

Operating System

Ubuntu 20.04

Anything Else

No response

[Question]: Actual robot not responding but simulation on RViz does.

Question

Why is the actual robot not responding when running the python demos (e.g. bartender.py)?

Robot Model

px100

Operating System

Ubuntu 20.04
ROS Noetic

Anything Else

I am able to successfully run the python demos on simulation using the following commands:

roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=px100 use_sim:=true
python3 bartender.py

Unfortunately, when I run the commands for the actual robot (without the use_sim flag), there is no response on RVIZ and the actual robot. The terminal gives me no error too!

Here are the screenshots:

Running the command: roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=px100
image

Running the command: python3 bartender.py
image

Any help is appreciated, thanks!

403 Forbidden Error

Hi,

I've been attempting to install the ros packages but have ran into cmake errors with the realsense packages. The following is what I get when I try to update the repositories:

Err:6 http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial InRelease
403 Forbidden [IP: 52.218.112.138 80]
Hit:7 https://librealsense.intel.com/Debian/apt-repo bionic InRelease
Err:8 https://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic InRelease
403 Forbidden [IP: 52.218.112.138 443]
Err:9 https://homerepo.oit.gatech.edu/saltstack/py3/ubuntu/18.04/amd64/3001 bionic InRelease
Could not connect to homerepo.oit.gatech.edu:443 (10.138.12.138), connection timed out

[Question]: When i install the X-Series Arm packages , a problem occurred: [ERROR] Something went wrong. [ERROR] Interbotix Installation Failed!

Question

ROS version: Melodic
Ubuntu version:18.04
When i install the X-Series Arm packages following the scripe below:

 sudo apt install curl
 curl 'https://raw.githubusercontent.com/Interbotix/interbotix_ros_manipulators/main/interbotix_ros_xsarms/install/amd64/xsarm_amd64_install.sh' > xsarm_amd64_install.sh
 chmod +x xsarm_amd64_install.sh
 ./xsarm_amd64_install.sh melodic

I choose to install the Interbotix Perception packages but not to install the MATLAB-ROS API.

A problem occurred:

Creating config file /etc/ssh/sshd_config with new version
Creating SSH2 RSA key; this may take some time ...
2048 SHA256:y+Edo13n2uc6iu15cYNmqST8VAhVWMSfW8/zoA6Hmsc root@leona (RSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:mKkvuV+BXq1iQchGgynp60NGPCQCIyoAEGFHaCny/nw root@leona (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:nsdTkm5Az4hnEF5KHkw6tn8Iiz/lUzrTwb6e8Lm6SHk root@leona (ED25519)
Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ufw (0.36-0ubuntu0.18.04.2) ...
Processing triggers for ureadahead (0.100.0-21) ...
ureadahead will be reprofiled on next reboot
Processing triggers for systemd (237-3ubuntu10.56) ...
./xsarm_amd64_install.sh: line 159: [: ==: unary operator expected
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python-pip is already the newest version (9.0.1-2.3~ubuntu1.18.04.5).
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://mirrors.ustc.edu.cn/pypi/web/simple
Collecting modern_robotics
  Downloading https://mirrors.bfsu.edu.cn/pypi/web/packages/a0/78/18a10bb636b0f1ae101efdb8dfe65f5dce231e00de95ae1a14af32c49249/modern_robotics-1.1.0.tar.gz (14 kB)
Requirement already satisfied: numpy in /usr/lib/python2.7/dist-packages (from modern_robotics) (1.13.3)
Building wheels for collected packages: modern-robotics
  Building wheel for modern-robotics (setup.py) ... done
  Created wheel for modern-robotics: filename=modern_robotics-1.1.0-py2-none-any.whl size=16550 sha256=c3643b0781a507d2701b4f409a061d79223b738a32a1ff07ccd8dfb7d1900fa2
  Stored in directory: /home/ljy/.cache/pip/wheels/6e/58/d5/016df3eece29c0560d3cb0c886499ea5e990a68987babdd239
Successfully built modern-robotics
Installing collected packages: modern-robotics
Successfully installed modern-robotics-1.1.0
[ERROR] Something went wrong.
[ERROR] Interbotix Installation Failed!

What's more, I can't find the file named interbotix_ws.
Could anyone tell me why? Thanks!!

Robot Model

No response

Operating System

Ubuntu 18.04

ROS Version

ROS1 Melodic

Anything Else

No response

ROS2 release plans

Hi, I'd like to ask if there are any plans on releasing a ROS2 version of this project?

[Question]: controller not loading

Question

After inputting into the command line: roslaunch interbotix_xsarm_gazebo xsarm_gazebo.launch robot_model:=wx250 use_position_controllers:=true

I get:
[ERROR] [1660068076.184717276]: Could not load controller 'waist_controller' because controller type 'effort_controllers/JointPositionController' does not exist.
[ERROR] [1660068076.184754727]: Use 'rosservice call controller_manager/list_controller_types' to get the available types

Robot Model

wx250

Operating System

Ubuntu 20.04

ROS Version

ROS1 Noetic

Anything Else

No response

Competibility with arm from Ufactory

A while ago I have purchased the xArm7 from Ufactory. Can I use your repository in this case or is your repo is compatible only with arms sold by Trossen Robotics?

Installation failed due to missing ros-noetic packages

OS: 5.8.0-7630-generic #32~1607010078~20.04~383a644~dev-Ubuntu
ROS Noetic

When running the xsarm_amd64_install.sh script, it failed with error:
-- Could not find the required component 'dynamixel_sdk'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found. CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "dynamixel_sdk" with any of the following names:
Installing ros-neotic-dynamixel-sdk with apt solved this problem, but then there was a number of similar issues requiring installation of additional packages.

N.B. if anyone reading this runs into similar problems in future, you need to remove the interbotix_ws folder between each run of the script.

In summary, the install script needs to also install ros-neotic-dynamixel-sdk, ros-noetic-moveit, ros-noetic-joint-trajectory-controller, ros-noetic-moveit-visual-tools, ros-noetic-joy, ros-noetic-effort-controllers

Perception pipeline not working with RealSense D405

What happened?

Using the Intel D405 RealSense camera gives no image in RViz.

image

Robot Model

px100

Operating System

Ubuntu 20.04

ROS Distro

ROS2 Galactic

Steps To Reproduce

ros2 launch interbotix_xsarm_perception xsarm_perception.launch.py robot_model:=px100 use_pointcloud_tuner_gui:=true use_armtag_tuner_gui:=true

Relevant log output

No response

Anything Else

The interest is to use the D405 for short distance perception (7- 50cm)

px150 failing to run interbotix_xsarm_diagnostic_tool on Ubuntu with Noetic

I am very new to using ROS packages. I downloaded all the packages in the beginning and am able to run moveIt and whatnot, yet the diagnostic tool will not run and instead prompts the following error code:

"No such file or directory: /home/fionn/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_descriptions/urdf/.urdf.xacro [Errno 2] No such file or directory: '/home/fionn/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_descriptions/urdf/.urdf.xacro'
RLException: while processing /home/fionn/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/launch/xsarm_control.launch:
while processing /home/fionn/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_descriptions/launch/xsarm_description.launch:
Invalid tag: Cannot load command parameter [/robot_description]: command [['xacro', '/home/fionn/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_descriptions/urdf/.urdf.xacro', 'robot_name:=', 'base_link_frame:=base_link', 'show_ar_tag:=false', 'show_gripper_bar:=true', 'show_gripper_fingers:=true', 'use_world_frame:=true', 'external_urdf_loc:=', 'load_gazebo_configs:=false']] returned with code [2].

Param xml is
The traceback for the exception was written to the log file"

I checked through my files and I have down to urdf, but not .urdf.xacro. itself. Instead urdf contains px150.urdf.xacro. I tried copying and renaming the px150.urdf.xacro to urdf.xacro and while that solved the first part of the issue, the second part (processing the control launch) persisted.
Any help at all would be greatly appreciated

P.s I am new to posted here so apologies if this is outside the guidelines.

[Bug]: No valid pose on Y with moveit

What happened?

Hi !

I'm trying to use the pincherX150 with moveit in order to make the end-effector follow a simple 3 points trajectory.
But after some fails I notice that the robot can't actually go to a pose if the y position isn't 0. I can go to any pose along X and Z but the planner fails as soon as I specified a different value from 0 on the Y.
I'm starting the robot with
roslaunch interbotix_xsarm_moveit xsarm_moveit.launch robot_model:=px150 use_actual:=true dof:=5
and during planning get :
[ERROR] [1664485515.943618057]: interbotix_arm/interbotix_arm: Unable to sample any valid states for goal tree [ INFO] [1664485515.943652826]: interbotix_arm/interbotix_arm: Created 1 states (1 start + 0 goal) [ INFO] [1664485515.943683371]: No solution found after 5.008403 seconds [ INFO] [1664485515.959265069]: Unable to solve the planning problem [ INFO] [1664485515.960194820]: Received event 'stop'

I deactivated the torque and displayed the EE position and orientation to be sure that all the positions I tried to reach could be, but without success.

The launch file to my code :

<launch>
  
  <arg name="robot_name"                  default="px150"/>
  <arg name="arm_operating_mode"          default="position"/>
  <arg name="arm_profile_velocity"        default="50"/>
  <arg name="arm_profile_acceleration"    default="15"/>
  <arg name="use_pid_cntlrs"              default="false"/>
  <arg name="use_gazebo"                  default="false"/>
  <arg name="use_actual"                  default="true"/>
  <arg name="use_fake"                    default="false"/>
  <arg name="dof"                         default="5"/>
  <arg name="use_cpp_interface"           default="false"/>
  <arg name="moveit_interface_gui"        default="true"/>
  <arg name="use_python_interface"        default="true"/>

  <!--<include file="$(find interbotix_moveit)/launch/interbotix_moveit.launch">
    <arg name="robot_name"                value="$(arg robot_name)"/>
    <arg name="arm_operating_mode"        value="$(arg arm_operating_mode)"/>
    <arg name="arm_profile_velocity"      value="$(arg arm_profile_velocity)"/>
    <arg name="arm_profile_acceleration"  value="$(arg arm_profile_acceleration)"/>
    <arg name="use_pid_cntlrs"            value="$(arg use_pid_cntlrs)"/>
    <arg name="use_gazebo"                value="$(arg use_gazebo)"/>
    <arg name="use_actual"                value="$(arg use_actual)"/>
    <arg name="use_fake"                  value="$(arg use_fake)"/>
    <arg name="dof"                       value="$(arg dof)"/>
  </include>-->

  <group if="$(arg use_cpp_interface)">

    <node
      name="moveit_interface_node"
      pkg="interbotix_moveit_interface"
      type="moveit_interface_node"
      respawn="false"
      output="screen"
      ns="$(arg robot_name)"/>

    <node if="$(arg moveit_interface_gui)"
      name="moveit_interface_gui"
      pkg="interbotix_moveit_interface"
      type="moveit_interface_gui"
      output="screen"
      ns="$(arg robot_name)"/>

  </group>

  <node name="dmp" pkg="dmp" type="dmp_server" respawn="false" output="screen"/>
  <include file="$(find proprioception_pincher)/launch/robot_proprioception.launch" />

  <node if="$(arg use_python_interface)"
    name="motion_pincher"
    pkg="motion_pincher"
    type="gripper.py"
    respawn="false"
    output="screen"
    ns="$(arg robot_name)">
    <param name="robot_name" value="$(arg robot_name)"/>
    <param name="dof" value="$(arg dof)"/>
    <remap from="/attached_collision_object" to="/$(arg robot_name)/attached_collision_object"/>
    <remap from="/collision_object" to="/$(arg robot_name)/collision_object"/>
  </node>

</launch>

I start the robot first then use this launchfile to start my own code.

My pseudo code :

def all_close(goal, actual, tolerance):
  """
  Convenience method for testing if a list of values are within a tolerance of their counterparts in another list
  @param: goal       A list of floats, a Pose or a PoseStamped
  @param: actual     A list of floats, a Pose or a PoseStamped
  @param: tolerance  A float
  @returns: bool
  """
  all_equal = True
  if type(goal) is list:
    for index in range(len(goal)):
      if abs(actual[index] - goal[index]) > tolerance:
        return False

  elif type(goal) is geometry_msgs.msg.PoseStamped:
    return all_close(goal.pose, actual.pose, tolerance)

  elif type(goal) is geometry_msgs.msg.Pose:
    return all_close(pose_to_list(goal), pose_to_list(actual), tolerance)

  return True

def go_to_home_pose(self):
    self.pose_home.position.x = 0.35
    self.pose_home.position.y = 0.0
    self.pose_home.position.z = 0.25
    self.pose_home.orientation.x = 0.0
    self.pose_home.orientation.y = 0.0
    self.pose_home.orientation.z = 0.0
    self.pose_home.orientation.w = 1.0
    move_group = self.move_group
    move_group.set_pose_target(self.pose_home)
    plan = move_group.go(wait=True)
    # Calling `stop()` ensures that there is no residual movement
    move_group.stop()
    move_group.clear_pose_targets()
    self.move = False
    self.count = 0
    current_pose = self.move_group.get_current_pose().pose

    return all_close(self.pose_goal, current_pose, 0.01)

def go_to_pose(self,x,y,z):
    self.pose_goal.position.x = x
    self.pose_goal.position.y = y
    self.pose_goal.position.z = z
    self.pose_goal.orientation.x = 0.0
    self.pose_goal.orientation.y = 0.69
    self.pose_goal.orientation.z = 0.02
    self.pose_goal.orientation.w = 0.72
    move_group = self.move_group
    move_group.set_pose_target(self.pose_goal)
    plan = move_group.go(wait=True)
    # Calling `stop()` ensures that there is no residual movement
    move_group.stop()
    move_group.clear_pose_targets()
    self.move = False
    self.count = 0
    current_pose = self.move_group.get_current_pose().pose

    return all_close(self.pose_goal, current_pose, 0.01)

if __name__ == '__main__':
  motion_planning = Motion()
  rospy.sleep(1.5)
  first = True
  motion_planning.go_to_home_pose()
  #motion_planning.set_gripper_orientation(1.4,0,0)
  motion_planning.go_to_pose(0.21,0.15,0.02)
  rospy.sleep(2)
  #motion_planning.go_to_pose(0.2,0,0.02)
  #rospy.sleep(2)
  motion_planning.go_to_home_pose()

Thanks a lot !

Robot Model

px150

Operating System

Ubuntu 20.04

ROS Distro

ROS1 Noetic

Steps To Reproduce

No response

Relevant log output

No response

Anything Else

No response

WX250 Not working

Hi,

I have a 5 dof WX250 robot. However, whenever I try to get the robot to go to a pre-defined pose, e.g. go from 'Sleep' to 'Home', the robot tries to go down into the ground instead of up. The final pose shown in RViz ends up being upside down as shown in the screenshot below.
Additionally, I get the error "[TxRxResult] Incorrect status packet!" despite the usb cable being plugged in properly and no cables on the robot seem to be loose.
I have reviewed the suggestions on https://github.com/Interbotix/interbotix_ros_core/blob/main/interbotix_ros_xseries/interbotix_xs_sdk/TROUBLESHOOTING.md but none work. I'm running Ubuntu 18 and ROS Melodic.
Please advise on how to resolve the issue.

image

Thanks.

Motors Overheating on WX250S

Hi,

we're using two WX250s robots and for both we're seeing issues of motors loosing power and blinking red, while getting quite warm after about 2 hours of continuous use.

This seems to be an overloading issue, but we're not applying any excessive force at the end-effector.
Here's an example of the motions we're performing:
https://photos.google.com/search/_tra_/photo/AF1QipP2wLZU0wOHl6L3m2jyELKghYH5LwEwk5Fva47P
We're using the standard position control mode at around 5Hz.

The errors appear most often for motor 2 and 5. When restarting the interbotix ros script it would say "Can't find Dynamixel ID 2" for example.

I tried sticking a few heat sinks on the motors of the "shoulder joint" but it didn't fully resolve the problem.

Thanks a lot for the help!

[Question]: Some ros1 launch files in ros2 wrapper

Question

Hi,

When I was trying to colcon build the galactic wrapper, I noticed there were some ros1 launch files in there, which caused the failure of colcon build.
I am confused, could you give me some installation instructions?
Thanks in advance!

Min

Robot Model

wx250x

Operating System

Ubuntu20.04

Anything Else

No response

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):

Hi,

I've been trying to build the realsense_ws and the interbotix_ws and have been encountering cmake errors.

When trying to catkin_make the realsense_ws, this is the following error I get:

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "ddynamic_reconfigure" with any of the following names:

    ddynamic_reconfigureConfig.cmake
    ddynamic_reconfigure-config.cmake

  Add the installation prefix of "ddynamic_reconfigure" to CMAKE_PREFIX_PATH
  or set "ddynamic_reconfigure_DIR" to a directory containing one of the
  above files.  If "ddynamic_reconfigure" provides a separate development
  package or SDK, be sure it has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:11 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/rkim87/realsense_ws/build_isolated/realsense2_camera/CMakeFiles/CMakeOutput.log".
See also "/home/rkim87/realsense_ws/build_isolated/realsense2_camera/CMakeFiles/CMakeError.log".
<== Failed to process package 'realsense2_camera': 
  Command '['cmake', '/home/rkim87/realsense_ws/src/realsense-ros/realsense2_camera', '-DCATKIN_DEVEL_PREFIX=/home/rkim87/realsense_ws/devel_isolated/realsense2_camera', '-DCMAKE_INSTALL_PREFIX=/home/rkim87/realsense_ws/install_isolated', '-G', 'Unix Makefiles']' returned non-zero exit status 1

Reproduce this error by running:
==> cd /home/rkim87/realsense_ws/build_isolated/realsense2_camera && cmake /home/rkim87/realsense_ws/src/realsense-ros/realsense2_camera -DCATKIN_DEVEL_PREFIX=/home/rkim87/realsense_ws/devel_isolated/realsense2_camera -DCMAKE_INSTALL_PREFIX=/home/rkim87/realsense_ws/install_isolated -G 'Unix Makefiles'

Running catkin_make on interbotix_ws, I get the following error:

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "realsense2_camera"
  with any of the following names:

    realsense2_cameraConfig.cmake
    realsense2_camera-config.cmake

  Add the installation prefix of "realsense2_camera" to CMAKE_PREFIX_PATH or
  set "realsense2_camera_DIR" to a directory containing one of the above
  files.  If "realsense2_camera" provides a separate development package or
  SDK, be sure it has been installed.
Call Stack (most recent call first):
  interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_perception/CMakeLists.txt:10 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/rkim87/interbotix_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/rkim87/interbotix_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

Probably because I can't build the realsense_ws...

Any help?

[Bug]: [xs_sdk] groupSyncRead getdata failed

What happened?

Tried to start the joystick control using the following command.

roslaunch interbotix_xsarm_joy xsarm_joy.launch robot_model:=wx200

During configuration I received this warning message.

[ WARN] [1654634938.647017794]: Couldn't set gain on joystick force feedback: Bad file descriptor

Then gave this error repeatedly. upon startup

[ERROR] [1654634967.357863833]: [xs_sdk] [TxRxResult] There is no status packet! [ERROR] [1654634967.358075128]: [xs_sdk] groupSyncRead getdata failed [ERROR] [1654634967.358149498]: [xs_sdk] groupSyncRead getdata failed [ERROR] [1654634967.358211590]: [xs_sdk] groupSyncRead getdata failed

Robot Model

rx200

Operating System

Ubuntu 20.4

Steps To Reproduce

Powered on pi and robot
Initiated joystick start command

Relevant log output

[ERROR] [1654634967.357863833]: [xs_sdk] [TxRxResult] There is no status packet!
[ERROR] [1654634967.358075128]: [xs_sdk] groupSyncRead getdata failed
[ERROR] [1654634967.358149498]: [xs_sdk] groupSyncRead getdata failed
[ERROR] [1654634967.358211590]: [xs_sdk] groupSyncRead getdata failed

Anything Else

No response

[ERROR]: Can't find Dynamixel ID '1'

I have a Widowx 250 arm, and I am failing launching the roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=wx250, by getting this error:

[ INFO] [1620733217.261312784]: Successfully retrieved motor configs from /home/dkanou/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/config/wx250.yaml.
[ INFO] [1620733217.300195792]: ID : 7, Model Number : 1060
[ INFO] [1620733217.348220795]: ID : 2, Model Number : 1020
[ERROR] [1620733217.428449616]: Can't find Dynamixel ID '1'

Any help?

[Question]: How to calibrate the motors?

Question

I am having trouble calibrating our px150 robot. Specifically, the wrist_angle joint seems to be completely off, ever since we had a minor "crash". It caused the joint motor to get an "Overload error". We bumped into the base (not with much force), but after rebooting the motor seemed to work fine. However, the joint measurements somehow got mixed up. When we now go to the 'sleep position', the end effector bumps into the manipulator base. The sleep position used to work fine. Similarly, the "all zero" home position has the end effector pointing diagonally downwards, while it used to point straight ahead.

I've attempted to use the DYNAMIXEL wizard 2.0 to inspect & recover the motor settings. I have the following questions:

  • Where in the documentation can I find the default motor settings for the px150? I've found this config, but it only sets a subset of settings (baud rate, joint limits, drive_mode, etc..). When I inspect the motor settings with the wizard, I find that other settings (e.g. Homing offset) are also nonzero and differ per motor. I am not sure whether someone before has messed with these, or they are somehow calibrated for this robot as well. I would like to do a factory reset for each motor using the wizard, but I fear that it will mess up the calibration.... Any way I can look up what these values should be?
  • What exactly does the homing offset do? From here It seems to be a constant offset to the goal position & position measurements. However, when I modify its value, it does not seem to change the appearance in RViz. Why is this offset not comming through to RViz (and the interbotix_sdk)?
  • The wrist_angle motor was set to reverse_mode. When I uncheck to normal mode, I would expect the movement of the RViz to reverse, but it does not...? Is only the torque reversed, and the encoding left unchanged?
  • Also, the DYNAMIXEL wizard indicates that the measured joint angles and loads by the two motors in the shoulder joint are not the same:
    • load: 33.8% vs 6.20%
    • position: 111.45 vs 115.58 degrees.
      The differences in loads of both joints are disproportional and cause Overload Error to happen easily... I can even imagine the differences in measured joints may sometimes lead these two motors to counteract each other. Especially when we have an integrator gain. On the other hand, the motors in the elbow join do seem to output consistent values:
    • load: 24.3% vs 24.80%
    • position: 247.76 vs 247.59 degrees.
      How can I calibrate the shoulder joints?

Robot Model

px150

Operating System

Ubuntu 18.04

ROS Version

ROS1 Melodic

Anything Else

No response

Updating realsense_ros to 2.3.1

That's good for Noetic when installing librealsense version 2.48. However, I'd also suggest upgrading the librealsense version to be 2.48 for ubuntu 16.04 and 18.04. If you leave them at 2.40, the install script will fail when trying to build realsense_ros 2.3.1. That version is incompatible with librealsense 2.40.

[Bug]: realsense-ros fails to compile during installation

What happened?

I am having issues getting interbotix downloaded for both ros noetic and ros melodic on my Windows 11 computer. I am using Ubuntu 20.04 for ros noetic and 18.04 for ros melodic. While attempting to download realsense, I get this error.

/home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/base_realsense_node.cpp: In member function ‘void realsense2_camera::BaseRealSenseNode::publishPointCloud(rs2::points, const ros::Time&, const rs2::frameset&)’:
/home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/base_realsense_node.cpp:2165:29: error: ‘find_if’ was not declared in this scope
         texture_frame_itr = find_if(frameset.begin(), frameset.end(), [&texture_source_id, &available_formats] (rs2::frame f)
                             ^~~~~~~
/home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/base_realsense_node.cpp:2165:29: note: suggested alternatives:
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:39,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /opt/ros/melodic/include/class_loader/class_loader.hpp:36,
                 from /opt/ros/melodic/include/pluginlib/./class_list_macros.hpp:40,
                 from /opt/ros/melodic/include/pluginlib/class_list_macros.h:35,
                 from /home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/../include/../include/realsense_node_factory.h:6,
                 from /home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/../include/base_realsense_node.h:6,
                 from /home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/base_realsense_node.cpp:1:
/usr/include/c++/7/bits/stl_algo.h:3923:5: note:   ‘std::find_if’
     find_if(_InputIterator __first, _InputIterator __last,
     ^~~~~~~
In file included from /usr/include/boost/mpl/find.hpp:17:0,
                 from /usr/include/boost/mpl/aux_/contains_impl.hpp:20,
                 from /usr/include/boost/mpl/contains.hpp:20,
                 from /usr/include/boost/math/policies/policy.hpp:10,
                 from /usr/include/boost/math/policies/error_handling.hpp:21,
                 from /usr/include/boost/math/special_functions/round.hpp:14,
                 from /opt/ros/melodic/include/ros/time.h:58,
                 from /opt/ros/melodic/include/ros/console.h:39,
                 from /opt/ros/melodic/include/nodelet/nodelet.h:39,
                 from /home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/../include/../include/realsense_node_factory.h:7,
                 from /home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/../include/base_realsense_node.h:6,
                 from /home/kaylee/realsense_ws/src/realsense-ros/realsense2_camera/src/base_realsense_node.cpp:1:
/usr/include/boost/mpl/find_if.hpp:32:8: note:   ‘boost::mpl::find_if’
 struct find_if
        ^~~~~~~
realsense-ros/realsense2_camera/CMakeFiles/realsense2_camera.dir/build.make:86: recipe for target 'realsense-ros/realsense2_camera/CMakeFiles/realsense2_camera.dir/src/base_realsense_node.cpp.o' failed
make[2]: *** [realsense-ros/realsense2_camera/CMakeFiles/realsense2_camera.dir/src/base_realsense_node.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:879: recipe for target 'realsense-ros/realsense2_camera/CMakeFiles/realsense2_camera.dir/all' failed
make[1]: *** [realsense-ros/realsense2_camera/CMakeFiles/realsense2_camera.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make install -j4 -l4" failed
[ERROR] Failed to build Realsense ROS Wrapper.
[ERROR] Interbotix Installation Failed!

__
It would be great if you could let me know a fix for this. Is there anything I need to download?

Robot Model

vx300s

Operating System

Ubuntu 18.04, Ubuntu 20.04

ROS Distro

ROS1 Melodic, ROS1 Noetic

Steps To Reproduce

No response

Relevant log output

No response

Anything Else

No response

[Question]: Python support for Gazebo

Question

Hi, I wanted to ask if there is a way to run the python demos for simulating the robot in Gazebo too?

Robot Model

px100

Operating System

Ubuntu 20.04

ROS Version

ROS1 Noetic

Anything Else

No response

[Question]: Where do I put a python script file in order to execute it?

Question

So I am now able to send position commands to my gazebo simulated rx150, I would like to send position commands via a python script now. I wrote the script, and execute it in the terminal.

input to terminal:
rosrun rx150_control main.py

output:
[INFO] [1660247577.909809, 0.000000]: 1.0

but the simulated robot does not act on the command.

Is my script in the wrong location of the file tree?

Robot Model

rx150

Operating System

Ubuntu 20.04

ROS Version

ROS1 Noetic

Anything Else

No response

[Question]: Interbotix_Xsarm_Perception

Question

Hello team Trossen Robotics,

I hope you are doing well. My name is Lazaro Couso and I am a student from the University of Florida doing a research project using your interbotix widow arm. I would appreciate it if you guys can help to set up the interbotix_xsarm perception package so I can launch it using this command: "roslaunch interbotix_​xsarm_perception xsarm_perception.launch robot_model:=wx250s" as one of your engineer explains the use of this command in this video, https://youtu.be/UesfMYM4qcc, at time 1:04.

When I installed the X-Series Arm Ros using the installation process from your docs, I noticed that in the directory build/interbotix_ros_manipulator/interbotix_ros_xsarms/, there is no interbotix_​xsarm_perception package. Because of this, I am not able to follow along in the tutorial video shared above.

Please let me know what I can do about this,

Lazaro Couso

Robot Model

wx250s

Operating System

Ubuntu 20.04

Anything Else

No response

[Question]: Improving Accuracy During Pose Execution

Question

Hi,

I am trying to execute different poses with MoveIt which require very high accuracy. I custom computed the coordinates and quaternions for the pose but during execution, the pose achieved is not as high as I need it to be. I tried setting the MoveIt goal tolerance as low as possible but it doesn't make a difference. I noticed that the accuracy is very high in the simulation, but less so in real life so I believe the issue is due to the robot. I am using a WX250 5 DOF. Do you have any suggestions?

Robot Model

WX250

Operating System

Ubuntu 18.04

Anything Else

No response

[Question]: The install instruction for galactic wrapper

Question

Hi,

Is there an install instruction for the galactic wrapper?
I have tried to use colcon build for the interbotix_ros_core, interbotix_ros_manipulators, and interbotix_ros_toolboxes, but that was not working.

Thanks in advance!
Min

Robot Model

wx250 6DOF

Operating System

Ubuntu20.04

Anything Else

No response

[Bug]: Position-only-kinematics

What happened?

The lma_kinematics plugin seems to (almost?) always fail when attempting to do position-only kinematics.

Robot Model

px100

Operating System

Ubuntu 20.04

Steps To Reproduce

  1. Launch the px100 with moveit and the fake node
  2. Use moveit to plan to a position target of (0.2, 0, 0.19). This will fail
  3. Use moveit to plan to a pose target of (0.2, 0, 0.19) (0, 0, 0, 1). This will succeed
  4. Editing kinematics.yaml and either
    1. Setting position_only_ik: true for the lma solver makes this work.
    2. Using the kdl_kinematics_solver rather than lma also works

Relevant log output

No response

Anything Else

A comment in kinematics.yaml says that "position-only-ik and orientation-only-ik work automatically for the LMA plugin".
This does not seem to be true in my experience: adding position_only_ik: true seems to fix the issue.

[Bug]: 2 motors detected but other 3 not detected

What happened?

Hi,

Using the Dynamixel Wizard 2.0 Tool, I am able to detect 2 motors of XL430-W250 (ID 1 & 5 - firmware v46) but unable to detect other 3 motors (on firmware v45 - which I could read earlier when they were working fine). I tried updating the firmware and the firmware installation failed each time for motor IDs 2, 3 & 4.

Any help or support on this will be appreciated. Thanks!

Robot Model

px100

Operating System

Ubuntu 20.04
ROS Noetic

Steps To Reproduce

Open Dynamixel Wizard 2.0 Tool
Scan for Protocol 2.0 on ttyUSB0 port and 1000000 bps baudrate for IDs 1-252.

Relevant log output

No response

Anything Else

No response

[Bug]: Cannot connect to robot

What happened?

I followed the installation instructions, but when I connect the USB cable to my computer, there is nothing to indicate that the connection has been detected, no change in /dev and no log in dmesg. This command returns nothing: ls /dev | grep ttyDXL

When I powered the robot, a red light on each motor flashed once, I am not sure if this is expected.

I also installed Dynamixel wizard and the scan doesn't return any results.

Any ideas what could be wrong?

Robot Model

Rx150

Operating System

Ubuntu 20.04

ROS Distro

ROS1 Noetic

Steps To Reproduce

No response

Relevant log output

No response

Anything Else

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.