Code Monkey home page Code Monkey logo

ardupilot_gz's Introduction

ArduPilot Project

Discord

Test Copter Test Plane Test Rover Test Sub Test Tracker

Test AP_Periph Test Chibios Test Linux SBC Test Replay

Test Unit Teststest size

Test Environment Setup

Cygwin Build Macos Build

Coverity Scan Build Status

Test Coverage

Autotest Status

ArduPilot is the most advanced, full-featured, and reliable open source autopilot software available. It has been under development since 2010 by a diverse team of professional engineers, computer scientists, and community contributors. Our autopilot software is capable of controlling almost any vehicle system imaginable, from conventional airplanes, quad planes, multi-rotors, and helicopters to rovers, boats, balance bots, and even submarines. It is continually being expanded to provide support for new emerging vehicle types.

The ArduPilot project is made up of:

User Support & Discussion Forums

Developer Information

Top Contributors

How To Get Involved

License

The ArduPilot project is licensed under the GNU General Public License, version 3.

Maintainers

ArduPilot is comprised of several parts, vehicles and boards. The list below contains the people that regularly contribute to the project and are responsible for reviewing patches on their specific area.

ardupilot_gz's People

Contributors

esmanish avatar pedro-fuoco avatar pulak-gautam avatar ryanf55 avatar srmainwaring avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ardupilot_gz's Issues

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

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

Handle microxrceddsgen dependency

When following the README in a fresh computer microxrceddsgen was not installed like the rest of the dependencies, would it be possible to install it with vcs with the other packages?
Screenshot from 2023-06-18 19-40-16
I'd happily implement this to learn more, I just want to know if there's a reason why it isn't there beforehand
@srmainwaring

Add a debian install of the ROS2 tools

On Ubuntu, add a launchpad.net account for ArduPilot.
Add versioned debs for Ardupilot and its tools.

This will allow users to easily install debians of ArduPilot. Can click to add that project to your deb sources, and then you can update+install.

  • ardupilot_sitl
  • ardupilot_gz
  • ardupilot_dds

The prebuilt binaries are avilable for stable, 4.4, latest, etc.

Can look into having OSRF have the ardupilot repo on the build farm. We would want to make available ARdupilot4.4, ArdupilotRolling, etc.

Support launching gazebo sim to visualize vehicle

  • Works with ROS2 Humble
  • Works with Gazebo Garden
  • If you launch sitl with copter, a copter shows up in gazebo
  • If you launch sitl with a plane, a plane shows up in gazebo
  • If you move the vehicle in sitl, it moves in gazebo
  • Each vehicle has an attached camera output with a corresponding ros2 camera topic

robot state publisher crashing

Ubuntu 22.04, ROS2 Humble, Gazebo Sim, version 7.7.0.

The iris_runway.launch.py or the maze dont even start whereas the wildthumper_playpen shows something in gazebo although there are error msgs on not able to load sensors. The log is as follows

