Yaskawa-Global / motoros2

ROS 2 (rcl, rclc & micro-ROS) node for MotoPlus-compatible Yaskawa Motoman robot controllers
101 stars 21 forks source link

Previously generated INFORM job detected as invalid on next boot #166

Closed rsaintobert closed 1 year ago

rsaintobert commented 1 year ago

ROS2 Version: Humble MotoROS2 Version: Latest (0.1.1) MicroROS Version: Latest YRC1000u GP7

Hi. I am having trouble to make the driver work. I followed the installation procedure and I let MotoROS2 generate the INIT_ROS job. I started the micro ros agent using the docker image and executed the "ros2 node list" cmd into the container (docker exec -it) but no ros node was visible. After reboot of the controller, the INIT_ROS job is detected as invalid and the alarm 8014 is raised. No ROS node is visible.

The weird thing is that I turns out to work one time without changing anything apparently. I was able to see the node and listen to the /joint_states topic, but after a reboot the problem appeared again.

Here are the logs of the agent ``` local-micro-ros-agent-1 | [1695908233.380252] info | UDPv4AgentLinux.cpp | init | running... | port: 9999 local-micro-ros-agent-1 | [1695908233.380331] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 4 local-micro-ros-agent-1 | [1695908315.098871] info | ProxyClient.cpp | ProxyClient | session hard timeout enabled | client_key: 0xB5258455, timeout: 10000 ms local-micro-ros-agent-1 | [1695908315.098906] info | Root.cpp | create_client | create | client_key: 0xB5258455, session_id: 0x81 local-micro-ros-agent-1 | [1695908315.098964] info | SessionManager.hpp | establish_session | session established | client_key: 0xB5258455, address: 192.168.255.1:42474 local-micro-ros-agent-1 | [1695908315.110142] info | ProxyClient.cpp | create_participant | participant created | client_key: 0xB5258455, participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.128229] info | ProxyClient.cpp | create_topic | topic created | client_key: 0xB5258455, topic_id: 0x000(2), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.129441] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0xB5258455, publisher_id: 0x000(3), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.132151] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0xB5258455, datawriter_id: 0x000(5), publisher_id: 0x000(3) local-micro-ros-agent-1 | [1695908315.234171] info | ProxyClient.cpp | create_topic | topic created | client_key: 0xB5258455, topic_id: 0x001(2), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.236989] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0xB5258455, publisher_id: 0x001(3), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.240042] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0xB5258455, datawriter_id: 0x001(5), publisher_id: 0x001(3) local-micro-ros-agent-1 | [1695908315.245597] info | ProxyClient.cpp | create_topic | topic created | client_key: 0xB5258455, topic_id: 0x002(2), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.248058] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0xB5258455, publisher_id: 0x002(3), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.250550] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0xB5258455, datawriter_id: 0x002(5), publisher_id: 0x002(3) local-micro-ros-agent-1 | [1695908315.253837] info | ProxyClient.cpp | create_topic | topic created | client_key: 0xB5258455, topic_id: 0x003(2), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.256189] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0xB5258455, publisher_id: 0x003(3), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.259048] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0xB5258455, datawriter_id: 0x003(5), publisher_id: 0x003(3) local-micro-ros-agent-1 | [1695908315.262554] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x000(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.266670] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x001(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.268991] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x002(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.271409] info | ProxyClient.cpp | create_topic | topic created | client_key: 0xB5258455, topic_id: 0x004(2), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.274315] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0xB5258455, publisher_id: 0x004(3), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.276964] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0xB5258455, datawriter_id: 0x004(5), publisher_id: 0x004(3) local-micro-ros-agent-1 | [1695908315.279497] info | ProxyClient.cpp | create_topic | topic created | client_key: 0xB5258455, topic_id: 0x005(2), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.281887] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0xB5258455, publisher_id: 0x005(3), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.285010] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0xB5258455, datawriter_id: 0x005(5), publisher_id: 0x005(3) local-micro-ros-agent-1 | [1695908315.334888] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x003(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.339744] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x004(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.342384] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x005(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.346158] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x006(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.350938] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x007(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.354202] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x008(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.358204] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x009(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.360912] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x00A(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.363761] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x00B(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.369887] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x00C(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.373540] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x00D(7), participant_id: 0x000(1) local-micro-ros-agent-1 | [1695908315.376741] info | ProxyClient.cpp | create_replier | replier created | client_key: 0xB5258455, requester_id: 0x00E(7), participant_id: 0x000(1) ```
The logs of the debug after first boot ``` [2023-09-28 15:36:17.904400] [192.168.255.1:57070]: --- [2023-09-28 15:36:17.904600] [192.168.255.1:57070]: MotoROS2 0.1.1 - boot [2023-09-28 15:36:17.904600] [192.168.255.1:57070]: M+ libmicroros version: 'humble-20221102-dbg' [2023-09-28 15:36:17.904800] [192.168.255.1:57070]: PlatformLib version: 0.2.11 [2023-09-28 15:36:17.923200] [192.168.255.1:57070]: No new configuration file found on CN102 USB drive. [2023-09-28 15:36:17.923200] [192.168.255.1:57070]: Checking configuration file: motoros2_config.yaml [2023-09-28 15:36:18.072800] [192.168.255.1:57070]: Ros_ConfigFile_HostOnNetworkInterface: checking '192.168.255.20' on iface 1 [2023-09-28 15:36:18.073000] [192.168.255.1:57070]: Ros_ConfigFile_HostOnNetworkInterface: exit: on network: true [2023-09-28 15:36:18.073000] [192.168.255.1:57070]: UserLan monitor enabled, checking port setting .. [2023-09-28 15:36:18.073000] [192.168.255.1:57070]: Ros_ConfigFile_HostOnNetworkInterface: checking '192.168.255.20' on iface 1 [2023-09-28 15:36:18.073200] [192.168.255.1:57070]: Ros_ConfigFile_HostOnNetworkInterface: exit: on network: true [2023-09-28 15:36:18.073200] [192.168.255.1:57070]: UserLan monitor auto-detect port: 1 [2023-09-28 15:36:18.073200] [192.168.255.1:57070]: Config: ros_domain_id = 0 [2023-09-28 15:36:18.073800] [192.168.255.1:57070]: Config: node_name = 'motoman_25_84_55' [2023-09-28 15:36:18.073800] [192.168.255.1:57070]: Config: node_namespace = '' [2023-09-28 15:36:18.073800] [192.168.255.1:57070]: Config: remap_rules = '' [2023-09-28 15:36:18.073800] [192.168.255.1:57070]: Config: agent_ip_address = '192.168.255.20' [2023-09-28 15:36:18.074600] [192.168.255.1:57070]: Config: agent_port_number = '9999' [2023-09-28 15:36:18.074600] [192.168.255.1:57070]: Config: sync_timeclock_with_agent = 1 [2023-09-28 15:36:18.074600] [192.168.255.1:57070]: Config: namespace_tf = 1 [2023-09-28 15:36:18.074800] [192.168.255.1:57070]: Config: publish_tf = 0 [2023-09-28 15:36:18.074800] [192.168.255.1:57070]: List of configured joint names: [2023-09-28 15:36:18.074800] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.074800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075400] [192.168.255.1:57070]: x [2023-09-28 15:36:18.075600] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.075600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078400] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078400] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.078600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.078800] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.079000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079400] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079800] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.079800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.079800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.080000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.080000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.080000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.080000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082400] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082400] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.082400] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.082800] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.083000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083200] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083600] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083800] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.083800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.083800] [192.168.255.1:57070]: x [2023-09-28 15:36:18.084000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.084000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.084000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.084000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.087000] [192.168.255.1:57070]: x [2023-09-28 15:36:18.087000] [192.168.255.1:57070]: --- [2023-09-28 15:36:18.087000] [192.168.255.1:57070]: Config: logging.log_to_stdout = 0 [2023-09-28 15:36:18.087200] [192.168.255.1:57070]: Config: update_periods.executor_sleep_period = 10 [2023-09-28 15:36:18.087200] [192.168.255.1:57070]: Config: update_periods.action_feedback_publisher_period = 20 [2023-09-28 15:36:18.087400] [192.168.255.1:57070]: Config: update_periods.controller_status_monitor_period = 10 [2023-09-28 15:36:18.087600] [192.168.255.1:57070]: Config: publisher_qos.robot_status = 'sensor_data' [2023-09-28 15:36:18.087600] [192.168.255.1:57070]: Config: publisher_qos.joint_states = 'sensor_data' [2023-09-28 15:36:18.088000] [192.168.255.1:57070]: Config: publisher_qos.tf = 'default' [2023-09-28 15:36:18.088000] [192.168.255.1:57070]: Config: tf_frame_prefix = '' [2023-09-28 15:36:18.088000] [192.168.255.1:57070]: Config: stop_motion_on_disconnect = 1 [2023-09-28 15:36:18.088000] [192.168.255.1:57070]: Config: inform_job_name = 'INIT_ROS' [2023-09-28 15:36:18.088200] [192.168.255.1:57070]: Config: allow_custom_inform_job = 0 [2023-09-28 15:36:18.088200] [192.168.255.1:57070]: Config: userlan_monitor_enabled = 1 [2023-09-28 15:36:18.088200] [192.168.255.1:57070]: Config: userlan_monitor_port = 1 [2023-09-28 15:36:18.088400] [192.168.255.1:57070]: Waiting for robot alarms to clear... [2023-09-28 15:36:20.590400] [192.168.255.1:57070]: RMW settings 1: 1000; 0; 1000; 256; 256; 512 [2023-09-28 15:36:20.590400] [192.168.255.1:57070]: RMW settings 2: 1; 1; 30; 15; 30; 1; -1 [2023-09-28 15:36:20.590400] [192.168.255.1:57070]: RMW settings 3: 60; 120; 100; 100 [2023-09-28 15:36:20.590600] [192.168.255.1:57070]: Using ROS domain ID: 0 [2023-09-28 15:36:20.590600] [192.168.255.1:57070]: Using client key: 0xB5258455 [2023-09-28 15:36:20.590600] [192.168.255.1:57070]: Attempting to connect to micro-ROS PC Agent (at udp://192.168.255.20:9999) [1970-01-01 00:00:00.000000] [192.168.255.1:57070]: Found micro-ROS PC Agent [2023-09-28 15:36:21.610000] [192.168.255.1:57070]: rclc_support_init_with_options = 0 [2023-09-28 15:36:21.610200] [192.168.255.1:57070]: remap_rules str: '' [2023-09-28 15:36:21.610200] [192.168.255.1:57070]: len(remap_rules str): 0 [2023-09-28 15:36:21.610200] [192.168.255.1:57070]: num parsed remap rules: 0 [2023-09-28 15:36:21.610400] [192.168.255.1:57070]: faux argc: 2 [2023-09-28 15:36:21.610400] [192.168.255.1:57070]: rcl_parse_arguments = 0 [2023-09-28 15:36:21.621000] [192.168.255.1:57070]: rclc_node_init_with_options = 0 [2023-09-28 15:36:21.621200] [192.168.255.1:57070]: Ros_Communication_Initialize(..):comm_exec_init: memory free: 1045920 bytes, delta: -776 [2023-09-28 15:36:21.621200] [192.168.255.1:57070]: Initializing controller [2023-09-28 15:36:21.621200] [192.168.255.1:57070]: Number of motion groups: 1 (max supported: 8) [2023-09-28 15:36:21.636200] [192.168.255.1:57070]: axisType[0]: Rot Rot Rot Rot Rot Rot --- --- [2023-09-28 15:36:21.636200] [192.168.255.1:57070]: pulse->unit[0]: 71116.2160 86919.8196 65189.8647 48892.3985 41721.5134 26634.7161 -- -- [2023-09-28 15:36:21.636400] [192.168.255.1:57070]: maxInc[0] (in motoman joint order): 1861, 1911, 1865, 1877, 1601, 1862, 0 [2023-09-28 15:36:21.636400] [192.168.255.1:57070]: maxSpeed[0] (in ros joint order): 6.542108, 5.496445, 7.152185, 9.597606, 9.593372, 17.477190, 0.000000 [2023-09-28 15:36:21.636400] [192.168.255.1:57070]: Creating new task: Add To Inc Q (Group 1) [2023-09-28 15:36:21.636600] [192.168.255.1:57070]: Created ctrl group 0, memfree = (1008152) bytes [2023-09-28 15:36:21.643200] [192.168.255.1:57070]: Creating new task: IncMoveTask [2023-09-28 15:36:21.643400] [192.168.255.1:57070]: IncMoveTask Started [2023-09-28 15:36:21.643800] [192.168.255.1:57070]: Eco-mode: enabled [2023-09-28 15:36:21.644000] [192.168.255.1:57070]: Eco-mode: timeout: 10 min [2023-09-28 15:36:21.644000] [192.168.255.1:57070]: Ros_Controller_Initialize(..):ctrlr_init: memory free: 1007832 bytes, delta: -38088 [2023-09-28 15:36:21.644000] [192.168.255.1:57070]: Checking validity of robot job: INIT_ROS [2023-09-28 15:36:21.670000] [192.168.255.1:57070]: Job file doesn't exist [2023-09-28 15:36:21.670200] [192.168.255.1:57070]: Generating INFORM job in temporary location 'MPRAM1:0\INIT_ROS.JBI' [2023-09-28 15:36:21.742400] [192.168.255.1:57070]: Generated INFORM job, loaded as 'INIT_ROS' [2023-09-28 15:36:21.742600] [192.168.255.1:57070]: Initializing PositionMonitor publishers [2023-09-28 15:36:21.762200] [192.168.255.1:57070]: PositionMonitor: publishing TF to 'tf' [2023-09-28 15:36:21.770200] [192.168.255.1:57070]: Ros_PositionMonitor_Initialize(..):pos_mon_init: memory free: 1005320 bytes, delta: -2512 [2023-09-28 15:36:21.770400] [192.168.255.1:57070]: Initializing ActionServer FollowJointTrajectory [2023-09-28 15:36:21.796200] [192.168.255.1:57070]: Allocating FollowJointTrajectory goal request [2023-09-28 15:36:21.796200] [192.168.255.1:57070]: Maximum length of trajectories: 200 points [2023-09-28 15:36:21.810000] [192.168.255.1:57070]: g_actionServer_FJT_SendGoal_Request__sizeof = 451008 [2023-09-28 15:36:21.842400] [192.168.255.1:57070]: Ros_ActionServer_FJT_Initialize(..):fjt_init: memory free: 1003464 bytes, delta: -1856 [2023-09-28 15:36:21.847400] [192.168.255.1:57070]: Ros_ServiceQueueTrajPoint_Initialize(..):svc_queue_point_init: memory free: 996216 bytes, delta: -7248 [2023-09-28 15:36:21.869000] [192.168.255.1:57070]: Ros_ServiceReadWriteIO_Initialize(..):svc_rw_io_init: memory free: 994504 bytes, delta: -1712 [2023-09-28 15:36:21.872000] [192.168.255.1:57070]: Ros_ServiceResetError_Initialize(..):svc_reset_error_init: memory free: 994224 bytes, delta: -280 [2023-09-28 15:36:21.874600] [192.168.255.1:57070]: Ros_ServiceStartTrajMode_Initialize(..):svc_start_traj_mode_init: memory free: 993928 bytes, delta: -296 [2023-09-28 15:36:21.881200] [192.168.255.1:57070]: Ros_ServiceStartPointQueueMode_Initialize(..):svc_start_point_queue_mode_init: memory free: 993632 bytes, delta: -296 [2023-09-28 15:36:21.884200] [192.168.255.1:57070]: Ros_ServiceStopTrajMode_Initialize(..):svc_stop_traj_mode_init: memory free: 993344 bytes, delta: -288 [2023-09-28 15:36:21.888600] [192.168.255.1:57070]: Ros_ServiceSelectMotionTool_Initialize(..):svc_select_tool_init: memory free: 993048 bytes, delta: -296 [2023-09-28 15:36:21.888800] [192.168.255.1:57070]: Initialization complete. Memory available: (993048) bytes. Memory in use: (55528) bytes [2023-09-28 15:36:21.891200] [192.168.255.1:57070]: Starting UserLan link state monitor (port: 1) ```
The logs of the debug at reboot indicating that the job is invalid ``` [2023-09-28 15:46:42.143000] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.143200] [192.168.255.1:50187]: MotoROS2 0.1.1 - boot [2023-09-28 15:46:42.143200] [192.168.255.1:50187]: M+ libmicroros version: 'humble-20221102-dbg' [2023-09-28 15:46:42.143200] [192.168.255.1:50187]: PlatformLib version: 0.2.11 [2023-09-28 15:46:42.169400] [192.168.255.1:50187]: No new configuration file found on CN102 USB drive. [2023-09-28 15:46:42.169800] [192.168.255.1:50187]: Checking configuration file: motoros2_config.yaml [2023-09-28 15:46:42.326000] [192.168.255.1:50187]: Ros_ConfigFile_HostOnNetworkInterface: checking '192.168.255.20' on iface 1 [2023-09-28 15:46:42.326000] [192.168.255.1:50187]: Ros_ConfigFile_HostOnNetworkInterface: exit: on network: true [2023-09-28 15:46:42.326000] [192.168.255.1:50187]: UserLan monitor enabled, checking port setting .. [2023-09-28 15:46:42.326600] [192.168.255.1:50187]: Ros_ConfigFile_HostOnNetworkInterface: checking '192.168.255.20' on iface 1 [2023-09-28 15:46:42.326800] [192.168.255.1:50187]: Ros_ConfigFile_HostOnNetworkInterface: exit: on network: true [2023-09-28 15:46:42.326800] [192.168.255.1:50187]: UserLan monitor auto-detect port: 1 [2023-09-28 15:46:42.326800] [192.168.255.1:50187]: Config: ros_domain_id = 0 [2023-09-28 15:46:42.327000] [192.168.255.1:50187]: Config: node_name = 'motoman_25_84_55' [2023-09-28 15:46:42.327000] [192.168.255.1:50187]: Config: node_namespace = '' [2023-09-28 15:46:42.327000] [192.168.255.1:50187]: Config: remap_rules = '' [2023-09-28 15:46:42.327000] [192.168.255.1:50187]: Config: agent_ip_address = '192.168.255.20' [2023-09-28 15:46:42.327200] [192.168.255.1:50187]: Config: agent_port_number = '9999' [2023-09-28 15:46:42.327200] [192.168.255.1:50187]: Config: sync_timeclock_with_agent = 1 [2023-09-28 15:46:42.327200] [192.168.255.1:50187]: Config: namespace_tf = 1 [2023-09-28 15:46:42.327400] [192.168.255.1:50187]: Config: publish_tf = 0 [2023-09-28 15:46:42.327400] [192.168.255.1:50187]: List of configured joint names: [2023-09-28 15:46:42.327400] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.327800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.327800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.327800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.327800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328200] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.328200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328600] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328600] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328600] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.328600] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.328800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329000] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.329200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.329800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330000] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.330000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.330400] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.332800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.332800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.332800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333200] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.333200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.333800] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334000] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.334000] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334200] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334400] [192.168.255.1:50187]: x [2023-09-28 15:46:42.334600] [192.168.255.1:50187]: --- [2023-09-28 15:46:42.334600] [192.168.255.1:50187]: Config: logging.log_to_stdout = 0 [2023-09-28 15:46:42.334600] [192.168.255.1:50187]: Config: update_periods.executor_sleep_period = 10 [2023-09-28 15:46:42.334600] [192.168.255.1:50187]: Config: update_periods.action_feedback_publisher_period = 20 [2023-09-28 15:46:42.334800] [192.168.255.1:50187]: Config: update_periods.controller_status_monitor_period = 10 [2023-09-28 15:46:42.334800] [192.168.255.1:50187]: Config: publisher_qos.robot_status = 'sensor_data' [2023-09-28 15:46:42.334800] [192.168.255.1:50187]: Config: publisher_qos.joint_states = 'sensor_data' [2023-09-28 15:46:42.335000] [192.168.255.1:50187]: Config: publisher_qos.tf = 'default' [2023-09-28 15:46:42.335000] [192.168.255.1:50187]: Config: tf_frame_prefix = '' [2023-09-28 15:46:42.335000] [192.168.255.1:50187]: Config: stop_motion_on_disconnect = 1 [2023-09-28 15:46:42.335000] [192.168.255.1:50187]: Config: inform_job_name = 'INIT_ROS' [2023-09-28 15:46:42.335200] [192.168.255.1:50187]: Config: allow_custom_inform_job = 0 [2023-09-28 15:46:42.335400] [192.168.255.1:50187]: Config: userlan_monitor_enabled = 1 [2023-09-28 15:46:42.335400] [192.168.255.1:50187]: Config: userlan_monitor_port = 1 [2023-09-28 15:46:42.335800] [192.168.255.1:50187]: Waiting for robot alarms to clear... [2023-09-28 15:46:44.837600] [192.168.255.1:50187]: RMW settings 1: 1000; 0; 1000; 256; 256; 512 [2023-09-28 15:46:44.838000] [192.168.255.1:50187]: RMW settings 2: 1; 1; 30; 15; 30; 1; -1 [2023-09-28 15:46:44.838000] [192.168.255.1:50187]: RMW settings 3: 60; 120; 100; 100 [2023-09-28 15:46:44.838400] [192.168.255.1:50187]: Using ROS domain ID: 0 [2023-09-28 15:46:44.838400] [192.168.255.1:50187]: Using client key: 0xB5258455 [2023-09-28 15:46:44.838600] [192.168.255.1:50187]: Attempting to connect to micro-ROS PC Agent (at udp://192.168.255.20:9999) [1970-01-01 00:00:00.000000] [192.168.255.1:50187]: Found micro-ROS PC Agent [2023-09-28 15:46:45.861400] [192.168.255.1:50187]: rclc_support_init_with_options = 0 [2023-09-28 15:46:45.864200] [192.168.255.1:50187]: remap_rules str: '' [2023-09-28 15:46:45.864200] [192.168.255.1:50187]: len(remap_rules str): 0 [2023-09-28 15:46:45.864400] [192.168.255.1:50187]: num parsed remap rules: 0 [2023-09-28 15:46:45.864400] [192.168.255.1:50187]: faux argc: 2 [2023-09-28 15:46:45.864400] [192.168.255.1:50187]: rcl_parse_arguments = 0 [2023-09-28 15:46:45.872400] [192.168.255.1:50187]: rclc_node_init_with_options = 0 [2023-09-28 15:46:45.872600] [192.168.255.1:50187]: Ros_Communication_Initialize(..):comm_exec_init: memory free: 1045920 bytes, delta: -776 [2023-09-28 15:46:45.872600] [192.168.255.1:50187]: Initializing controller [2023-09-28 15:46:45.872600] [192.168.255.1:50187]: Number of motion groups: 1 (max supported: 8) [2023-09-28 15:46:45.884400] [192.168.255.1:50187]: axisType[0]: Rot Rot Rot Rot Rot Rot --- --- [2023-09-28 15:46:45.884600] [192.168.255.1:50187]: pulse->unit[0]: 71116.2160 86919.8196 65189.8647 48892.3985 41721.5134 26634.7161 -- -- [2023-09-28 15:46:45.884600] [192.168.255.1:50187]: maxInc[0] (in motoman joint order): 1861, 1911, 1865, 1877, 1601, 1862, 0 [2023-09-28 15:46:45.884800] [192.168.255.1:50187]: maxSpeed[0] (in ros joint order): 6.542108, 5.496445, 7.152185, 9.597606, 9.593372, 17.477190, 0.000000 [2023-09-28 15:46:45.884800] [192.168.255.1:50187]: Creating new task: Add To Inc Q (Group 1) [2023-09-28 15:46:45.885000] [192.168.255.1:50187]: Created ctrl group 0, memfree = (1008152) bytes [2023-09-28 15:46:45.893600] [192.168.255.1:50187]: Creating new task: IncMoveTask [2023-09-28 15:46:45.894200] [192.168.255.1:50187]: IncMoveTask Started [2023-09-28 15:46:45.894200] [192.168.255.1:50187]: Eco-mode: enabled [2023-09-28 15:46:45.894200] [192.168.255.1:50187]: Eco-mode: timeout: 10 min [2023-09-28 15:46:45.894400] [192.168.255.1:50187]: Ros_Controller_Initialize(..):ctrlr_init: memory free: 1007832 bytes, delta: -38088 [2023-09-28 15:46:45.894400] [192.168.255.1:50187]: Checking validity of robot job: INIT_ROS [2023-09-28 15:46:45.950400] [192.168.255.1:50187]: Job has invalid contents [2023-09-28 15:46:45.950600] [192.168.255.1:50187]: Job exists, but is invalid. [2023-09-28 15:46:45.972600] [192.168.255.1:50187]: Initializing PositionMonitor publishers [2023-09-28 15:46:45.990600] [192.168.255.1:50187]: PositionMonitor: publishing TF to 'tf' [2023-09-28 15:46:46.000400] [192.168.255.1:50187]: Ros_PositionMonitor_Initialize(..):pos_mon_init: memory free: 1005320 bytes, delta: -2512 [2023-09-28 15:46:46.000400] [192.168.255.1:50187]: Initializing ActionServer FollowJointTrajectory [2023-09-28 15:46:46.027600] [192.168.255.1:50187]: Allocating FollowJointTrajectory goal request [2023-09-28 15:46:46.028000] [192.168.255.1:50187]: Maximum length of trajectories: 200 points [2023-09-28 15:46:46.042600] [192.168.255.1:50187]: g_actionServer_FJT_SendGoal_Request__sizeof = 451008 [2023-09-28 15:46:46.074800] [192.168.255.1:50187]: Ros_ActionServer_FJT_Initialize(..):fjt_init: memory free: 1003464 bytes, delta: -1856 [2023-09-28 15:46:46.078000] [192.168.255.1:50187]: Ros_ServiceQueueTrajPoint_Initialize(..):svc_queue_point_init: memory free: 996216 bytes, delta: -7248 [2023-09-28 15:46:46.107600] [192.168.255.1:50187]: Ros_ServiceReadWriteIO_Initialize(..):svc_rw_io_init: memory free: 994504 bytes, delta: -1712 [2023-09-28 15:46:46.112600] [192.168.255.1:50187]: Ros_ServiceResetError_Initialize(..):svc_reset_error_init: memory free: 994224 bytes, delta: -280 [2023-09-28 15:46:46.116800] [192.168.255.1:50187]: Ros_ServiceStartTrajMode_Initialize(..):svc_start_traj_mode_init: memory free: 993928 bytes, delta: -296 [2023-09-28 15:46:46.119400] [192.168.255.1:50187]: Ros_ServiceStartPointQueueMode_Initialize(..):svc_start_point_queue_mode_init: memory free: 993632 bytes, delta: -296 [2023-09-28 15:46:46.122800] [192.168.255.1:50187]: Ros_ServiceStopTrajMode_Initialize(..):svc_stop_traj_mode_init: memory free: 993344 bytes, delta: -288 [2023-09-28 15:46:46.125400] [192.168.255.1:50187]: Ros_ServiceSelectMotionTool_Initialize(..):svc_select_tool_init: memory free: 993048 bytes, delta: -296 [2023-09-28 15:46:46.125600] [192.168.255.1:50187]: Initialization complete. Memory available: (993048) bytes. Memory in use: (55528) bytes [2023-09-28 15:46:46.128600] [192.168.255.1:50187]: Starting UserLan link state monitor (port: 1) ```
The config file ```yaml --- # SPDX-FileCopyrightText: 2022-2023, Yaskawa America, Inc. # SPDX-FileCopyrightText: 2022-2023, Delft University of Technology # # SPDX-License-Identifier: Apache-2.0 #----------------------------------------------------------------------------- # REQUIRED # IP address and UDP port number of the Micro-ROS Agent PC. All communication # to/from MotoROS2 will route through the Agent application. # (There is no default value for these fields. They must be specified by # the user.) agent_ip_address: "192.168.255.20" agent_port_number: 9999 # Any settings that are not specified will be set to their DEFAULT value. #----------------------------------------------------------------------------- # The (DDS) domain to join # # Please refer to the ROS 2 documentation on DDS domain IDs for more # information. This setting works exactly like its ROS 2 analogue. # # DEFAULT: 0 (the default ROS 2 domain ID) #ros_domain_id: 0 #----------------------------------------------------------------------------- # Name under which MotoROS2 should register with the ROS 2 node graph. # # DEFAULT: "motoman_xx_yy_zz" (xyz: last three bytes of robot's MAC address) #node_name: "" #----------------------------------------------------------------------------- # Namespace to use for the MotoROS2 node and all topics. # # DEFAULT: "" (empty string) #node_namespace: "" #----------------------------------------------------------------------------- # Remap rules to apply to ROS 2 resource names. # # This configures the micro-ROS equivalent of the ROS 2 remap functionality. # # The current implementation expects all remap rules as a single, # space-separated string. Whitespace in resource names is not allowed, so # this should not pose any issues. # # Maximum total length of the remap_rules string: 255 chars. Any characters # beyond that will be ignored (and likely result in parsing failures). # # Please refer to the ROS 2 documentation on remapping for more information # on syntax and contraints. # # Example: the following remaps the 'joint_states' topic to 'my_joint_states', # and the 'read_single_io' service to 'io/read_single': # # "joint_states:=my_joint_states read_single_io:=io/read_single" # # DEFAULT: "" (empty string) #remap_rules: "" #----------------------------------------------------------------------------- # This will ensure that when timestamps are sampled, they will match the clock # of the Agent PC. This is useful if the date/time of the robot controller is # not synchronized. # # DEFAULT: true sync_timeclock_with_agent: true #----------------------------------------------------------------------------- # Should MotoROS2 monitor the link state of the ethernet port used to # communicate with the Agent? # # If enabled, this will cause immediate notification of loss-of-connection # when the link goes down, causing MotoROS2 to activate it's shutdown # behaviour (ie: stop all motion (if enabled), release resources, wait for # link up and attempt reconnection with the Agent). # # If this is disabled, Agent disconnection detection uses an application # layer based timeout mechanism which takes longer to detect disconnects (but # might be more robust against intermittent link-layer disconnects which do not # cause network disconnections). # # DEFAULT: true #userlan_monitor_enabled: true #----------------------------------------------------------------------------- # Which port should MotoROS2 monitor, if 'userlan_monitor_enabled' is 'true'? # # If not specified, MotoROS2 will attempt to auto-detect the network port # that is used to connect to the micro-ROS Agent. It will do this by # comparing the 'agent_ip_address' setting against the IP addresses (and # netmasks) of all available network interfaces. # # If the Agent can be reached directly over a particular interface, or via a # configured default gateway on the same interface, the associated port will be # monitored for link drops. # # To disable auto-detection, uncomment 'userlan_monitor_port' below and set # it to the desired port. # # NOTE: this setting only applies to YRC1000 and YRC1000u controllers. # DX200 and FS100 controllers only have a single ethernet port, and any # value other than 1 will be ignored. # # NOTE 2: auto-detection is not perfect. It can't determine whether the Agent # might be reachable using multiple hops. Nor can it determine whether # any routers have been configured to forward particular types of # traffic or firewalls exist between MotoROS2 and the micro-ROS Agent. # For deployments with complex network configurations, disable # auto-detection by configuring 'userlan_monitor_port' below. # # NOTE 3: the port specified here is NOT checked against 'agent_ip_address'. # In other words: if 'agent_ip_address' is on 'USER_LAN1', but # 'userlan_monitor_port' is set to 'USER_LAN2', MotoROS2 will detect # link down events on 'USER_LAN2', whether or not that port is used # to communicate with the Agent. # # OPTIONS: USER_LAN1, USER_LAN2 # DEFAULT: USER_LAN1 #userlan_monitor_port: USER_LAN1 #----------------------------------------------------------------------------- # If the Agent PC disconnects from the robot while it is in motion, should the # robot come to a stop? # # DEFAULT: true stop_motion_on_disconnect: true #----------------------------------------------------------------------------- # Should MotoROS2 broadcast transforms on '/tf'? This can be disabled if # the data will interfere with applications such as robot_state_publisher. # # DEFAULT: true publish_tf: false #----------------------------------------------------------------------------- # Should the 'tf' topic be namespaced if 'node_namespace' is configured with a # non-empty string? # # Setting this to 'false' will make MotoROS2 broadcast transforms on the '/tf' # global topic, which cannot be namespaced (due to being an absolute name). # Otherwise, it will broadcast on 'tf', which can be namespaced. # # DEFAULT: true namespace_tf: true #----------------------------------------------------------------------------- # Similar to the 'frame_prefix' parameter of the ROS 2 'robot_state_publisher' # node. All published TF frames will be prefixed with this string. # # Example: with this parameter set to "left/", the "r1/tool0" frame would be # published as "left/r1/tool0". # # NOTE: the prefix must include a separator (fi: '/') if one should be included # in the final name of the TF frames. Such a separator is not added # automatically. # # DEFAULT: "" (empty string) #tf_frame_prefix: "" #----------------------------------------------------------------------------- # Joints in this configuration file must be listed in the order of Robots, # Base-axes, Station-axes. # # Example: R1+B1+R2+S1 system # # joint_names: # - [r1_s_axis, r1_l_axis, r1_u_axis, r1_r_axis, r1_b_axis, r1_t_axis] # - [r2_s_axis, r2_l_axis, r2_u_axis, r2_r_axis, r2_b_axis, r2_t_axis, r2_e_axis] # - [b1_axis] # - [s1_axis_1, s1_axis_2] # # When using a 7 axis robot arm with an elbow joint (E) in the middle of the # arm, the elbow axis should be listed last (SLURBTE). # # DEFAULT: "group_x/joint_y" #joint_names: #- [group_1/joint_1, group_1/joint_2, group_1/joint_3, group_1/joint_4, group_1/joint_5, group_1/joint_6] #----------------------------------------------------------------------------- # Logging settings logging: # All log messages are broadcast on the network on port UDP 21789. # Additionally, the messages can be printed to the standard output stream of # the robot controller. This would be visible over a telnet connection, or by # attaching a VGA debug monitor to the robot controller. # # NOTE: this WILL slow down the application. # # DEFAULT: false log_to_stdout: false #----------------------------------------------------------------------------- update_periods: # The delay between checks for incoming activity on the network. A lower # number will result in quicker responsiveness to received messages. # Additionally, it determines the rate at which the feedback_publisher timers # are checked. # This value should be <= to action_feedback_publisher_period as executor_sleep_period # is the rate at which the action-feedback timer is checked. If the value for # action_feedback_publisher_period is < executor_sleep_period, it will effectively # be treated as having the same value executor_sleep_period at runtime. # # DEFAULT: 10 milliseconds executor_sleep_period: 10 # The delay between each publish of feedback position and status information. # A lower number will publish the feedback data more frequently. # This value should be >= to executor_sleep_period and # controller_status_monitor_period. # # DEFAULT: 20 milliseconds action_feedback_publisher_period: 20 # The delay between each poll of the robot I/O and controller status data. # This value should be <= to action_feedback_publisher_period. # # DEFAULT: 10 milliseconds controller_status_monitor_period: 10 #----------------------------------------------------------------------------- # QoS profile to use for various publishers MotoROS2 creates. # The default values here are based on tests and inspection of the source code # of typical consumers of messages on these topics. # # NOTE : RViz2 expects/requires 'tf' to use the 'default' profile (ie: reliable). # NOTE2: MoveIt2 expects/requires 'joint_states' to use the 'default' profile. publisher_qos: # DEFAULT: sensor_data robot_status: sensor_data # DEFAULT: sensor_data joint_states: sensor_data # DEFAULT: default tf: default #----------------------------------------------------------------------------- # Name of the INFORM job to be used (and monitored) by MotoROS2. # # Maximum length: 32 UTF-8 characters. 16 Japanese (Shift-JIS) characters. # # Set this to a custom value when using a custom INFORM job with a different # name. # # NOTE: do NOT include the file extension here (ie: '.JBI'). Only the name # of the job should be specified. # # DEFAULT: "INIT_ROS" #inform_job_name: "INIT_ROS" #----------------------------------------------------------------------------- # Allow custom INFORM job. # # If MotoROS2 detects that the specified INFORM job is not formatted properly # then an alarm will be raised at startup. # This flag indicates that the job is intentionally configured and will # suppress the alarm. # # When this flag is set to 'true', then MotoROS2 will not validate whether the # job is compatible. It is the responsibility of the user to make sure the # custom job includes the required INFORM statements and in the expected order # (refer to the provided INFORM job files for the general structure). # # DEFAULT: false #allow_custom_inform: false ```
ted-miller commented 1 year ago

Hi @rsaintobert Could you post a copy of the INIT_ROS.JBI file that was generated? Also, a copy of the PANELBOX.LOG file from your robot would be helpful. I'm wondering if your robot has some additional control group(s) configured.

gavanderhoorn commented 1 year ago

Slightly off-topic, but on the FS100 branch I have https://github.com/gavanderhoorn/motoros2/commit/578a6101e71a6da140fb8ba17bdea3e07b848d21 which would print the 'offending' line during the check.

I might cherry-pick that to main and submit a PR. Would make debugging this a bit easier perhaps.


See https://github.com/Yaskawa-Global/motoros2/pull/167.

rsaintobert commented 1 year ago

Hi, here are the files.

INIT_ROS.JBI ``` /JOB //NAME INIT_ROS //POS ///NPOS 0,0,0,0,0,0 //INST ///DATE 2023/09/28 15:36 ///COMM AUTO-GENERATED BY MotoROS2 ///ATTR SC,RW ///GROUP1 RB1 NOP DOUT OT#(890) OFF DOUT OT#(889) OFF TIMER T=0.050 DOUT OT#(889) ON WAIT OT#(890)=ON DOUT OT#(890) OFF DOUT OT#(889) OFF END ```
PANELBOX.LOG ``` /SYSTEM 9 //DATE : 2023/09/29 09:52:57 //SYSTEM NO : YBS2.46.00A(EN/FR)-00 //PARAM NO : 1.42/1.42 //APPLI : GENERAL //LANGUAGE : 2.46-00-00, 2.46-00-00 //REVISION MAIN 2.46.00,1.02-10 CA --------,16092200 PP 2.10-00, 2.00-00, 1.07 SAFETY#0 2.23-00/ 2.11-00, 2.23-00/ 2.11-00, 2.00-00, 2.00-00,17021600,17021600 SERVO#0 1.18-00/ 1.18-00, 1.02E00/ 1.02P00, 2.00-00, 1.01-00,19090800,10000002 //ROBOT NAME R1 : 1-06VX7-A0*(GP7) 0011_1111 //CONTROL POWER TOTAL : 2021/06/16 13:56,00718:35'39 //SERVO POWER TOTAL : 2021/06/16 13:56,00174:03'37 R1 : 2021/06/16 13:56,00173:35'16 //PLAYBACK TIME TOTAL : 2021/06/16 13:56,00119:30'17 R1 : 2021/06/16 13:56,00119:29'13 //MOVING TIME TOTAL : 2021/06/16 13:56,00000:23'44 R1 : 2021/06/16 13:56,00000:23'44 //OPERATING TIME TOOL1 : 2021/06/16 13:56,00000:00'00 //ENERGY TIME TOTAL : 2021/06/16 13:56,00024:33'21 //MOTOPLUS APP 01: MotoROS2 (humble) 0.1.1 micro-ROS based ROS 2 interface //CONTROLLER SETTING ============================================================ LANGUAGE ------------------------------------------------------------ LANGUAGE1 ENGLISH LANGUAGE2 FRENCH ============================================================ CONTROL GROUP ------------------------------------------------------------ CONNECT : DETAIL R1 : 1-06VX7-A0* B1 : NONE DETAIL R2 : NONE S1 : NONE DETAIL ============================================================ CONNECT -- AXIS -- -- BRK -- -- CV -- --OT-- SV <123456789> <123456789> <123456789> ------------------------------------------------------------ R1 :#1 [153264---] [123456---] [111111---] OT1 ============================================================ OPTION BOARD STANDARD ------------------------------------------------------------ #1 NONE #2 NONE ============================================================ IO MODULE ST# DI DO AI AO BOARD ------------------------------------------------------------ 00 0008 0008 - - ASF31(PNP) 01 - - - - NONE 02 - - - - NONE 03 - - - - NONE 04 - - - - NONE 05 - - - - NONE 06 - - - - NONE 07 - - - - NONE 08 - - - - NONE 09 - - - - NONE 10 - - - - NONE 11 - - - - NONE 12 - - - - NONE 13 - - - - NONE 14 - - - - NONE 15 - - - - NONE 16 - - - - NONE 17 - - - - NONE 18 - - - - NONE 19 - - - - NONE ============================================================ EXTERNAL IO SETUP ------------------------------------------------------------ ALLOCATION MODE AUTO EXTERNAL IO ALLOCATION DETAIL ============================================================ EXTERNAL IO ALLOCATION(INPUT) ST# CH MAC ID ADDR BYTE NAME ------------------------------------------------------------ #20010 0 0 0 0 1 ASF31 ============================================================ EXTERNAL IO ALLOCATION(OUTPUT) ST# CH MAC ID ADDR BYTE NAME ------------------------------------------------------------ #30010 0 0 0 0 1 ASF31 ============================================================ OPTION FUNCTION ------------------------------------------------------------ * 006 VISION FUNCTION NOT USED * 007 ROBOT DETACHMENT DETAIL * 009 AXES DETACHMENT DETAIL * 011 LAN INTERFACE SETTING DETAIL * 012 NETWORK FUNCTION SETTING DETAIL * 013 EtherNet/IP(CPU Board) DETAIL * 014 DAYLIGHT SAVING TIME DETAIL * 015 RELATIVE JOB USED * 016 INTERRUPT JOB USED * 017 TCP USED * 018 MACRO INST. USED * 020 I/F PANEL USED * 021 LADDER EDITOR USED * 022 PLAY MODE ENABLE NOT USED * 023 MANUAL BRAKE RELEASE USED * 025 EXTERNAL REFERENCE POINT NOT USED * 026 PARALLEL START INSTRUCTION 5 * 027 COORDINATED INSTRUCTION USED * 028 STATION ANGLE DISPLAY USED * 032 TOOL NO. SWITCHING USED * 033 SI UNIT INDICATION USED * 034 DISPLAY IO NAME IN JOB USED * 036 EXTERNAL IO SETUP DETAIL * 037 VARIABLE ALLOCATION DETAIL * 046 MotoPlus FUNC. USED * 048 AUTOBACKUP(ACP31) NOT USED * 049 Functional safety DETAIL * 050 MOTOPAL FUNCTION NOT USED * 053 MotoFit NOT USED * 054 MotoLogix DETAIL * 055 SAFETY LOGICAL CIRCUIT SETTING DETAIL * 056 SAFETY I/O BOARD SETTING DETAIL * 057 POWER FORCE LIMITING DETAIL * 058 3DGRAPHICS USED * 059 ENDLESS FUNCTION DETAIL * 060 Search function USED * 061 Pendant Oscilloscope function USED * 062 I/O OUTPUT CONTROL FUNCTION NOT USED * 064 THERMAL SPRAY SPEED FUNCTION NOT USED * 065 ARM INTERFERE CHECK FUNCTION USED * 066 CUBIC ARM INTERFERENCE CHK FUNC.USED * 067 HOVER WEAVING FUNCTION NOT USED * 068 SEARCH FUNCTION IN CONT MOTION NOT USED * 069 PASSWORD PROTECTION FUNCTION NOT USED * 070 ONLINE MANUAL FUNCTION NOT USED * 071 I/O JOG OPERATION FUNCTION NOT USED * 072 Cockpit NOT USED * 073 MOTOMAN DRIVER USED * 075 TEACH POINT ADJUST FUNCTION NOT USED * 077 SmartPendant NOT USED * 079 CONVEYOR COORDINATE DETAIL * 083 MUTUAL WAIT FUNCTION DETAIL ============================================================ CMOS MEMORY ------------------------------------------------------------ USED SIZE 2 MB MOUNTED SIZE 2 MB ============================================================ ------------------------------------------------------------ FILE CREATE DATE 2015/01/01 00:00:55 TEACHING CMOS.BIN LOADED ----/--/-- --:--:-- ============================================================ CHANGE TRACKING LIST DATE INITIALIZE 2021/06/16 13:56:28 MAKER LANGUAGE ----/--/-- --:--:-- CONTROL GROUP ----/--/-- --:--:-- APPLICATION ----/--/-- --:--:-- OPTION BOARD ----/--/-- --:--:-- IO MODULE ----/--/-- --:--:-- CMOS MEMORY ----/--/-- --:--:-- DATE/TIME 2021/06/16 13:56:00 MAKER OPTION FUNCTION 2023/09/28 15:27:29 MANAGEMENT ============================================================ INITIALIZED FILES JOB 2021/06/22 11:51:11 MAKER FILE/GENERAL DATA 2021/06/22 11:50:55 MAKER PARAMETER ----/--/-- --:--:-- I/O DATA ----/--/-- --:--:-- SYSTEM DATA 2021/06/22 11:50:56 MAKER USER DEFINE 2023/09/28 15:27:30 MANAGEMENT ============================================================ INSPECTION AND TEST RECORD DATE ----/--/-- --:--:-- ----/--/-- --:--:-- ----/--/-- --:--:-- ----/--/-- --:--:-- ----/--/-- --:--:-- ============================================================ CHANGE TRACKING PARAMETER DATE AMCxG ----/--/-- --:--:-- AxP ----/--/-- --:--:-- CIO ----/--/-- --:--:-- FD ----/--/-- --:--:-- FMSxB ----/--/-- --:--:-- MFxG ----/--/-- --:--:-- RCD ----/--/-- --:--:-- RCxG ----/--/-- --:--:-- RExG ----/--/-- --:--:-- ROxG ----/--/-- --:--:-- RS ----/--/-- --:--:-- SxE ----/--/-- --:--:-- S1CxG ----/--/-- --:--:-- S2C ----/--/-- --:--:-- S3C ----/--/-- --:--:-- S4C ----/--/-- --:--:-- S1D ----/--/-- --:--:-- S2D ----/--/-- --:--:-- S3D ----/--/-- --:--:-- S4D ----/--/-- --:--:-- SVxG ----/--/-- --:--:-- SVCxB ----/--/-- --:--:-- SVD ----/--/-- --:--:-- SVMxG ----/--/-- --:--:-- SVPxG ----/--/-- --:--:-- SVSxB ----/--/-- --:--:-- ```

I rebooted the controller several time today and so far I can see the ros node, but the alarm for invalid job still appears. I still don't know why the ros node is sometimes visible and sometimes not (boot order between agent and controller ?)

gavanderhoorn commented 1 year ago

There is a difference here:

job MotoROS2 expects/generates:

TIMER T=0.05

job it 'sees' on your YRC1000m @rsaintobert:

TIMER T=0.050

@ted-miller: this is a similar difference to what I saw on the FS100 and I worked around/fixed with https://github.com/gavanderhoorn/motoros2/commit/6a79f9bf9fe28e09c0c2f9f3e5d45eeadd0e07e1. Would something similar be needed for the YRC1000m?

rsaintobert commented 1 year ago

I tried to update the job manually and I confirm the YRC1000m adds a trailing 0 when entering 0.05 value.

gavanderhoorn commented 1 year ago

Yes, that's also why I didn't suggest editing it. It wouldn't have worked.

ted-miller commented 1 year ago

this is a similar difference to what I saw on the FS100 and I worked around/fixed with https://github.com/gavanderhoorn/motoros2/commit/6a79f9bf9fe28e09c0c2f9f3e5d45eeadd0e07e1. Would something similar be needed for the YRC1000m?

What if we simply change strncmp to strstr? https://github.com/Yaskawa-Global/motoros2/blob/4ab13e96ab1047fe232068d22cb2aa1d66c5f18e/src/InformCheckerAndGenerator.c#L263

gavanderhoorn commented 1 year ago

Hm, could do that.

It wouldn't be the same though.

I personally like being specific about things.


Edit: but I won't block a PR if you decide to submit one.

ted-miller commented 1 year ago

@rsaintobert For an immediate remedy, you can uncomment allow_custom_inform in the config file and set it to true. This will prevent the alarm from occurring.

https://github.com/Yaskawa-Global/motoros2/blob/4ab13e96ab1047fe232068d22cb2aa1d66c5f18e/config/motoros2_config.yaml#L270

To update the config file: https://github.com/Yaskawa-Global/motoros2#updating-the-configuration

gavanderhoorn commented 1 year ago

Thanks for reporting the issue @rsaintobert :+1:

This should be fixed in 0.1.2, which will be released in October.