ArduPilot / ardupilot_gz

Tools for ArduPilot ROS2 integration and testing on ROS 2 humble
GNU General Public License v3.0
27 stars 19 forks source link

Could not find the `robot` element in the xml file #38

Closed Ryanf55 closed 7 months ago

Ryanf55 commented 8 months ago

Desired behavior

Iris runway launches without errors, and model can fly. This is after building the ardupilot_gz_bringup with packages-up-to colcon flag.

Actual behavior

robot_state_publisher crashes because the XML is invalid.

Version

main on 030d85f5a65a169cb5912359480bdc942e6332b0

Logs

$ ros2 launch ardupilot_gz_bringup iris_runway.launch.py rviz:=true use_gz_tf:=true
[INFO] [launch]: All log files can be found below /home/rfriedman/.ros/log/2023-11-06-16-20-22-945779-dev-rfriedman01-1384385
[INFO] [launch]: Default logging verbosity is set to INFO
namespace:        
transport:        udp4
middleware:       dds
verbose:          4
discovery:        7400
port:             2019
refs:             /home/rfriedman/Dev/ardu_ws/install/ardupilot_sitl/share/ardupilot_sitl/config/dds_xrce_profile.xml
command:          arducopter
model:            json
speedup:          1
slave:            0
sim_address:      127.0.0.1
instance:         0
defaults:         /home/rfriedman/Dev/ardu_ws/install/ardupilot_gazebo/share/ardupilot_gazebo/config/gazebo-iris-gimbal.parm,/home/rfriedman/Dev/ardu_ws/install/ardupilot_sitl/share/ardupilot_sitl/config/default_params/dds_udp.parm
synthetic_clock:  True
command:          mavproxy.py
master:           tcp:127.0.0.1:5760
sitl:             127.0.0.1:5501
[INFO] [ruby $(which gz) sim-1]: process started with pid [1384386]
[INFO] [ruby $(which gz) sim-2]: process started with pid [1384389]
[INFO] [micro_ros_agent-3]: process started with pid [1384392]
[INFO] [dds_udp.parm --synthetic-clock -4]: process started with pid [1384395]
[INFO] [mavproxy.py --out 127.0.0.1:14550 --out 127.0.0.1:14551 --master tcp:127.0.0.1:5760 --sitl 127.0.0.1:5501 --non-interactive -5]: process started with pid [1384398]
[INFO] [robot_state_publisher-6]: process started with pid [1384401]
[INFO] [parameter_bridge-7]: process started with pid [1384404]
[INFO] [rviz2-8]: process started with pid [1384406]
[dds_udp.parm --synthetic-clock -4] Setting SIM_SPEEDUP=1.000000
[dds_udp.parm --synthetic-clock -4] Starting SITL: JSON
[dds_udp.parm --synthetic-clock -4] JSON control interface set to 127.0.0.1:9002
[dds_udp.parm --synthetic-clock -4] Starting sketch 'ArduCopter'
[dds_udp.parm --synthetic-clock -4] Starting SITL input
[dds_udp.parm --synthetic-clock -4] Using Irlock at port : 9005
[dds_udp.parm --synthetic-clock -4] Waiting for connection ....
[dds_udp.parm --synthetic-clock -4] bind port 5760 for 0
[dds_udp.parm --synthetic-clock -4] Serial port 0 on TCP port 5760
[micro_ros_agent-3] [1699312823.056414] info     | UDPv4AgentLinux.cpp | init                     | running...             | port: 2019
[micro_ros_agent-3] [1699312823.056836] info     | Root.cpp           | set_verbose_level        | logger setup           | verbose_level: 4
[robot_state_publisher-6] Error:   Could not find the 'robot' element in the xml file
[robot_state_publisher-6]          at line 109 in ./urdf_parser/src/model.cpp
[robot_state_publisher-6] Failed to parse robot description using: urdf_xml_parser/URDFXMLParser
[robot_state_publisher-6] terminate called after throwing an instance of 'std::runtime_error'
[robot_state_publisher-6]   what():  Unable to initialize urdf::model from robot description

image

Ryanf55 commented 8 months ago

Perhaps this is the reason the model is nearly invisible: image

Ryanf55 commented 8 months ago

More info, tracing down sdformat_urdf, which is in the src workspace, not built, and not obviously depended on in the repo that I can find.

/home/rfriedman/Dev/ardu_ws/install/ardupilot_gz_gazebo/share/ardupilot_gz_gazebo/worlds:/home/rfriedman/Dev/ardu_ws/install/ardupilot_gz_description/share/ardupilot_gz_description/models:/home/rfriedman/Dev/ardu_ws/install/ardupilot_gz_description/share:/home/rfriedman/Dev/ardu_ws/install/ardupilot_gazebo/share/ardupilot_gazebo/worlds:/home/rfriedman/Dev/ardu_ws/install/ardupilot_gazebo/share/ardupilot_gazebo/models:/home/rfriedman/Dev/ardu_ws/install/ardupilot_gazebo/share
Ryanf55 commented 7 months ago

The package.xml is now complete as far as I can tell, which was completed by #37. The nearly invisible model is a separate issue.