0
$\begingroup$

I am currently working on a project where I want to control an ABB robot IRB 2600 via ROS2 Humble. I am using a PC with the operating system Ubuntu 22.04. I came across the PickNik Robotics ABB ROS2 Driver Release on the Internet and followed the installation instructions.

Here is the Link: https://github.com/PickNikRobotics/abb_ros2

I have adapted the robot description and configuration files to my robot model. I then tried to connect to the robot and start the controllers with the following command:

ros2 launch abb_bringup abb_control.launch.py description_package:=abb_irb2600_support description_file:=irb2600.xacro launch_rviz:=false moveit_config_package:=abb_irb2600_moveit_config use_fake_hardware:=false

In the following code block you can see that the robot controller is found, but no connection to the robot can be established. I do not know how to solve this problem. Maybe someone already worked with this software and can help me.

nihe@ws-autom-03:~$ source /opt/ros/humble/setup.bash
nihe@ws-autom-03:~$ source /var/Airbus/dev_ws/install/setup.bash
nihe@ws-autom-03:~$ ros2 launch ros2srrc_irb2600_bringup irb2600_bringup.launch.py
[INFO] [launch]: All log files can be found below /home/nihe/.ros/log/2023-09-20-15-37-19-339069-ws-autom-03-41673
[INFO] [launch]: Default logging verbosity is set to INFO

===== ABB IRB-2600: Robot Bringup (ros2srrc_irb2600_bringup) =====
Robot configuration:

- IP Address:
  Please input the IP Address of the Robot: 10.83.141.60

- Cell layout:
     + Option N1: ABB IRB-2600 alone.
     + Option N2: Cranfield University: IA Lab enclosure.
     + Option N3: Pick and Place use-case.
  Please select: 1

- End-effector:
     + Option N1: No end-effector.
     + Option N2: Schunk EGP-64 parallel gripper.
  Please select: 1

