RI-SE / ATOS

ROS2 based platform for coordinating tests of automated vehicles and their surrounding systems.
Mozilla Public License 2.0
13 stars 5 forks source link

Initializing esmini_adapter #570

Open munganeren opened 1 year ago

munganeren commented 1 year ago

Hi,

I am trying to run a simple esmini example. However, when I click on initialize, I see the following error message.

[INFO] [launch]: All log files can be found below /home/munganeren/.ros/log/2023-05-08-11-39-27-485216-ubuntu-27769 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [atos_base-1]: process started with pid [27778] [INFO] [rosbridge_websocket-2]: process started with pid [27780] [INFO] [rosapi_node-3]: process started with pid [27782] [INFO] [object_control-4]: process started with pid [27784] [INFO] [journal_control-5]: process started with pid [27796] [INFO] [osi_adapter-6]: process started with pid [27804] [INFO] [esmini_adapter-7]: process started with pid [27808] [INFO] [mqtt_bridge-8]: process started with pid [27818] [INFO] [pointcloud_publisher-9]: process started with pid [27820] [atos_base-1] Environment variable ATOS_TEST_DIR unset: defaulting to directory /home/munganeren/.astazero/ATOS [mqtt_bridge-8] [INFO] [1683535168.072563529] [atos.mqtt_bridge]: No Broker IP provided in configuration. Shutting down... [object_control-4] [INFO] [1683535168.103853114] [atos.object_control]: Opened journal file /home/munganeren/.astazero/ATOS/journal/object_control-2023-05-08.jnl [atos_base-1] [INFO] [1683535168.127604246] [atos.atos_base]: Data dictionary successfully initialized [INFO] [mqtt_bridge-8]: process has finished cleanly [pid 27818] [object_control-4] [INFO] [1683535168.139126953] [atos.object_control]: Data dictionary successfully initialized [rosbridge_websocket-2] [INFO] [1683535168.875522986] [ros_bridge]: Rosbridge WebSocket server started on port 9090 [object_control-4] [INFO] [1683535175.720701413] [atos.object_control]: Handling initialization request [object_control-4] [INFO] [1683535175.720918164] [atos.object_control]: Loading scenario [esmini_adapter-7] [INFO] [1683535175.720752422] [atos.esmini_adapter]: Initializing esmini with scenario file /home/munganeren/.astazero/ATOS/osc/ALKS_Scenario_4.4_1_CutInNoCollision_TEMPLATE.xosc [esmini_adapter-7] [INFO] [1683535175.720936018] [atos.esmini_adapter]: InitializeEsmini ERENNNN [object_control-4] [INFO] [1683535175.721123089] [atos.object_control]: Transitioning to state AbsoluteKinematics::Initialized [object_control-4] [INFO] [1683535175.721165291] [atos.object_control]: Absolute control mode enabled [atos_base-1] [INFO] [1683535175.722578473] [atos.atos_base]: Received object ID information request [object_control-4] [INFO] [1683535175.723311880] [atos.object_control]: Received 0 configured object ids [esmini_adapter-7] terminate called after throwing an instance of 'std::runtime_error' [esmini_adapter-7] what(): Failed to initialize esmini with scenario file /home/munganeren/.astazero/ATOS/osc/ALKS_Scenario_4.4_1_CutInNoCollision_TEMPLATE.xosc [ERROR] [esmini_adapter-7]: process has died [pid 27808, exit code -6, cmd '/home/munganeren/atos_ws/install/atos/lib/atos/esmini_adapter --ros-args -r __node:=esmini_adapter -r __ns:=/atos --params-file /home/munganeren/.astazero/ATOS/conf/params.yaml']. [object_control-4] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError' [object_control-4] what(): failed to publish message: cannot publish data, at /tmp/binarydeb/ros-foxy-rmw-fastrtps-shared-cpp-1.3.1/src/rmw_publish.cpp:55, at /tmp/binarydeb/ros-foxy-rcl-1.1.14/src/rcl/publisher.c:319 [ERROR] [object_control-4]: process has died [pid 27784, exit code -6, cmd '/home/munganeren/atos_ws/install/atos/lib/atos/object_control --ros-args -r __node:=object_control -r __ns:=/atos --params-file /home/munganeren/.astazero/ATOS/conf/params.yaml'].

I tested it with different OSC files, but I always get this error message.

Additionally, I also tried to use esmini libraries directly from its folder. I have changed esminiadapter's include file paths for esmini but this didn't solve my issue either.

I kindly need your support to find the issue.

victorjarlow commented 1 year ago

Hello, The issue seems to be that the EsminiAdapter and ObjectControl modules are crashing sequentially. Can you post the xosc file you used when obtaining the above error output?

What output do you get when you modify the file launch/launch_utils/launch_base.py to contain prefix="xterm -e gdb --args" on line 79, and restart atos/ click initialize?

munganeren commented 1 year ago

Hi,

Attached you can see OSC file. It is one of the ALKS examples distributed with Esmini. Scenario.zip

image

As it is shown above, I couldn't see any debug log, however, didn't get the error message I have without prefix.

victorjarlow commented 1 year ago

By writing 'run' in the xterm window and pressing enter, the esminiAdapter module is started individually in debug mode. You should get more verbose output there.

victorjarlow commented 1 year ago

I think an issue with that file might be that it does not refer to any open drive file. See attached open scenario and open drive for an example that works. The LogicFile tag in the .xosc file points out the location of the .xodr file:

    <RoadNetwork>
        <LogicFile filepath="../odr/FLXZoneCrossingMediumRes.xodr"/>
    </RoadNetwork>

FLXZone.zip