...
POST No. 2407874
Problems Running the ROS 2 Open Manipulator Controller
2020-05-20 15:42:21 edcepp

Software
• Ubuntu 18.04
• ROS 2 Dashing
• Dynamixel and Open Manipulator resources from github.com/ROBOTIS-GIT see
     http://emanual.robotis.com/docs/en/platform/openmanipulator_x/ros2_setup/#ros-setup
      OpenManipulator-X eManual Section 12.3 "Install ROS 2 Packages"


HW Configuration
• Inspiron 13-5378 Intel Core i5-7200U CPU @ 2.50 GHz
• My Dynamixels are connected to a U2D2 board as illustrated in section 12.4.1.1 of
  the Open Manipulator eManual referenced above.


Tests
• I am able to use the Wizard to set IDs and baud rates using the U2D2 and OpenCR
  under usb-2-dxl
• I installed the processing GUI from section 20 of the eManula and it runs with
  the OpenCR.


TEST 1 Bringing up the Open Manipulator x Controller under ROS 2

TERMINAL 1

$ ros2 launch open_manipulator_x_controller open_manipulator_x_controller.launch.py
[INFO] [launch]: All log files can be found below /home/eepp/.ros/log/2020-05-04-13-48-15-466011-sisters-5894
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [launch.user]: Execute OpenManipulator-X Controller!!
[INFO] [open_manipulator_x_controller-1]: process started with pid [5907]
--- The display output stops here ---

The printout stops without display the following information. See Open Manipulator eManual Section 13.1 "Launch Controller." The U2D2 red, blue and green lights are on. The servos are stiff (they provide physical resistance if I try to turn them). The Dynamixel Wizard runs fine and I was able to change the servo IDs and buad rates.

A ctrl C will result in the following:

^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[open_manipulator_x_controller-1] port_name and baud_rate are set to /dev/ttyUSB0, 1000000
[open_manipulator_x_controller-1] Joint Dynamixel ID : 11, Model Name : XM430-W350
[open_manipulator_x_controller-1] Joint Dynamixel ID : 12, Model Name : XM430-W350
[open_manipulator_x_controller-1] Joint Dynamixel ID : 13, Model Name : XL430-W250
[open_manipulator_x_controller-1] [ERROR] [DynamixelWorkbench] Failed to set time based profile!
[open_manipulator_x_controller-1] [ERROR] Please check your Dynamixel firmware version (v38~)
[open_manipulator_x_controller-1] Joint Dynamixel ID : 14, Model Name : XL430-W250
[open_manipulator_x_controller-1] [ERROR] [DynamixelWorkbench] Failed to set time based profile!
[open_manipulator_x_controller-1] [ERROR] Please check your Dynamixel firmware version (v38~)
[open_manipulator_x_controller-1] Gripper Dynamixel ID : 15, Model Name :XL430-W250
[open_manipulator_x_controller-1] [ERROR] [DynamixelWorkbench] Failed to set Current Based Position Control Mode!
[open_manipulator_x_controller-1] [INFO] [open_manipulator_x_controller]: Succeeded to Initialise OpenManipulator-X Controller
[open_manipulator_x_controller-1] [INFO] [rclcpp]: signal_handler(signal_value=2)
[open_manipulator_x_controller-1] [INFO] [open_manipulator_x_controller]: OpenManipulator-X Controller Terminated
[INFO] [open_manipulator_x_controller-1]: process has finished cleanly [pid 9800]

Problem 1: Why is the output stalled?


TEST 2 Manipulator Description

TERMINAL 2

I don't get the display expected when I try to publish the message specified in Section 13.2.1 of the eManual "Manipulator Description." See output below.

$ ros2 topic pub /open_manipulator_x/option std_msgs/msg/String "data: print_open_manipulator_x_setting"
publisher: beginning loop
publishing #1: std_msgs.msg.String(data='print_open_manipulator_x_setting')

publishing #2: std_msgs.msg.String(data='print_open_manipulator_x_setting')

publishing #3: std_msgs.msg.String(data='print_open_manipulator_x_setting')

publishing #4: std_msgs.msg.String(data='print_open_manipulator_x_setting')

publishing #5: std_msgs.msg.String(data='print_open_manipulator_x_setting')

Problem 2: Manipulator Description application does not provide expected output?


TEST 3 rviz

TERMINAL 2

I entered the following to activate rviz. The display looks good. The virtual Open Manipulator is animated. This is the terminal output I get. See eManual section 13.2.2 "RViz". I included a screenshot

