Quality Assurance for each component

We have created a UI to be able to check that the components that are using the HRIM interfaces work properly with the ROS 2 implementation. This interface is in the hrim_qa package.

For running the UI you need to type in a terminal

source /opt/ros/dashing/setup.bash
source ~/hrim_ws/install/setup.bash #or the workspace that you are using
ros2 run hrim_qa interface.py

You will see an interface like this:

Remember that you need to setup your ROS_DOMAIN_ID.

For testing this interface you need to have a simulated or a real robot running. In the following section we will explain how to use it with a simulated robot.

Using the following command we will launch the simulation. We are going to summarize the commands but you can find more information in this link.

source ~/ros2_mara_ws/install/setup.bash
ros2 launch mara_gazebo mara.launch.py --urdf mara_robot_gripper_140_no_table

You will see something like this:

If we click on the refresh button or we try to open the node selector we will see the available and compatible nodes.

When a new node is selected if a component is selected, a number of checks are done in the backend of the application. In case that the nodes running in the selected ROS_DOMAIN_ID is not using the right HRIM interface the node will not appear in the interface.

The interface allows us to try and test servomotor and grippers. In the following section we will explain how to proceed with this interface.

This interface shows several dialogues. At the bottom of the interface we can see a tabnab that allows us to visualize information about the ID, State, Power or 3D

  • ID: This tab will shows us information about the type of device (actuator, sensor, cognition, etc), the name of the device (gripper, servo, etc), the HRIM version of the component and the H-ROS version.
  • State: It shows relevant information about the device (position, rotation, etc).
  • Power: it shows data about the voltage, power consumption and current consumption.
  • 3D: It will open RVIZ2 to show the 3D models.

When we select one of the available motors in the list. We will show something like this:

In this case we are simulating MARA, which has three servomotors with two axis. By default the interface doesn't allow us to move any axis, we need to select one of the axis buttons to be able to move the slider and operate the robot. Then we have two option:

  • Sending the goal one by one clicking in the botton "send order"
  • Activate the button "Stream goal" which allows us to move the robot with the slider.

The picture bellow shows that we are streaming goals to axis 1 and axis 2.

When we select one of the available grippers in the list. We will show something like this:

This interface allows us to test if a gripper is compliant with the HRIM interfaces. Grippers are able to change the position or rotation. We need to select which one of these two variable we want to change it and then we need to click on the button "Send order" to call the service.

In the picture above we demonstrate that we are changing the position of the gripper and the interface also shows that the gripper is reaching this position.