From d4674d889b739f5ab790a4e1ab030cf45e330de0 Mon Sep 17 00:00:00 2001 From: Stephanie Eng Date: Tue, 14 Mar 2023 16:55:51 -0400 Subject: [PATCH] ROS2 -> ROS 2 (#49) --- README.md | 4 ++-- .../abb_hardware_interface.xml | 2 +- abb_ros2/package.xml | 2 +- .../abb_rws_client/rws_service_provider_ros.hpp | 2 +- .../abb_rws_client/rws_state_publisher_ros.hpp | 2 +- docs/NetworkingConfiguration.md | 12 ++++++------ docs/README.md | 16 ++++++++-------- docs/RobotStudioSetup.md | 10 +++++----- docs/Troubleshooting.md | 10 +++++----- 9 files changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 1f9ee58..2672240 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -This is a meta-package containing everything to run an ABB robot or simulation with ROS2. +This is a meta-package containing everything to run an ABB robot or simulation with ROS 2. - `abb_bringup`: Launch files and ros2_control config files that are generic to many types of ABB robots. - `abb_hardware_interface`: A ros2_control hardware interface using abb_libegm. @@ -15,7 +15,7 @@ There are three ways to use this package: - With an actual, physical ABB robot -- With ROS2 simulating the robot controllers +- With ROS 2 simulating the robot controllers - With an ABB RobotStudio simulation. Requires 2 PC's (one Windows, one Linux) diff --git a/abb_hardware_interface/abb_hardware_interface.xml b/abb_hardware_interface/abb_hardware_interface.xml index 594564c..bf253cf 100644 --- a/abb_hardware_interface/abb_hardware_interface.xml +++ b/abb_hardware_interface/abb_hardware_interface.xml @@ -3,7 +3,7 @@ type="abb_hardware_interface::ABBSystemHardware" base_class_type="hardware_interface::SystemInterface"> - ROS2 Control ABB driver. + ROS 2 Control ABB driver. diff --git a/abb_ros2/package.xml b/abb_ros2/package.xml index 3716ea9..0ad1b4d 100644 --- a/abb_ros2/package.xml +++ b/abb_ros2/package.xml @@ -3,7 +3,7 @@ abb_ros2 0.0.0 - Meta package containing everything to run an ABB robot or simulation with ROS2 + Meta package containing everything to run an ABB robot or simulation with ROS 2 Stephanie Eng Andy Zelenak diff --git a/abb_rws_client/include/abb_rws_client/rws_service_provider_ros.hpp b/abb_rws_client/include/abb_rws_client/rws_service_provider_ros.hpp index dc79c2b..ea5be00 100644 --- a/abb_rws_client/include/abb_rws_client/rws_service_provider_ros.hpp +++ b/abb_rws_client/include/abb_rws_client/rws_service_provider_ros.hpp @@ -83,7 +83,7 @@ class RWSServiceProviderROS /** * \brief Creates a services server. * - * \param node ROS2 node. + * \param node ROS 2 node. * \param robot_ip IP address for the robot controller's RWS server. * \param robot_poty Port number for the robot controller's RWS server. */ diff --git a/abb_rws_client/include/abb_rws_client/rws_state_publisher_ros.hpp b/abb_rws_client/include/abb_rws_client/rws_state_publisher_ros.hpp index 7a8a311..c1ffc22 100644 --- a/abb_rws_client/include/abb_rws_client/rws_state_publisher_ros.hpp +++ b/abb_rws_client/include/abb_rws_client/rws_state_publisher_ros.hpp @@ -60,7 +60,7 @@ class RWSStatePublisherROS /** * \brief Creates a state publisher. * - * \param node ROS2 node. + * \param node ROS 2 node. * \param robot_ip IP address for the robot controller's RWS server. * \param robot_poty Port number for the robot controller's RWS server. */ diff --git a/docs/NetworkingConfiguration.md b/docs/NetworkingConfiguration.md index 8f62f81..7ce366e 100644 --- a/docs/NetworkingConfiguration.md +++ b/docs/NetworkingConfiguration.md @@ -1,6 +1,6 @@ # Networking Configuration -This document covers various options to configure the network connection between the ROS2 computer and the RWS server. For general driver setup instructions, see [the README](./README.md). +This document covers various options to configure the network connection between the ROS 2 computer and the RWS server. For general driver setup instructions, see [the README](./README.md). ## Changing the RWS port @@ -24,14 +24,14 @@ See [this forum post](https://forums.robotstudio.com/discussion/12177/how-to-cha ## Adding the local computer to the virtual controller whitelist -To access the virtual controller with RWS from a networked ROS2 computer, you will need to whitelist the ROS2 computer's IP on the RobotStudio computer. Without this whitelist, you will get an RAPI Unidentified Error when trying to access the controller. You can verify this if you try to navigate to `:80` from the ROS2 computer. The default credentials are: +To access the virtual controller with RWS from a networked ROS 2 computer, you will need to whitelist the ROS 2 computer's IP on the RobotStudio computer. Without this whitelist, you will get an RAPI Unidentified Error when trying to access the controller. You can verify this if you try to navigate to `:80` from the ROS 2 computer. The default credentials are: ``` Username: Default User Password: robotics ``` -To whitelist the ROS2 computer's IP, on the RobotStudio computer, navigate to: +To whitelist the ROS 2 computer's IP, on the RobotStudio computer, navigate to: `C:\Users\\AppData\Roaming\ABB Industrial IT\Robotics IT\RobVC\` @@ -48,7 +48,7 @@ Paste the following into`vcconf.xml`: ``` -Change ROS2_COMPUTER_IP to the IP of the ROS2 computer. Up to 10 IP addresses can be whitelisted by adding additional `` lines. Restart RobotStudio after the update. +Change ROS2_COMPUTER_IP to the IP of the ROS 2 computer. Up to 10 IP addresses can be whitelisted by adding additional `` lines. Restart RobotStudio after the update. See [this forum post](https://forums.robotstudio.com/discussion/12082/using-robotwebservices-to-access-a-remote-virtual-controller) for more details. @@ -62,7 +62,7 @@ Start the SSH server by running the following command in PowerShell as an admini ```Start-Service sshd``` -On the ROS2 computer, set up the SSH port forward by typing the following command into the terminal: +On the ROS 2 computer, set up the SSH port forward by typing the following command into the terminal: ```ssh -L :localhost: @``` @@ -73,7 +73,7 @@ On the ROS2 computer, set up the SSH port forward by typing the following comman Enter the Windows login password for the `` account when prompted. -This will allow you to access RWS on the ROS2 computer on `127.0.0.1:`. When launching ROS, use this value for rws_ip: `127.0.0.1`. The full launch command would be: +This will allow you to access RWS on the ROS 2 computer on `127.0.0.1:`. When launching ROS, use this value for rws_ip: `127.0.0.1`. The full launch command would be: ros2 launch abb_bringup abb_control.launch.py description_package:=abb_irb1200_support description_file:=irb1200_5_90.xacro launch_rviz:=false moveit_config_package:=abb_irb1200_5_90_moveit_config use_fake_hardware:=false rws_ip:=127.0.0.1 rws_port:= diff --git a/docs/README.md b/docs/README.md index df94d73..b0e765a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ -# Building the package in ROS2 +# Building the package in ROS 2 -Create a ROS2 workspace per the online tutorial. Clone this package into your workspace's `src` directory. +Create a ROS 2 workspace per the online tutorial. Clone this package into your workspace's `src` directory. Import package dependencies: @@ -20,9 +20,9 @@ Quickly verify the build by launching RViz and viewing the robot: ros2 launch abb_irb1200_support view_robot.launch.py -# Simulating a robot in ROS2 +# Simulating a robot in ROS 2 -For this simulation, ROS2 simulates the robot controllers. RobotStudio or a physical robot are not needed. +For this simulation, ROS 2 simulates the robot controllers. RobotStudio or a physical robot are not needed. ros2 launch abb_bringup abb_control.launch.py description_package:=abb_irb1200_support description_file:=irb1200_5_90.xacro launch_rviz:=false moveit_config_package:=abb_irb1200_5_90_moveit_config use_fake_hardware:=true @@ -34,7 +34,7 @@ After launching the controllers, launch MoveIt: The simulation files are a modified version from the [abb_libegm library](https://github.com/ros-industrial/abb_libegm/issues/18#issuecomment-473262645) with some additional details about setting up EGM. -Running this simulation requires two computers communicating over the network: a Windows computer running RobotStudio, and a ROS2 computer running the driver. +Running this simulation requires two computers communicating over the network: a Windows computer running RobotStudio, and a ROS 2 computer running the driver. ## Packaged Sim @@ -61,12 +61,12 @@ Once the simulation is set up, either via the Pack and Go or by setting up a new Start the controller under the `RAPID` tab by selecting `T_ROB1` (and `T_EXTAXIS` for the external axis example) as the task under `Selected Tasks`, and pressing the `Start` icon on the ribbon. -The simulation will then try to connect with the ROS2 driver every few seconds. Once the connection is established, the simulated robot can be controlled from the ROS2 computer. +The simulation will then try to connect with the ROS 2 driver every few seconds. Once the connection is established, the simulated robot can be controlled from the ROS 2 computer. ![start](images/egm5.png) -## Connecting with ROS2 -Connecting RWS with ROS2 may require some configuration. See [Networking Configuration](./NetworkingConfiguration.md) for more details. +## Connecting with ROS 2 +Connecting RWS with ROS 2 may require some configuration. See [Networking Configuration](./NetworkingConfiguration.md) for more details. The driver reqiures some network information to connect to EGM and RWS. This information is stored in the ros2_control [robot description file](../robot_specific_config/abb_irb1200_support/urdf/irb1200.ros2_control.xacro). Change the following lines as required (below configured for an example not using MultiMove): diff --git a/docs/RobotStudioSetup.md b/docs/RobotStudioSetup.md index ee34a57..0120f0a 100644 --- a/docs/RobotStudioSetup.md +++ b/docs/RobotStudioSetup.md @@ -23,14 +23,14 @@ The following steps will cover how to set up the controller for EGM with a robot ## Controller Configuration -3. Configure the communication settings for the controller to connect with the ROS2 computer. Identify the IP of the ROS2 computer, and the port used for EGM communication. The port is set by the `robotstudio_port` hardware parameter in the robot ros2_control description file. To configure the controller, navigate to the `Controller Tab` --> `Configuration` --> `Communication`. On the right, under `Transmission Protocol` right click and `Add new`. +3. Configure the communication settings for the controller to connect with the ROS 2 computer. Identify the IP of the ROS 2 computer, and the port used for EGM communication. The port is set by the `robotstudio_port` hardware parameter in the robot ros2_control description file. To configure the controller, navigate to the `Controller Tab` --> `Configuration` --> `Communication`. On the right, under `Transmission Protocol` right click and `Add new`. ![communication](images/egm2.png) - Set the name to be `ROB_1` - Set the type to `UDPUC`. If you don't see this option, EGM was not added to the controller. - - Set the Remote Address to be that of the ROS2 computer. In the Pack and Go file, this is set to `169.254.53.52`, but this will likely need to be changed. - - Set the Remote port number to match what ROS2 control driver is expecting. In the sample solution, it is set to `6511`. + - Set the Remote Address to be that of the ROS 2 computer. In the Pack and Go file, this is set to `169.254.53.52`, but this will likely need to be changed. + - Set the Remote port number to match what ROS 2 control driver is expecting. In the sample solution, it is set to `6511`. - Leave the Local port number set to `0` - Press OK at the bottom of the window to confirm the changes @@ -124,8 +124,8 @@ Your Task configuration should look similar to the screenshot below: - Add a new configuration for the external axis. - Set the Transmission Protocol name (`EXTAX` in the example) - Set the type to `UDPUC`. If you don't see this option, EGM was not added to the controller. - - Set the Remote Address to be that of the ROS2 computer. In the Pack and Go file, this is set to `169.254.53.52`, but this will likely need to be changed. - - Set the Remote port number to match what ROS2 control driver is expecting (`6512` in the example). + - Set the Remote Address to be that of the ROS 2 computer. In the Pack and Go file, this is set to `169.254.53.52`, but this will likely need to be changed. + - Set the Remote port number to match what ROS 2 control driver is expecting (`6512` in the example). ![new transmission](images/multimove11.PNG) diff --git a/docs/Troubleshooting.md b/docs/Troubleshooting.md index 08c1271..a03d59e 100644 --- a/docs/Troubleshooting.md +++ b/docs/Troubleshooting.md @@ -2,16 +2,16 @@ ## EGM Connection Issues - Occasionally, when connecting for the first time, you will need to stop the RAPID program and start it again - - The warning message `41822 No data from the UdpUc device[*]` indicates a connection issue between the RobotStudio and the ROS2 computer + - The warning message `41822 No data from the UdpUc device[*]` indicates a connection issue between the RobotStudio and the ROS 2 computer - Check that the communication settings are correct - - Test the connection between the computers by pinging the ROS2 computer from the RobotStudio computer and vice-versa + - Test the connection between the computers by pinging the ROS 2 computer from the RobotStudio computer and vice-versa - Check that the firewall settings on the RobotStudio computer allow communication over UDP on the correct port - - Verify that the ros2_control_node is listening on the correct UDP socket on the ROS2 computer + - Verify that the ros2_control_node is listening on the correct UDP socket on the ROS 2 computer - If using a container, verify that the required port is forwarded correctly - - It may help switch the port by changing both the `robotstudio_port` hardware parameter on the ROS2 control side, and the port number under the `ROB_1` configuration on the RobotStudio side + - It may help switch the port by changing both the `robotstudio_port` hardware parameter on the ROS 2 control side, and the port number under the `ROB_1` configuration on the RobotStudio side ## RWS Connection Issues - Try navigating to `:80?debug=true` in the browser and logging in with the default credentials (user = `Default User`, pw = `robotics`) - - If you don't see a login prompt, the ROS2 computer is not communicating with the RWS server. + - If you don't see a login prompt, the ROS 2 computer is not communicating with the RWS server. - After logging in, if you see `RAPI Unidentified Error`, try [whitelisting the ROS computer's IP](./NetworkingConfiguration.md#adding-the-local-computer-to-the-virtual-controller-whitelist) - A workaround to the whitelisting solution is to [use SSH port forwarding](./NetworkingConfiguration.md#configuring-ssh-port-forwarding)