[INFO] [ros2_control_node-1]: process started with pid [41679]
[INFO] [robot_state_publisher-2]: process started with pid [41681]
[INFO] [static_transform_publisher-3]: process started with pid [41683]
[INFO] [spawner-4]: process started with pid [41685]
[INFO] [spawner-5]: process started with pid [41687]
[INFO] [rws_client-6]: process started with pid [41689]
[static_transform_publisher-3] [WARN] [1695217060.038130787] []: Old-style arguments are deprecated; see --help for new-style arguments
[static_transform_publisher-3] [INFO] [1695217060.044351888] [static_transform_publisher]: Spinning until stopped - publishing transform
[static_transform_publisher-3] translation: ('0.000000', '0.000000', '0.000000')
[static_transform_publisher-3] rotation: ('0.000000', '0.000000', '0.000000', '1.000000')
[static_transform_publisher-3] from 'world' to 'base_link'
[robot_state_publisher-2] [INFO] [1695217060.046552659] [robot_state_publisher]: got segment base
[robot_state_publisher-2] [INFO] [1695217060.046595124] [robot_state_publisher]: got segment base_link
[robot_state_publisher-2] [INFO] [1695217060.046598763] [robot_state_publisher]: got segment flange
[robot_state_publisher-2] [INFO] [1695217060.046601146] [robot_state_publisher]: got segment link_1
[robot_state_publisher-2] [INFO] [1695217060.046602966] [robot_state_publisher]: got segment link_2
[robot_state_publisher-2] [INFO] [1695217060.046604773] [robot_state_publisher]: got segment link_3
[robot_state_publisher-2] [INFO] [1695217060.046606572] [robot_state_publisher]: got segment link_4
[robot_state_publisher-2] [INFO] [1695217060.046608293] [robot_state_publisher]: got segment link_5
[robot_state_publisher-2] [INFO] [1695217060.046610030] [robot_state_publisher]: got segment link_6
[robot_state_publisher-2] [INFO] [1695217060.046611891] [robot_state_publisher]: got segment tool0
[robot_state_publisher-2] [INFO] [1695217060.046613805] [robot_state_publisher]: got segment world
[ros2_control_node-1] [INFO] [1695217060.049850046] [resource_manager]: Loading hardware 'ABBMultiInterfaceHardware' 
[ros2_control_node-1] [INFO] [1695217060.053529694] [resource_manager]: Initialize hardware 'ABBMultiInterfaceHardware' 
[ros2_control_node-1] [INFO] [1695217060.215627067] [ABBSystemHardware]: Robot controller description:
[ros2_control_node-1] ============================================================
[ros2_control_node-1] = Summary of robot controller at '10.83.141.60:80'
[ros2_control_node-1] ============================================================
[ros2_control_node-1] # General Information:
[ros2_control_node-1]   |- RobotWare version: 6.13.01.00
[ros2_control_node-1]   |- System name: 2600-117066
[ros2_control_node-1]   |- System type: Real Controller
[ros2_control_node-1]   |- Options:
[ros2_control_node-1]      |- RobotWare Base
[ros2_control_node-1]      |- 888-2 PROFINET Controller/Device
[ros2_control_node-1]      |- 997-1 PROFIsafe F-Device
[ros2_control_node-1]      |- 996-1 Safety Module
[ros2_control_node-1]      |- 988-1 RW Add-In Prepared
[ros2_control_node-1]      |- 608-1 World Zones
[ros2_control_node-1]      |- 611-1 Path Recovery
[ros2_control_node-1]      |- 613-1 Collision Detection
[ros2_control_node-1]      |- 616-1 PC Interface
[ros2_control_node-1]      |- 617-1 FlexPendant Interface
[ros2_control_node-1]      |- 623-1 Multitasking
[ros2_control_node-1]      |- 689-1 Externally Guided Motion (EGM)
[ros2_control_node-1]      |- UDPUC Driver
[ros2_control_node-1]      |- 1125-2 SafeMove Pro
[ros2_control_node-1]      |- Motor Commutation
[ros2_control_node-1]      |- Service Info System
[ros2_control_node-1]      |- Pendelum Calibration
[ros2_control_node-1]      |- Drive System IRB 2600/390/4400/6400R
[ros2_control_node-1]      |- IRB 2600-20/1.65 Type B
[ros2_control_node-1]      |- Axis Calibration
[ros2_control_node-1] 
[ros2_control_node-1] # Mechanical Units:
[ros2_control_node-1]   |- Unit: ROB_1
[ros2_control_node-1] 
[ros2_control_node-1] # Mechanical Unit Groups:
[ros2_control_node-1]   |- N/A (only for MultiMove systems)
[ros2_control_node-1] ============================================================
[ros2_control_node-1] [INFO] [1695217060.215686877] [ABBSystemHardware]: Configuring EGM interface...
[ros2_control_node-1] [INFO] [1695217060.215868184] [ABBSystemHardware]: Configuring EGM for mechanical unit group  on port 6511
[ros2_control_node-1] [INFO] [1695217060.222640339] [resource_manager]: Successful initialization of hardware 'ABBMultiInterfaceHardware'
[ros2_control_node-1] [INFO] [1695217060.222969956] [resource_manager]: 'configure' hardware 'ABBMultiInterfaceHardware' 
[ros2_control_node-1] [INFO] [1695217060.222985511] [resource_manager]: Successful 'configure' of hardware 'ABBMultiInterfaceHardware'
[ros2_control_node-1] [INFO] [1695217060.223000702] [resource_manager]: 'activate' hardware 'ABBMultiInterfaceHardware' 
[ros2_control_node-1] [INFO] [1695217060.223008084] [ABBSystemHardware]: Connecting to robot...
[rws_client-6] [INFO] [1695217060.224645263] [rws_client]: RWS client services initialized!
[rws_client-6] [INFO] [1695217060.328933511] [rws_client]: RWS state publisher initialized!
[ros2_control_node-1] [INFO] [1695217060.723230666] [ABBSystemHardware]: Not connected to robot...
[ros2_control_node-1] [INFO] [1695217061.723624846] [ABBSystemHardware]: Not connected to robot...
[spawner-5] [INFO] [1695217062.194168494] [spawner_joint_trajectory_controller]: Waiting for '/controller_manager' services to be available
[spawner-4] [INFO] [1695217062.194262892] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' services to be available
[ros2_control_node-1] [INFO] [1695217062.724055181] [ABBSystemHardware]: Not connected to robot...
[ros2_control_node-1] [INFO] [1695217063.724514652] [ABBSystemHardware]: Not connected to robot...
[spawner-5] [INFO] [1695217064.206666214] [spawner_joint_trajectory_controller]: Waiting for '/controller_manager' services to be available
[spawner-4] [INFO] [1695217064.206822352] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' services to be available
[ros2_control_node-1] [INFO] [1695217064.725035900] [ABBSystemHardware]: Not connected to robot...
[ros2_control_node-1] [INFO] [1695217065.725563891] [ABBSystemHardware]: Not connected to robot...
[spawner-4] [INFO] [1695217066.218913375] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' services to be available
[spawner-5] [INFO] [1695217066.218926162] [spawner_joint_trajectory_controller]: Waiting for '/controller_manager' services to be available
[ros2_control_node-1] [INFO] [1695217066.726038631] [ABBSystemHardware]: Not connected to robot...
[ros2_control_node-1] [INFO] [1695217067.726593491] [ABBSystemHardware]: Not connected to robot...
[spawner-4] [INFO] [1695217068.231779535] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' services to be available
[spawner-5] [INFO] [1695217068.231825933] [spawner_joint_trajectory_controller]: Waiting for '/controller_manager' services to be available
[ros2_control_node-1] [INFO] [1695217068.727029265] [ABBSystemHardware]: Not connected to robot...
[ros2_control_node-1] [INFO] [1695217069.727507168] [ABBSystemHardware]: Not connected to robot...
[spawner-4] [ERROR] [1695217070.244324257] [spawner_joint_state_broadcaster]: Controller manager not available
[spawner-5] [ERROR] [1695217070.244537101] [spawner_joint_trajectory_controller]: Controller manager not available
[ERROR] [spawner-4]: process has died [pid 41685, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner joint_state_broadcaster --controller-manager /controller_manager --ros-args'].
[ERROR] [spawner-5]: process has died [pid 41687, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner joint_trajectory_controller -c /controller_manager --ros-args'].
$\endgroup$
3
  • $\begingroup$ Please update this question with the error output in text, formatted as a code block, as soon as you get access to this PC again. This will allow other people to more easily find and answer your question. $\endgroup$
    – cst0
    Sep 6 at 14:52
  • $\begingroup$ You seem to have two accounts: 1 and 2. You can merge the accounts, see this answer. It is rather irregular to gain reputation from suggesting edits to your own posts (as well as posting answers) from a different account... $\endgroup$ Sep 21 at 14:47
  • $\begingroup$ It looks like you may have accidentally created two accounts, Nils Heidemann. Stack Exchange only allows an individual to actively use one account, so please follow the instructions at I accidentally created two accounts; how do I merge them? Note that moderators can't merge accounts for you, but may delete accounts they believe to be sock puppets. $\endgroup$
    – Chuck
    Sep 24 at 12:24

2 Answers 2

1
$\begingroup$

I was able to solve this issue by myself. The problem was a missing RAPID module on the real robot controller. It is called TRob1Main.mod and is included in PickNiks Github repository. It enables the EGM connection to the ROS2-PC. You can load in the file with RobotStudio and execute it with the Flex Pendant.

$\endgroup$
0
$\begingroup$

Per the source code you've linked, the "Not connected to robot" text is logged when the "EGM Manager" does not receive a message from the robot after 500ms.

Per the setup documentation, you will need to set up some network information for the RobotStudio simulation. Some things to check:

  • Is the RWS port correct?
  • Can the RWS IP be pinged, which would show that the IP is correct and accessible?
  • Do you have any firewalls blocking these ports?
  • Have you launched the simulation?

It seems that this may all be correct, because the logging output is able to provide a summary of the robot (which it can probably only do when connected). With all that in mind, it's possible that there is a remaining chunk of code that is yet to come up. This may be made available by the next launch command specified in the documentation:

ros2 launch abb_bringup abb_moveit.launch.py robot_xacro_file:=irb1200_5_90.xacro support_package:=abb_irb1200_support moveit_config_package:=abb_irb1200_5_90_moveit_config moveit_config_file:=abb_irb1200_5_90.srdf.xacro

You may also be missing package dependencies, which are causing connections to fail silently in the background. Again from the docs, make sure that you have all the appropriate dependencies, that you can build all packages with no errors, and that you can view the robot to verify the build:

sudo apt update
sudo apt dist-upgrade
rosdep update
cd src
vcs import < abb_ros2/abb.repos
rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd <COLCON_WORKSPACE>
colcon build

ros2 launch abb_irb1200_support view_robot.launch.py
$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.