Skip to content

Point streaming and multiple robot groups #586

Description

@riv-mjohnson

Context:

I am taking over from @rr-dave, trying to set up our GP25 and 2-axis positioner with a YRC1000 controller as described in #585.

I have fixed the various MoveIt connections which were causing most of the issues in #585, such that we don't need #259 or #488.

We can now control the GP25 and positioner to move along independent trajectories. (We are only interested in moving one and then the other for now; we will hopefully have migrated to ROS2 by the time we need simultaneous movement).

The problem:

I am now working on getting point streaming working for systems with multiple robot groups. We only need point streaming for the robot, we do not need point streaming for the positioner at this stage.

For consistency, I have updated our other robots (a GP4 and a GP8, both with no Yaskawa external axes) to use a multi-group setup (with only one group on the controller).

The point streaming we are using is #37 (plus some rebasing and other (hopefully unrelated) changes).

I tried adding point streaming to multi-group setups by adding

sub_joint_command = this->node_.subscribe(
            ns_str + "/" + name_str + "/joint_command", 0, &JointTrajectoryInterface::jointCommandCB, this);

this->sub_joint_commands_[robot_id] = sub_joint_command;

to JointTrajectoryInterface::init(..., robot_groups, ...), to mirror that in JointTrajectoryInterface::init(..., joint_names, ...), but point streaming fails immediately with the error

Aborting POINT STREAM operation.  Failed to send point (#47): Invalid message (3) : Invalid robot ID (3004)

My questions:

  • Is generalising point streaming from On-the-fly point streaming and Cartesian jog #37 to multi-group systems a sensible thing to try?
  • Where should I look to debug the robot ID problem? I assume this is a property of SimpleMessage, but I'm not sure where to set it or what to set it to.
  • Is there a better way of approaching the problem of point streaming to a GP25 and also being able to execute trajectories on both the GP25 and the two-axis positioner?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions