ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Choppy motion of ROS controlled yaskawa robot

asked 2021-01-27 10:18:44 -0500

baklouti-s gravatar image

updated 2022-05-28 16:55:02 -0500

lucasw gravatar image

Hello, I am trying to manipulate a GP8 yaskawa robot through motoplus. My work is based on Motoman reperotory. The communication with the robot is started with robot_interface_streaming_gp8.launch of package motoman_gp8_support. I have no problem with the communicating my computer with robot.

Every time I send a new trajectory goal, the real robot starts moving. However, its motion is not continuous. It decelerates at some points and makes some stops before achieving goal. An finally, it acheaves the desired goal.

I looked into the motoman driver wiki. It was mentioned that " The interface does provide some low-level filtering, however. Sudden stops or breaks in the trajectory stream result in smooth deceleration on the physical robot hardware. "

More information:

ROS version: ROS Melodic

Computer operation system: Ubuntu 18.04.5 LTS

motoman git: kinetic-devel branch

Controller: yrc1000

Installation MotoROS: Yaskawa did it for me.

Start command:

roslaunch motoman_gp8_support robot_interface_streaming_gp8.launch robot_ip:=*. *. * .*  controller:=yrc1000

Then I run a ROS node which publishes my two-point trajectory into "/joint_trajectory_action topic".

Trajectory generation: I send a goal trajectory of type control_msgs::FollowJointTrajectoryGoal. It is composed of two points whose velocities are zeros. This goal is sent to the "/joint_trajectory_action" topic. First trajectory point corresponds to the actual behaviour of the robot. It is got from /joint_states topic. Second point is defined by the user respecting the acceptable range limits. Typically, I send the second point using rqt_joint_trajectory_controller

Connection: The controller is connected to the computer by ethernet.

I need to know please the cause of the motion discontinuity. Can it be done because of the trajectory non-filtering before sending it to action topic? If yess, how can I filter a trajectory of type control_msgs::FollowJointTrajectoryGoal?? Are there some ROS filters for control_msgs::FollowJointTrajectoryGoal?

According to you, is there another cause of the choppy motion I am getting?

I am so thankful for your help and advices.

edit retag flag offensive close merge delete

Comments

I believe we'd have an easier time figuring this out if you could post on the issue tracker about this.

Please include relevant details, such as:

  • which controller do you have
  • version of the system software
  • how you've installed MotoROS (did you do it, did Yaskawa do it for you)
  • which version of MotoROS you are using
  • how you start everything (ie: which .launch files)
  • how you are generating your trajectories
  • show an example trajectory you're submitting as a goal to the driver
  • capture the network traffic between your ROS PC (the one running motoman_driver) and the Yaskawa controller (use Wireshark for this)
gvdhoorn gravatar image gvdhoorn  ( 2021-01-27 11:56:44 -0500 )edit

Finally: please mention you've posted on ROS Answers first in your issue.

And post a comment here with a link to your issue on the issue tracker.

That way we keep things connected.

gvdhoorn gravatar image gvdhoorn  ( 2021-01-27 11:57:18 -0500 )edit

I updated my subject. Thank you

baklouti-s gravatar image baklouti-s  ( 2021-01-28 02:33:19 -0500 )edit

Where is your post on the ros-industrial/motoman issue tracker? I don't see it.

gvdhoorn gravatar image gvdhoorn  ( 2021-01-28 02:42:44 -0500 )edit
1

Trajectory generation: I send a goal trajectory of type control_msgs::FollowJointTrajectoryGoal. It is composed of two points whose velocities are zeros. This goal is sent to the "/joint_trajectory_action" topic. First trajectory point corresponds to the actual behaviour of the robot. It is got from /joint_states topic. Second point is defined by the user respecting the acceptable range limits.

please don't describe your trajectory.

Copy-paste the message which is sent to the driver.

Typically, I send the second point using rqt_joint_trajectory_controller

Creating trajectories using code will be much more reproducible. The rqt_joint_trajectory_controller is not a good testing tool, nor a good way to control a robot deterministically.

Then I run a ROS node which publishes my two-point trajectory into "/joint_trajectory_action topic".

if you have a ROS node, show us the code.

But again: please do this on ros-industrial/motoman, not here.

gvdhoorn gravatar image gvdhoorn  ( 2021-01-28 02:44:32 -0500 )edit

Why did you delete your question?

gvdhoorn gravatar image gvdhoorn  ( 2021-01-28 11:23:47 -0500 )edit

Have you solved your problem?

gvdhoorn gravatar image gvdhoorn  ( 2021-01-29 10:15:27 -0500 )edit

This will be my last comment on your question.

I'd like to make sure you've solved your problem, even if it turned out to be not a problem, but something misunderstood for instance.

I'd appreciate it if you could post a comment here to confirm things are now working for you.

gvdhoorn gravatar image gvdhoorn  ( 2021-02-02 02:34:23 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-02-02 02:42:31 -0500

baklouti-s gravatar image

@gvdhoorn Thank you for your interest for my subject. The main problem was the use of rqt_joint_trajectory_controller , which sends non continuous trajectory points.

edit flag offensive delete link more

Comments

Thanks for reporting back.

gvdhoorn gravatar image gvdhoorn  ( 2021-02-02 02:47:20 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-01-27 10:17:13 -0500

Seen: 398 times

Last updated: May 28 '22