$ ros2 launch open_manipulator_x_description open_manipulator_x_rviz.launch.py use_gui:=true
     [INFO] [launch]: All log files can be found below /home/eepp/.ros/log/2020-05-02-13-52-28-685402-sisters-8185
     [INFO] [launch]: Default logging verbosity is set to INFO
     [INFO] [joint_state_publisher-1]: process started with pid [8198]
     [INFO] [robot_state_publisher-2]: process started with pid [8199]
     [INFO] [rviz2-3]: process started with pid [8200]
     [robot_state_publisher-2] Initialize urdf model from file: /home/eepp/robotis_ws/install/open_manipulator_x_description/share/open_manipulator_x_description/urdf/open_manipulator_x_robot.urdf.xacro
     [robot_state_publisher-2] Parsing robot urdf xml string.
     [robot_state_publisher-2] Error:   Material [orange] has malformed color rgba values: Unable to parse component [${255/255}] to a double (while parsing a color value)
     [robot_state_publisher-2]          at line 90 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [robot_state_publisher-2] Error:   Material [orange] color has no rgba
     [robot_state_publisher-2]          at line 98 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [robot_state_publisher-2] Error:   Material [orange] not defined in file
     [robot_state_publisher-2]          at line 99 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [robot_state_publisher-2] Error:   Material [brown] has malformed color rgba values: Unable to parse component [${222/255}] to a double (while parsing a color value)
     [robot_state_publisher-2]          at line 90 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [robot_state_publisher-2] Error:   Material [brown] color has no rgba
     [robot_state_publisher-2]          at line 98 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [robot_state_publisher-2] Error:   Material [brown] not defined in file
     [robot_state_publisher-2]          at line 99 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [robot_state_publisher-2] Link link1 had 1 children
     [robot_state_publisher-2] Link link2 had 1 children
     [robot_state_publisher-2] Link link3 had 1 children
     [robot_state_publisher-2] Link link4 had 1 children
     [robot_state_publisher-2] Link link5 had 4 children
     [robot_state_publisher-2] Link camera_link had 0 children
     [robot_state_publisher-2] Link end_effector_link had 0 children
     [robot_state_publisher-2] Link gripper_link had 0 children
     [robot_state_publisher-2] Link gripper_link_sub had 0 children
     [robot_state_publisher-2] got segment camera_link
     [robot_state_publisher-2] got segment end_effector_link
     [robot_state_publisher-2] got segment gripper_link
     [robot_state_publisher-2] got segment gripper_link_sub
     [robot_state_publisher-2] got segment link1
     [robot_state_publisher-2] got segment link2
     [robot_state_publisher-2] got segment link3
     [robot_state_publisher-2] got segment link4
     [robot_state_publisher-2] got segment link5
     [robot_state_publisher-2] got segment world
     [robot_state_publisher-2] Adding fixed segment from world to link1
     [robot_state_publisher-2] Adding moving segment from link1 to link2
     [robot_state_publisher-2] Adding moving segment from link2 to link3
     [robot_state_publisher-2] Adding moving segment from link3 to link4
     [robot_state_publisher-2] Adding moving segment from link4 to link5
     [robot_state_publisher-2] Adding fixed segment from link5 to camera_link
     [robot_state_publisher-2] Adding fixed segment from link5 to end_effector_link
     [robot_state_publisher-2] Adding moving segment from link5 to gripper_link
     [robot_state_publisher-2] Adding moving segment from link5 to gripper_link_sub
     [rviz2-3] Parsing robot urdf xml string.
     [rviz2-3] [INFO] [rviz2]: Stereo is NOT SUPPORTED
     [rviz2-3] [INFO] [rviz2]: OpenGl version: 3 (GLSL 1.3)
     [rviz2-3] [INFO] [rviz2]: Stereo is NOT SUPPORTED
     [rviz2-3] Error:   Material [orange] has malformed color rgba values: Unable to parse component [${255/255}] to a double (while parsing a color value)
     [rviz2-3]          at line 90 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [rviz2-3] Error:   Material [orange] color has no rgba
     [rviz2-3]          at line 98 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [rviz2-3] Error:   Material [orange] not defined in file
     [rviz2-3]          at line 99 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [rviz2-3] Error:   Material [brown] has malformed color rgba values: Unable to parse component [${222/255}] to a double (while parsing a color value)
     [rviz2-3]          at line 90 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [rviz2-3] Error:   Material [brown] color has no rgba
     [rviz2-3]          at line 98 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp
     [rviz2-3] Error:   Material [brown] not defined in file
     [rviz2-3]          at line 99 in /tmp/binarydeb/ros-dashing-urdfdom-2.2.0/urdf_parser/src/link.cpp


Question 3: How do I know if this test is working? For example, should I be able to control the servos from the rviz Joint State Publisher window?


Question 4: Should I always run the following in one terminal first,
    ros2 launch open_manipulator_x_controller
       open_manipulator_x_controller.launch.py
    before I run any of the Operations, for example, keyboard teleop in
    a second terminal?

Currently the keyboard teleop program also stalls. It does not display the keyboard map or accept keyboard input.


Thank you for your help


2020-05-20 15:42:21
edcepp
2020-05-21 13:28:59 Will Son

Hi,


I believe one of our engineers already had contacted you for this issue, but please refer to below comment.


Q1. When some of the messages are buffered and not displayed until terminating the thread, please enter below command in the terminal.  (See Line buffered console output)

    $ export RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED=1

Q2. We have inconsistent results from multiple test PCs so we're looking into this issue. Please allow us some more time for troubleshooting.

Q3. You should be able to control the OpenManipulator on the RViz window by the interactive marker.

Q4. The open_manipulator_x_controller should always be running in order to control the platform.


We'll keep you updated for this issue.

Thank you.

comment
2020-05-29 07:18:58 edcepp
Thanks Will,

After setting line buffering to 1, the output looks as expected.

Ed
2020-05-29 07:18:58
edcepp
2020-05-21 13:28:59
willson
Reply
웹에디터 시작 웹 에디터 끝