[~/ros2_ws] - ros2 launch ardupilot_gz_bringup iris_runway.launch.py 
[INFO] [launch]: Default logging verbosity is set to INFO
namespace:        
transport:        udp4
middleware:       dds
verbose:          4
discovery:        7400
port:             2019
refs:             /home/ash/ros2_ws/install/ardupilot_sitl/share/ardupilot_sitl/config/dds_xrce_profile.xml
command:          arduplane
model:            json
speedup:          1
slave:            0
sim_address:      127.0.0.1
instance:         0
defaults:         /home/ash/ros2_ws/install/ardupilot_gazebo/share/ardupilot_gazebo/config/gazebo-iris-gimbal.parm,/home/ash/ros2_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
out:              127.0.0.1:14550
[INFO] [ruby $(which ign) gazebo-1]: process started with pid [390291]
[INFO] [ruby $(which ign) gazebo-2]: process started with pid [390294]
[INFO] [micro_ros_agent-3]: process started with pid [390297]
[INFO] [dds_udp.parm --synthetic-clock -4]: process started with pid [390300]
[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 [390303]
[INFO] [robot_state_publisher-6]: process started with pid [390307]
[INFO] [rviz2-7]: process started with pid [390309]
[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 'ArduPlane'
[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 SERIAL0
[dds_udp.parm --synthetic-clock -4] SERIAL0 on TCP port 5760
[micro_ros_agent-3] [1709120146.169920] info     | UDPv4AgentLinux.cpp | init                     | running...             | port: 2019
[micro_ros_agent-3] [1709120146.170453] info     | Root.cpp           | set_verbose_level        | logger setup           | verbose_level: 4
[robot_state_publisher-6] [ERROR] [1709120146.316153064] [sdformat_urdf]: Attempting to load a Sensor, but the provided sensor type is missing or invalid.
[robot_state_publisher-6] [ERROR] [1709120146.316222425] [sdformat_urdf]: Attempting to load a Sensor, but the provided sensor type is missing or invalid.
[robot_state_publisher-6] Failed to parse robot description using: sdformat_urdf_plugin/SDFormatURDFParser
[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
[ruby $(which ign) gazebo-1] [Err] [Server.cc:139] Error Code 5: Msg: Attempting to load a Sensor, but the provided sensor type is missing or invalid.
[ruby $(which ign) gazebo-1] [Err] [Server.cc:139] Error Code 5: Msg: Attempting to load a Sensor, but the provided sensor type is missing or invalid.
[ruby $(which ign) gazebo-1] [Err] [Server.cc:139] Error Code 9: Msg: Failed to load a world.
[dds_udp.parm --synthetic-clock -4] Connection on serial port 5760
[dds_udp.parm --synthetic-clock -4] Loaded defaults from /home/ash/ros2_ws/install/ardupilot_gazebo/share/ardupilot_gazebo/config/gazebo-iris-gimbal.parm,/home/ash/ros2_ws/install/ardupilot_sitl/share/ardupilot_sitl/config/default_params/dds_udp.parm
[dds_udp.parm --synthetic-clock -4] Home: -35.363262 149.165237 alt=584.000000m hdg=353.000000
[ruby $(which ign) gazebo-1] [Msg] Ignition Gazebo Server v6.16.0
[ruby $(which ign) gazebo-1] [Msg] Loading SDF world file[/home/ash/ros2_ws/install/ardupilot_gz_gazebo/share/ardupilot_gz_gazebo/worlds/iris_runway.sdf].
[ruby $(which ign) gazebo-1] [Dbg] [gz.cc:410] Shutting down ign-gazebo-server
[INFO] [ruby $(which ign) gazebo-1]: process has finished cleanly [pid 390291]
[INFO] [launch]: process[ruby $(which ign) gazebo-1] was required: shutting down launched system
[INFO] [rviz2-7]: sending signal 'SIGINT' to process[rviz2-7]
[INFO] [robot_state_publisher-6]: sending signal 'SIGINT' to process[robot_state_publisher-6]
[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]: sending signal 'SIGINT' to process[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]
[INFO] [dds_udp.parm --synthetic-clock -4]: sending signal 'SIGINT' to process[dds_udp.parm --synthetic-clock -4]
[INFO] [micro_ros_agent-3]: sending signal 'SIGINT' to process[micro_ros_agent-3]
[INFO] [ruby $(which ign) gazebo-2]: sending signal 'SIGINT' to process[ruby $(which ign) gazebo-2]
[rviz2-7] [INFO] [1709120146.436794442] [rclcpp]: signal_handler(signum=2)
[ERROR] [micro_ros_agent-3]: process has died [pid 390297, exit code -2, cmd '/home/ash/ros2_ws/install/micro_ros_agent/lib/micro_ros_agent/micro_ros_agent udp4 --middleware dds --verbose 4 --port 2019 --refs /home/ash/ros2_ws/install/ardupilot_sitl/share/ardupilot_sitl/config/dds_xrce_profile.xml --ros-args -r __node:=micro_ros_agent -r __ns:=/'].
[rviz2-7] [INFO] [1709120146.573630162] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-7] [INFO] [1709120146.573657832] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-7] [INFO] [1709120146.586730385] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-7] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
[rviz2-7]   what():  failed to create guard condition: the given context is not valid, either rcl_init() was not called or rcl_shutdown() was called., at ./src/rcl/guard_condition.c:67
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/StyleDialog.qml:112:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/StyleDialog.qml:105:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/StyleDialog.qml:98:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:qml/Main.qml:102:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] qrc:/qml/PluginMenu.qml:27:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-2] [GUI] [Wrn] [Application.cc:797] [QT] file::/Gazebo/GazeboDrawer.qml:242:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ERROR] [robot_state_publisher-6]: process has died [pid 390307, exit code -6, cmd '/opt/ros/humble/lib/robot_state_publisher/robot_state_publisher --ros-args -r __node:=robot_state_publisher --params-file /tmp/launch_params_0tcs77rn --params-file /tmp/launch_params_lgvabq_y'].
[dds_udp.parm --synthetic-clock -4] No JSON sensor message received, resending servos
[ERROR] [rviz2-7]: process has died [pid 390309, exit code -6, cmd '/opt/ros/humble/lib/rviz2/rviz2 -d /home/ash/ros2_ws/install/ardupilot_gz_bringup/share/ardupilot_gz_bringup/rviz/iris.rviz --ros-args'].
[dds_udp.parm --synthetic-clock -4] No JSON sensor message received, resending servos
[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] Connect tcp:127.0.0.1:5760 source_system=255
[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] Log Directory: 
[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] Telemetry log: mav.tlog
[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] Waiting for heartbeat from tcp:127.0.0.1:5760
[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] link 1 down
[dds_udp.parm --synthetic-clock -4] No JSON sensor message received, resending servos
[dds_udp.parm --synthetic-clock -4] No JSON sensor message received, resending servos
[ERROR] [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[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] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[ERROR] [dds_udp.parm --synthetic-clock -4]: process[dds_udp.parm --synthetic-clock -4] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[ERROR] [ruby $(which ign) gazebo-2]: process[ruby $(which ign) gazebo-2] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[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]: sending signal 'SIGTERM' to process[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]
[INFO] [dds_udp.parm --synthetic-clock -4]: sending signal 'SIGTERM' to process[dds_udp.parm --synthetic-clock -4]
[INFO] [ruby $(which ign) gazebo-2]: sending signal 'SIGTERM' to process[ruby $(which ign) gazebo-2]
[ERROR] [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 has died [pid 390303, exit code -15, cmd '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 '].
[ERROR] [dds_udp.parm --synthetic-clock -4]: process has died [pid 390300, exit code -15, cmd 'arduplane --model json --speedup 1 --slave 0 --sim-address=127.0.0.1 --instance 0 --defaults /home/ash/ros2_ws/install/ardupilot_gazebo/share/ardupilot_gazebo/config/gazebo-iris-gimbal.parm,/home/ash/ros2_ws/install/ardupilot_sitl/share/ardupilot_sitl/config/default_params/dds_udp.parm --synthetic-clock '].
[ERROR] [ruby $(which ign) gazebo-2]: process has died [pid 390294, exit code -15, cmd 'ruby $(which ign) gazebo -v4 -g --force-version 6'].
[INFO] [launch]: process[ruby $(which ign) gazebo-2] was required: shutting down launched system

ardupilot_sitl build error with ROS 2

Hello,

I am trying to test ardupilot with gazebosim (gz-harmonic) and ROS 2 (humble)
Ubunut 22.04
Following this guide

I encountered the following error.
Yes, I did follow the installation for the microxrcedds_gen
here is the output for the version info

ros@aarsh-pc:/workspaces/ardupilot$  microxrceddsgen -version
openjdk version "11.0.22" 2024-01-16
OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1)
OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1, mixed mode, sharing)
microxrceddsgen version: 2.0.2

