0
$\begingroup$

Rosanswers logo

Hi guys,

I am working with an ABB IRB2600 with an IRC5 controller and ROS kinetic. I created a moveit_config package for the robot using the setup_assistant and the support package from the abb_experimental package. My launch file is the demo.launch in which I removed the joint_state_publisher and set "fake execution" as false for the move_group.launch. Using the robot_interface_download_irb2600_12_165.launch I get all the /joint_states from the real robot and I can see the robot moving around in rviz when I jog it in real live. When I plan and execute a trajectory using moveit I get no movement from the robot. It is set to automatic mode and the motors are on.

I found the following post https://answers.ros.org/question/199400/solved-how-do-we-transmit-trajectories-to-our-abb-irb-140-using-the-abb-package/ but I cant figure out how to get moveit to send a trajectory to joint_trajectory_action/goal topic.

I get feedback_states like described here (3.1) http://wiki.ros.org/Industrial/Tutorials/Create_a_MoveIt_Pkg_for_an_Industrial_Robot but there are no new messages being published to joint_path_command.

My questions are: How do I get the trajectories generated by moveit to run on my robot? What is the interface between the two sides (moveit/robot)? Do I have to write it by myself or is there already a solution out there?

Thanks in advance for your answers, I've been trying to figure this out for some days now and I am just moving in circles!


Originally posted by Shawn on ROS Answers with karma: 18 on 2019-10-17

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

In short: you'll want to create a top-level .launch file that starts all the required nodes.

The tutorial you linked (Create a MoveIt Package for an Industrial Robot) should show you how to perform all the steps, including creating the top-level moveit_planning_execution.launch.

It's probably easiest to base one for your 2600 on another that already exists, such as this one for an IRB 6640.

Important parts (update references to the 6640 to your 2600 of course):

<rosparam command="load" file="$(find abb_irb6640_support)/config/joint_names_irb6640_185_280.yaml" />

make sure to load the joint_names, otherwise the driver can't map data to your ROS joints.

and:

<group if="$(arg sim)">
      <include file="$(find industrial_robot_simulator)/launch/robot_interface_simulator.launch" />
</group>
<group unless="$(arg sim)">
  <include file="$(find abb_irb6640_support)/launch/robot_interface_download_irb6640_185_280.launch" >
    <arg name="robot_ip" value="$(arg robot_ip)"/>
  </include>
</group>

load either the real driver of the industrial_robot_simulator. The simulator is of course optional, but is always a good idea to check whether you've correctly configured everything.

This top-level .launch file is only one part that you'd need to add (but again: the tutorial should show you how to do that). Other things that need to be added:

  • a list of controllers that MoveIt should use (typically called controllers.yaml in the config folder (here for the IRB 6640))
  • updating the ROBOTNAME_moveit_controller_manager.launch.xml to actually load the controllers.yaml file
  • adding the appropriate (exec_) dependencies on industrial_robot_simulator and the abb_irb2600_support package to your package manifest

Recent versions of the MoveIt Setup Assistant add some of these files and content in somewhat different places. The layout used in ros-industrial/abb and ros-industrial/abb_experimental works well though, so I would recommend you follow that for your 2600 as well. This may mean removing some of the files the MSA adds, but things should still work. When in doubt, check the MoveIt configuration packages in either of the ABB repositories.


Originally posted by gvdhoorn with karma: 86574 on 2019-10-18

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Shawn on 2019-10-23:
I set up everything according to the tutorials and it turned out I forgot to configure one of my launch files. To get the robot moving in automatic mode I also had to run the T_ROB1 program on the robot controller. Thank you very much for your answer!

Comment by gvdhoorn on 2019-10-23:\

To get the robot moving in automatic mode I also had to run the T_ROB1 program on the robot controller.

have you seen the Running the ROS Server tutorial? Specifically the Robot Motion Task - Running in AUTO mode section? It states:

  • Press the PLAY button to run the program

Comment by Shawn on 2019-10-23:
Yeah, that is how I figured out I also had to run the program. Somebody else set up the ROS Server on the controller and it was not obvious to me that I had to do anything besides setting the mode to automatic and enable the motors.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.