Closed
Description
Bug report
- AirSim Version/#commit: a7c05fc (latest master)
- UE/Unity version: 4.26.2
- autopilot version: N/A
- OS Version: Windows 10.0.19043.1348 (Running ros in WSL ubuntu 16.04)
What's the issue you encountered?
I want to record a rosbag with ENU coordinates. When trying to set the parameter world_frame_id
to world_enu
as suggested in https://microsoft.github.io/AirSim/airsim_ros_pkgs/#parameters the airsim_node process crashes.
Settings
How can the issue be reproduced?
This happens consistently when I try running these commands using the python client:
client.confirmConnection()
client.enableApiControl(True)
client.armDisarm(True)
client.simPause(False)
client.takeoffAsync().join()
client.moveToZAsync(-100, 50).join()
I configured the parameter in ros/src/airsim_ros_pkgs/launch/airsim_node.launch
:
<launch>
<arg name="output" default="log"/>
<arg name="publish_clock" default="false"/>
<arg name="is_vulkan" default="true"/>
<arg name="host" default="localhost" />
<node name="airsim_node" pkg="airsim_ros_pkgs" type="airsim_node" output="$(arg output)">
<param name="is_vulkan" type="bool" value="false" />
<!-- ROS timer rates. Note that timer callback will be processed at maximum possible rate, upperbounded by the following ROS params -->
<param name="update_airsim_img_response_every_n_sec" type="double" value="0.05" />
<param name="update_airsim_control_every_n_sec" type="double" value="0.01" />
<param name="update_lidar_every_n_sec" type="double" value="0.01" />
<param name="publish_clock" type="bool" value="$(arg publish_clock)" />
<param name="host_ip" type="string" value="$(arg host)" />
<!-- Custom parameters see https://microsoft.github.io/AirSim/airsim_ros_pkgs/#parameters -->
<param name="world_frame_id" type="string" value="world_enu" />
<param name="odom_frame_id" type="string" value="odom_local_enu" />
<param name="coordinate_system_enu" type="boolean" value="true" />
</node>
<!-- Static transforms -->
<include file="$(find airsim_ros_pkgs)/launch/static_transforms.launch"/>
</launch>
The crash does not happen when I remove the custom parameters from the launch file.
Include full error message in text form
started roslaunch server http://DESKTOP-MDK8UT8:50146/
SUMMARY
========
PARAMETERS
* /airsim_node/coordinate_system_enu: True
* /airsim_node/host_ip: localhost
* /airsim_node/is_vulkan: False
* /airsim_node/odom_frame_id: odom_local_enu
* /airsim_node/publish_clock: False
* /airsim_node/update_airsim_control_every_n_sec: 0.01
* /airsim_node/update_airsim_img_response_every_n_sec: 0.05
* /airsim_node/update_lidar_every_n_sec: 0.01
* /airsim_node/world_frame_id: world_enu
* /rosdistro: melodic
* /rosversion: 1.14.12
NODES
/
airsim_node (airsim_ros_pkgs/airsim_node)
ned_to_enu_pub (tf/static_transform_publisher)
auto-starting new master
process[master]: started with pid [21780]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 6066bde0-5606-11ec-b6e2-309c239af351
process[rosout-1]: started with pid [21795]
started core service [/rosout]
process[airsim_node-2]: started with pid [21812]
process[ned_to_enu_pub-3]: started with pid [21813]
terminate called after throwing an instance of 'std::runtime_error'
what(): Field x does not exist
[airsim_node-2] process has died [pid 18596, exit code -6, cmd /mnt/n/work/AirSim/ros/devel/lib/airsim_ros_pkgs/airsim_node __name:=ai
rsim_node __log:=/home/minn/.ros/log/1ea60c3c-5604-11ec-a595-309c239af351/airsim_node-2.log].
log file: /home/minn/.ros/log/1ea60c3c-5604-11ec-a595-309c239af351/airsim_node-2*.log
The log files contain a few other errors, which I don't know how relevant they might be:
[rosmaster.master][INFO] 2021-12-05 20:47:44,616: publisherUpdate[/rosout] -> http://DESKTOP-MDK8UT8:49959/ ['http://DESKTOP-MDK8UT8:49972/', 'http://DESKTOP-MDK8UT8:49982/']
[rosmaster.master][INFO] 2021-12-05 20:47:44,616: publisherUpdate[/rosout] -> http://DESKTOP-MDK8UT8:50133/ ['http://DESKTOP-MDK8UT8:49972/', 'http://DESKTOP-MDK8UT8:49982/']
[rosmaster.master][INFO] 2021-12-05 20:47:44,617: publisherUpdate[/rosout] -> http://DESKTOP-MDK8UT8:49959/ ['http://DESKTOP-MDK8UT8:49972/', 'http://DESKTOP-MDK8UT8:49982/']: sec=0.00, result=[1, '', 0]
[rosmaster.master][INFO] 2021-12-05 20:47:44,619: publisherUpdate[/rosout] -> http://DESKTOP-MDK8UT8:50133/ ['http://DESKTOP-MDK8UT8:49972/', 'http://DESKTOP-MDK8UT8:49982/']: sec=0.00, exception=<Fault -1: 'publisherUpdate: unknown method name'>
[rosmaster.threadpool][ERROR] 2021-12-05 20:47:44,621: Traceback (most recent call last):
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmaster/threadpool.py", line 218, in run
result = cmd(*args)
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmaster/master_api.py", line 210, in publisher_update_task
ret = xmlrpcapi(api).publisherUpdate('/master', topic, pub_uris)
File "/usr/lib/python2.7/xmlrpclib.py", line 1243, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1283, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1316, in single_request
return self.parse_response(response)
File "/usr/lib/python2.7/xmlrpclib.py", line 1493, in parse_response
return u.close()
File "/usr/lib/python2.7/xmlrpclib.py", line 800, in close
raise Fault(**self._stack[0])
Fault: <Fault -1: 'publisherUpdate: unknown method name'>
[rosmaster.master][INFO] 2021-12-05 20:47:45,728: publisherUpdate[/tf] -> http://DESKTOP-MDK8UT8:49982/ ['http://DESKTOP-MDK8UT8:49982/']
[rosmaster.master][INFO] 2021-12-05 20:47:45,730: -SERVICE [/ned_to_enu_pub/set_logger_level] /ned_to_enu_pub rosrpc://DESKTOP-MDK8UT8:49971
[rosmaster.master][INFO] 2021-12-05 20:47:45,730: publisherUpdate[/tf] -> http://DESKTOP-MDK8UT8:49982/ ['http://DESKTOP-MDK8UT8:49982/']: sec=0.00, exception=[Errno 111] Connection refused
[rosmaster.threadpool][ERROR] 2021-12-05 20:47:45,731: Traceback (most recent call last):
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmaster/threadpool.py", line 218, in run
result = cmd(*args)
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmaster/master_api.py", line 210, in publisher_update_task
ret = xmlrpcapi(api).publisherUpdate('/master', topic, pub_uris)
File "/usr/lib/python2.7/xmlrpclib.py", line 1243, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1283, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1311, in single_request
self.send_content(h, request_body)
File "/usr/lib/python2.7/xmlrpclib.py", line 1459, in send_content
connection.endheaders(request_body)
File "/usr/lib/python2.7/httplib.py", line 1095, in endheaders
self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 898, in _send_output
self.send(msg)
File "/usr/lib/python2.7/httplib.py", line 860, in send
self.connect()
File "/usr/lib/python2.7/httplib.py", line 837, in connect
self.timeout, self.source_address)
File "/usr/lib/python2.7/socket.py", line 575, in create_connection
raise err
error: [Errno 111] Connection refused
What's better than filing an issue? Filing a pull request :).