Error while building the ardupilot_sitl

Starting >>> ardupilot_sitl
--- stderr: ardupilot_sitl                         
gmake[2]: *** [CMakeFiles/ardupilot_build.dir/build.make:70: CMakeFiles/ardupilot_build] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:168: CMakeFiles/ardupilot_build.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< ardupilot_sitl [1.57s, exited with code 2]

Also, I forgot to mention one more error, so I have updated the issue.

[UPDATE]
Error while building th microxrcedds_agent

[ 81%] Performing configure step for 'uagent'              
loading initial cache file /workspaces/ardupilot/build/microxrcedds_agent/uagent-prefix/tmp/uagent-cache-.cmake
-- Setting build type to 'Release' as none was specified.
CMake Error at CMakeLists.txt:153 (find_package):
  Could not find a configuration file for package "fastcdr" that is
  compatible with requested version "2".

  The following configuration files were considered but not accepted:

    /opt/ros/humble/lib/cmake/fastcdr/fastcdr-config.cmake, version: 1.0.24

Is it a known issue?
I tried to look up the internet, but there was no lead.

Thanks.

sdformat_urdf package error

Ubuntu 20.04, ROS2 Humble, Gazebo Garden

Hey, so it seems i ran into a bit of a trouble

When i'm trying to execute the following code from the official Ardupilot documentation (https://ardupilot.org/dev/docs/ros2-gazebo.html), trying to install repositories into a ROS2 workspace to link up with gazebo

cd ~/ros2_ws
vcs import --input https://raw.githubusercontent.com/ArduPilot/ardupilot_gz/main/ros2_gz.repos --recursive src

https://raw.githubusercontent.com/ArduPilot/ardupilot_gz/main/ros2_gz.repos

I'm getting the following error:

...
=== src/micro_ros_agent (git) ===

Already on 'humble'
Your branch is up to date with 'origin/humble'.

=== src/ros_gz (git) ===

Already on 'humble'
Your branch is up to date with 'origin/humble'.

=== src/sdformat_urdf (git) ===
Could not checkout ref 'ros2': fatal: invalid reference: ros2

Every other package was cloned correctly, however from what i can understand, the sdformat_urdf import fails because this repo https://github.com/ros/sdformat_urdf.git doesn't have a "ros2" branch anymore.
And so, if i try to colcon build the project anyway, i'm getting the following error

Starting >>> ros_gz_interfaces
Starting >>> ros_gz_sim
Starting >>> micro_ros_agent
Starting >>> ardupilot_gazebo
Starting >>> ardupilot_msgs
Starting >>> ardupilot_gz_description
Starting >>> ardupilot_gz_gazebo
Starting >>> sdformat_test_files
Starting >>> ardupilot_gz_application
Finished <<< ardupilot_gz_description [0.26s]
Finished <<< sdformat_test_files [0.27s]
Finished <<< ardupilot_gz_application [0.27s]
Starting >>> sdformat_urdf
Finished <<< micro_ros_agent [0.32s]
Finished <<< ardupilot_gazebo [0.35s]
Starting >>> ardupilot_sitl_models
Finished <<< ardupilot_gz_gazebo [0.36s]
Finished <<< ros_gz_sim [0.39s]
Starting >>> ros_ign_gazebo
Finished <<< ardupilot_sitl_models [0.16s]
Finished <<< ros_ign_gazebo [0.17s]
--- stderr: sdformat_urdf
CMake Error at CMakeLists.txt:22 (find_package):
By not providing "Findsdformat_vendor.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"sdformat_vendor", but CMake did not find one.

Could not find a package configuration file provided by "sdformat_vendor"
with any of the following names:

sdformat_vendorConfig.cmake
sdformat_vendor-config.cmake

Add the installation prefix of "sdformat_vendor" to CMAKE_PREFIX_PATH or
set "sdformat_vendor_DIR" to a directory containing one of the above files.
If "sdformat_vendor" provides a separate development package or SDK, be
sure it has been installed.

gmake: *** [Makefile:623: cmake_check_build_system] Error 1

Failed <<< sdformat_urdf [0.30s, exited with code 2]
Aborted <<< ardupilot_msgs [0.60s]
Aborted <<< ros_gz_interfaces [1.20s]

Summary: 9 packages finished [1.73s]
1 package failed: sdformat_urdf
2 packages aborted: ardupilot_msgs ros_gz_interfaces
1 package had stderr output: sdformat_urdf
13 packages not processed

What i did try to do was, download the same files from the humble branch and swap them out in the workspace, which seemed to solve the issue, however while building the `bringup' package my computer crashes so hard that the screen freezes, audio stops and doesn't react to any kind of input.

Thank you for any feedback in advance

Set up basic infrastructure for running a CLI smoke test

Create a ROS2 package that can run a smoke test to ensure the DDS functionality in ardupilot is working as intended.

  • Can be build with colcon build
  • Can be tested with colcon test
  • A failure to receive any messages results in failure
  • A failure to receive messages within the expected rate results in failure
  • A failure to receive the Time topic with the time close to epoch() results in failure
  • A failure for the node to start results in failure

References:
https://github.com/ros2/launch_ros/pull/263/files#diff-9d860a3041f103f8e08aef7ce1db4364a4a7048ee6afaadd3c4e820647786e45

https://github.com/GitRepJo/ros2_cpp_test_example/blob/main/test/sub_pub_launch_testing.py

ros2/launch_ros#272

rosdep: the following packages/stacks could not have their rosdep keys resolved

using ros2-humble & gz-harmonic (same with gz-garden)

on Step 4 from readme.md I've got:

a@a-i5  ~/ros2_ws  rosdep install --rosdistro $ROS_DISTRO --from-paths src -i -r -y

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
ros_gz_bridge: Cannot locate rosdep definition for [gz-transport13]
sdformat_urdf: Cannot locate rosdep definition for [sdformat14]
ros_gz_sim: Cannot locate rosdep definition for [gz-transport13]
ros_gz_image: Cannot locate rosdep definition for [gz-transport13]
ardupilot_gazebo: Cannot locate rosdep definition for [gz-sim8]
ardupilot_gz_gazebo: Cannot locate rosdep definition for [gz-sim8]

rviz crashing due to shared library error - caused by VSCode GTK_PATH environment variable

Environment

  • ROS 2 humble
  • Gazebo garden

Steps to reproduce

colcon build --packages-up-to ardupilot_gz_bringup
. install/setup.bash
ros2 launch ardupilot_gz_bringup iris_runway.launch.py

Logs

[rviz2-8] /opt/ros/humble/lib/rviz2/rviz2: symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE
[ERROR] [rviz2-8]: process has died [pid 2168649, exit code 127, cmd '/opt/ros/humble/lib/rviz2/rviz2 -d /home/rfriedman/Dev/ardu_ws/install/ardupilot_gz_bringup/share/ardupilot_gz_bringup/rviz/iris.rviz --ros-args'].

Now, this is a likely a direct problem with rviz

rfriedman@dev-rfriedman01:~/Dev/ardu_ws$ rviz2 
rviz2: symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE

Split TF tree in Iris maze

Expected

Can launch iris maze and have a single TF tree with no error in RVIZ

Actual

Rviz complains about missing frames, and the TF tree is split. On two computers, it only happens on one of them. Unclear what the difference is. I'll chase it down.

Steps to reproduce

  • Create a fresh ROS 2 workspace
  • Install the ros_gz dependencies per the README with VCS
  • Build all packages up to ros_gz_bringup
  • Launch iris maze
  • Run TF viewer: ros2 run tf2_tools view_frames

Logs

See the attached PDF for the desired frame tree

frames_2023-11-11_21.50.14.pdf

Wrong command in README?

Hi,

FYI: I followed the installation instructions in the README, and the mavproxy.py --console --map command in the Usage section does not work for me:

mavproxy.py --console --map
WARNING: You should uninstall ModemManager as it conflicts with APM and Pixhawk
Auto-detected serial ports are:
/dev/ttyS0
/dev/ttyS1
/dev/ttyS10
/dev/ttyS11
/dev/ttyS12
/dev/ttyS13
/dev/ttyS14
/dev/ttyS15
/dev/ttyS16
/dev/ttyS17
/dev/ttyS18
/dev/ttyS19
/dev/ttyS2
/dev/ttyS20
/dev/ttyS21
/dev/ttyS22
/dev/ttyS23
/dev/ttyS24
/dev/ttyS25
/dev/ttyS26
/dev/ttyS27
/dev/ttyS28
/dev/ttyS29
/dev/ttyS3
/dev/ttyS30
/dev/ttyS31
/dev/ttyS4
/dev/ttyS5
/dev/ttyS6
/dev/ttyS7
/dev/ttyS8
/dev/ttyS9
Warning: multiple possible serial ports. Use console GUI or 'link add' to add port, or restart using --master to select a single port
No mode mapping available
Loaded module console
Loaded module map
Log Directory: 
Telemetry log: mav.tlog
MAV> 

However, mavproxy.py --console --map --master=udp:127.0.0.1:14551 works.

Rviz reports invalid frame ID

Hi,

when I do ros2 launch ardupilot_gz_bringup iris_runway.launch.py I get spammed by rviz with this message:

[rviz2-8] Warning: Invalid frame ID "iris/odom" passed to canTransform argument target_frame - frame does not exist
[rviz2-8]          at line 93 in ./src/buffer_core.cpp

Also, RVIZ starts misconfigured:

image

I could fix this by updating the Global Options Fixed Frame from iris/odom to base_link, and removing the Robot Model TF Prefix from iris to empty:

image

After this change the aforementioned spamming continues, but with a different message

[rviz2-8] [INFO] [1694529493.830705912] [rviz]: Message Filter dropping message: frame 'iris/odom' at time 113.380 for reason 'discarding message because the queue is full'

Either the .rviz-config file is not set up correctly or some topics are incorrectly mapped.

Support ardupilot-developer specific launch scripts for rapid development

Support working on ArduPilot as a developer where you want to kill ArduPilot, edit code, and restart without having to restart all the visualization.

Need to make a launch file that excludes sitl/mavproxy, but the configuration file has a set of ports to connect to. SITL instance number has an offset.

We expect a couple of launch files, and maybe some instructions on how to do rapid development as an ardupilot dev.

example:
sim_vehicle.py --ros2 starts DDS on UDP

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.