Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not able to execute VRX on ARM64 #743

Open
Pulr opened this issue Oct 3, 2023 · 7 comments
Open

Not able to execute VRX on ARM64 #743

Pulr opened this issue Oct 3, 2023 · 7 comments

Comments

@Pulr
Copy link

Pulr commented Oct 3, 2023

Describe the bug
Currently it seems not to be possible to execute VRX on ARM64 by following the tutorials.

Expected behavior
I would expect that VRX could run after following the installation guide as both Gazebo Garden and ROS Humble support ARM64.

To Reproduce
List the steps to reproduce the problem:

  1. Run the the installation guide (https://github.com/osrf/vrx/wiki/getting_started_tutorial) using Host Machine Installation or via Docker (in the following I reference the host installation but the issue in docker is the same)
  2. Installing ROS and Gazebo runs without issues (Step 1 https://github.com/osrf/vrx/wiki/preparing_system_tutorial)
  3. In the following step it is not possible to install ros-humble-ros-gzgarden as it is not available for ARM64. I believe this is the core issue. I tried to compile it from https://github.com/gazebosim/ros_gz (this does not seem like the right repository for the missing package but it was the closest I could find). This however could not compile (see Error 3). As a alternative I then installed ros-humble-ros-gz. This however also installed Ignition and build the link to Ignition.
  4. Afterwards I can install VRX without issues according to the tutorial (https://github.com/osrf/vrx/wiki/installation_tutorial)
  5. If I now run ros2 launch vrx_gz competition.launch.py world:=sydney_regatta with Gazebo Garden open I receive the error shown in Error 1. Nothing is loaded into Gazebo.
  6. If I run the same command with Gazabo Ignition open I receive Error 2 but parts of the WAMV get loaded into Gazebo (see screenshot).
  7. If I do not install ros-humble-ros-gz as an alternative in Step 3 and run ros2 launch vrx_gz competition.launch.py world:=sydney_regatta with Gazebo Garden open I receive Error 4.

System Configuration:
Tell us about your system.

  • OS: Ubuntu 22.04.03 LTS aarch64 in a VM via VMware Fusion (13.0.2) on a Macbook M2 Pro (MacOS Sonoma 14.0)
  • ROS Version: ROS 2, Humble
  • Gazebo Version: Gazebo Sim 7 (Garden) and Gazebo 6 (Ignition) (installed by ros-humble-ros-gz) - I rather want to use Gazebo Garden
  • Graphics Card: None
  • Are you using VRX or VRX Classic? VRX

Errors

Error 1 (running VRX with Gazebo Garden open)

ros2 launch vrx_gz competition.launch.py world:=sydney_regatta
[INFO] [launch]: All log files can be found below /home/alex/.ros/log/2023-10-03-08-16-42-434690-vm2-12564
[INFO] [launch]: Default logging verbosity is set to INFO
['xacro', '/home/alex/vrx_ws/install/share/wamv_gazebo/urdf/wamv_gazebo.urdf.xacro', 'namespace:=wamv', 'locked:=true', 'vrx_sensors_enabled:=true', 'thruster_config:=H']
[INFO] [ruby $(which ign) gazebo-1]: process started with pid [12567]
[INFO] [monitor_sim-2]: process started with pid [12569]
[INFO] [create-3]: process started with pid [12572]
[INFO] [parameter_bridge-4]: process started with pid [12575]
[ruby $(which ign) gazebo-1] [Wrn] [gz.cc:99] Fuel world download failed because Fetch failed. Other errors
[ruby $(which ign) gazebo-1] Unable to find or download file
[create-3] [INFO] [1696321003.191319499] [ros_gz_sim]: Requesting list of world names.
[ERROR] [ruby $(which ign) gazebo-1]: process has died [pid 12567, exit code 255, cmd 'ruby $(which ign) gazebo -v 4 -r  sydney_regatta.sdf --force-version 6'].
[parameter_bridge-4] [INFO] [1696321003.209146230] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/clock (ignition.msgs.Clock) -> /clock (rosgraph_msgs/msg/Clock)] (Lazy 0)
[parameter_bridge-4] [INFO] [1696321003.211933252] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/vrx/task/info (ignition.msgs.Param) -> /vrx/task/info (ros_gz_interfaces/msg/ParamVec)] (Lazy 0)
[parameter_bridge-4] [INFO] [1696321003.222746246] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/vrx/debug/wind/speed (ignition.msgs.Float) -> /vrx/debug/wind/speed (std_msgs/msg/Float32)] (Lazy 0)
[parameter_bridge-4] [INFO] [1696321003.224988029] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/vrx/debug/wind/direction (ignition.msgs.Float) -> /vrx/debug/wind/direction (std_msgs/msg/Float32)] (Lazy 0)
[create-3] [INFO] [1696321008.191557574] [ros_gz_sim]: Requesting list of world names.
[create-3] [INFO] [1696321013.191690319] [ros_gz_sim]: Requesting list of world names.
[INFO] [monitor_sim-2]: process has finished cleanly [pid 12569]
[INFO] [parameter_bridge-4]: sending signal 'SIGINT' to process[parameter_bridge-4]
[INFO] [create-3]: sending signal 'SIGINT' to process[create-3]
[parameter_bridge-4] [INFO] [1696321014.150143587] [rclcpp]: signal_handler(signum=2)
[create-3] [INFO] [1696321014.150369712] [rclcpp]: signal_handler(signum=2)
[create-3] [INFO] [1696321018.191850884] [ros_gz_sim]: Timed out when getting world names.
[ERROR] [create-3]: process has died [pid 12572, exit code 255, cmd '/opt/ros/humble/lib/ros_gz_sim/create -string <sdf version='1.10'>
<model name='WAM-V'>
    <link name='wamv/base_link'>
      <inertial>
        <pose>-0.0035136061477780219 -0.00096544672795737712 0.25520552255993267 0 0 0</pose>
        <mass>250.18469999999999</mass>
        <inertia>
          <ixx>225.17117280344749</ixx>
          <ixy>0.1216186764289343</ixy>
          <ixz>0.99186607687258233</ixz>
          <iyy>454.14101743117533</iyy>
          <iyz>0.29216251726199022</iyz>
          <izz>499.75243467760379</izz>
        </inertia>
      </inertial>
...
 -name wamv -allow_renaming false -x -532 -y 162 -z 0 -R 0 -P 0 -Y 1 --ros-args'].
[ERROR] [parameter_bridge-4]: process[parameter_bridge-4] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [parameter_bridge-4]: sending signal 'SIGTERM' to process[parameter_bridge-4]
[INFO] [parameter_bridge-4]: process has finished cleanly [pid 12575]

Error 2 (running VRX with Gazebo Ignition open)

ros2 launch vrx_gz competition.launch.py world:=sydney_regatta
[INFO] [launch]: All log files can be found below /home/alex/.ros/log/2023-10-03-08-18-08-660074-vm2-12740
[INFO] [launch]: Default logging verbosity is set to INFO
['xacro', '/home/alex/vrx_ws/install/share/wamv_gazebo/urdf/wamv_gazebo.urdf.xacro', 'namespace:=wamv', 'locked:=true', 'vrx_sensors_enabled:=true', 'thruster_config:=H']
[INFO] [ruby $(which ign) gazebo-1]: process started with pid [12743]
[INFO] [monitor_sim-2]: process started with pid [12745]
[INFO] [create-3]: process started with pid [12748]
[INFO] [parameter_bridge-4]: process started with pid [12750]
[create-3] [INFO] [1696321089.402349060] [ros_gz_sim]: Requesting list of world names.
[ruby $(which ign) gazebo-1] [Wrn] [gz.cc:99] Fuel world download failed because Fetch failed. Other errors
[ruby $(which ign) gazebo-1] Unable to find or download file
[ERROR] [ruby $(which ign) gazebo-1]: process has died [pid 12743, exit code 255, cmd 'ruby $(which ign) gazebo -v 4 -r  sydney_regatta.sdf --force-version 6'].
[parameter_bridge-4] [INFO] [1696321089.480280383] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/clock (ignition.msgs.Clock) -> /clock (rosgraph_msgs/msg/Clock)] (Lazy 0)
[parameter_bridge-4] [INFO] [1696321089.480819080] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/vrx/task/info (ignition.msgs.Param) -> /vrx/task/info (ros_gz_interfaces/msg/ParamVec)] (Lazy 0)
[parameter_bridge-4] [INFO] [1696321089.482003290] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/vrx/debug/wind/speed (ignition.msgs.Float) -> /vrx/debug/wind/speed (std_msgs/msg/Float32)] (Lazy 0)
[parameter_bridge-4] [INFO] [1696321089.482346029] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/vrx/debug/wind/direction (ignition.msgs.Float) -> /vrx/debug/wind/direction (std_msgs/msg/Float32)] (Lazy 0)
[create-3] [INFO] [1696321089.613662676] [ros_gz_sim]: Requested creation of entity.
[create-3] [INFO] [1696321089.613705768] [ros_gz_sim]: OK creation of entity.
[INFO] [create-3]: process has finished cleanly [pid 12748]
[INFO] [optical_frame_publisher-5]: process started with pid [12783]
[INFO] [optical_frame_publisher-6]: process started with pid [12785]
[INFO] [optical_frame_publisher-7]: process started with pid [12787]
[INFO] [parameter_bridge-8]: process started with pid [12799]
[INFO] [pose_tf_broadcaster-9]: process started with pid [12818]
[INFO] [robot_state_publisher-10]: process started with pid [12820]
[parameter_bridge-8] [INFO] [1696321089.890555161] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/model/wamv/pose (ignition.msgs.Pose_V) -> /model/wamv/pose (tf2_msgs/msg/TFMessage)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.894097454] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/model/wamv/pose_static (ignition.msgs.Pose_V) -> /model/wamv/pose_static (tf2_msgs/msg/TFMessage)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.894283952] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/joint_state (ignition.msgs.Model) -> /world/sydney_regatta/model/wamv/joint_state (sensor_msgs/msg/JointState)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.903163169] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/vrx/contacts (ignition.msgs.Contacts) -> /vrx/contacts (ros_gz_interfaces/msg/Contacts)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.904257901] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_left_camera_sensor/image (ignition.msgs.Image) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_left_camera_sensor/image (sensor_msgs/msg/Image)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.904512955] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_left_camera_sensor/camera_info (ignition.msgs.CameraInfo) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_left_camera_sensor/camera_info (sensor_msgs/msg/CameraInfo)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.904780845] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_right_camera_sensor/image (ignition.msgs.Image) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_right_camera_sensor/image (sensor_msgs/msg/Image)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.904957091] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_right_camera_sensor/camera_info (ignition.msgs.CameraInfo) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/front_right_camera_sensor/camera_info (sensor_msgs/msg/CameraInfo)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.905135587] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/lidar_wamv_sensor/scan (ignition.msgs.LaserScan) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/lidar_wamv_sensor/scan (sensor_msgs/msg/LaserScan)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.905359926] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/lidar_wamv_sensor/scan/points (ignition.msgs.PointCloudPacked) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/lidar_wamv_sensor/scan/points (sensor_msgs/msg/PointCloud2)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.905597685] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/middle_right_camera_sensor/image (ignition.msgs.Image) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/middle_right_camera_sensor/image (sensor_msgs/msg/Image)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.906318588] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/middle_right_camera_sensor/camera_info (ignition.msgs.CameraInfo) -> /world/sydney_regatta/model/wamv/link/wamv/base_link/sensor/middle_right_camera_sensor/camera_info (sensor_msgs/msg/CameraInfo)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.906533217] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/gps_wamv_link/sensor/navsat/navsat (ignition.msgs.NavSat) -> /world/sydney_regatta/model/wamv/link/wamv/gps_wamv_link/sensor/navsat/navsat (sensor_msgs/msg/NavSatFix)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.906731051] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [/world/sydney_regatta/model/wamv/link/wamv/imu_wamv_link/sensor/imu_wamv_sensor/imu (ignition.msgs.IMU) -> /world/sydney_regatta/model/wamv/link/wamv/imu_wamv_link/sensor/imu_wamv_sensor/imu (sensor_msgs/msg/Imu)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.907226531] [wamv.ros_gz_bridge]: Creating ROS->GZ Bridge: [wamv/thrusters/left/thrust (std_msgs/msg/Float64) -> wamv/thrusters/left/thrust (ignition.msgs.Double)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.907859665] [wamv.ros_gz_bridge]: Creating ROS->GZ Bridge: [wamv/thrusters/left/pos (std_msgs/msg/Float64) -> wamv/thrusters/left/pos (ignition.msgs.Double)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.908548144] [wamv.ros_gz_bridge]: Creating ROS->GZ Bridge: [wamv/thrusters/right/thrust (std_msgs/msg/Float64) -> wamv/thrusters/right/thrust (ignition.msgs.Double)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.909191364] [wamv.ros_gz_bridge]: Creating ROS->GZ Bridge: [wamv/thrusters/right/pos (std_msgs/msg/Float64) -> wamv/thrusters/right/pos (ignition.msgs.Double)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.909544731] [wamv.ros_gz_bridge]: Creating GZ->ROS Bridge: [wamv/sensors/acoustics/receiver/range_bearing (ignition.msgs.Param) -> wamv/sensors/acoustics/receiver/range_bearing (ros_gz_interfaces/msg/ParamVec)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.913188170] [wamv.ros_gz_bridge]: Creating ROS->GZ Bridge: [/pinger/set_pinger_position (geometry_msgs/msg/Vector3) -> /pinger/set_pinger_position (ignition.msgs.Vector3d)] (Lazy 0)
[parameter_bridge-8] [INFO] [1696321089.914583425] [wamv.ros_gz_bridge]: Creating ROS->GZ Bridge: [/wamv/shooters/ball_shooter/fire (std_msgs/msg/Bool) -> /wamv/shooters/ball_shooter/fire (ignition.msgs.Boolean)] (Lazy 0)
[robot_state_publisher-10] [WARN] [1696321089.937071028] [kdl_parser]: The root link wamv/base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.
[robot_state_publisher-10] [INFO] [1696321089.937524833] [wamv.robot_state_publisher]: got segment wamv/ball_shooter_base_link
[robot_state_publisher-10] [INFO] [1696321089.938043109] [wamv.robot_state_publisher]: got segment wamv/ball_shooter_launcher_link
[robot_state_publisher-10] [INFO] [1696321089.938295663] [wamv.robot_state_publisher]: got segment wamv/base_link
[robot_state_publisher-10] [INFO] [1696321089.938525837] [wamv.robot_state_publisher]: got segment wamv/cpu_cases_link
[robot_state_publisher-10] [INFO] [1696321089.938648279] [wamv.robot_state_publisher]: got segment wamv/front_left_camera_link
[robot_state_publisher-10] [INFO] [1696321089.938751135] [wamv.robot_state_publisher]: got segment wamv/front_left_camera_link_optical
[robot_state_publisher-10] [INFO] [1696321089.938847488] [wamv.robot_state_publisher]: got segment wamv/front_left_camera_post_arm_link
[robot_state_publisher-10] [INFO] [1696321089.938945009] [wamv.robot_state_publisher]: got segment wamv/front_left_camera_post_link
[robot_state_publisher-10] [INFO] [1696321089.939038946] [wamv.robot_state_publisher]: got segment wamv/front_right_camera_link
[robot_state_publisher-10] [INFO] [1696321089.939129590] [wamv.robot_state_publisher]: got segment wamv/front_right_camera_link_optical
[robot_state_publisher-10] [INFO] [1696321089.939221901] [wamv.robot_state_publisher]: got segment wamv/front_right_camera_post_arm_link
[robot_state_publisher-10] [INFO] [1696321089.939312629] [wamv.robot_state_publisher]: got segment wamv/front_right_camera_post_link
[robot_state_publisher-10] [INFO] [1696321089.939403440] [wamv.robot_state_publisher]: got segment wamv/gps_wamv_link
[robot_state_publisher-10] [INFO] [1696321089.939494167] [wamv.robot_state_publisher]: got segment wamv/imu_wamv_link
[robot_state_publisher-10] [INFO] [1696321089.939586270] [wamv.robot_state_publisher]: got segment wamv/left_battery_link
[robot_state_publisher-10] [INFO] [1696321089.939676289] [wamv.robot_state_publisher]: got segment wamv/left_engine_link
[robot_state_publisher-10] [INFO] [1696321089.939766558] [wamv.robot_state_publisher]: got segment wamv/left_propeller_link
[robot_state_publisher-10] [INFO] [1696321089.939853702] [wamv.robot_state_publisher]: got segment wamv/lidar_wamv_link
[robot_state_publisher-10] [INFO] [1696321089.939946596] [wamv.robot_state_publisher]: got segment wamv/lidar_wamv_post_arm_link
[robot_state_publisher-10] [INFO] [1696321089.940033532] [wamv.robot_state_publisher]: got segment wamv/lidar_wamv_post_link
[robot_state_publisher-10] [INFO] [1696321089.940120883] [wamv.robot_state_publisher]: got segment wamv/middle_right_camera_link
[robot_state_publisher-10] [INFO] [1696321089.940206110] [wamv.robot_state_publisher]: got segment wamv/middle_right_camera_link_optical
[robot_state_publisher-10] [INFO] [1696321089.940291836] [wamv.robot_state_publisher]: got segment wamv/middle_right_camera_post_arm_link
[robot_state_publisher-10] [INFO] [1696321089.940378771] [wamv.robot_state_publisher]: got segment wamv/middle_right_camera_post_link
[robot_state_publisher-10] [INFO] [1696321089.940463831] [wamv.robot_state_publisher]: got segment wamv/receiver
[robot_state_publisher-10] [INFO] [1696321089.940550224] [wamv.robot_state_publisher]: got segment wamv/right_battery_link
[robot_state_publisher-10] [INFO] [1696321089.940635451] [wamv.robot_state_publisher]: got segment wamv/right_engine_link
[robot_state_publisher-10] [INFO] [1696321089.940721094] [wamv.robot_state_publisher]: got segment wamv/right_propeller_link
[INFO] [monitor_sim-2]: process has finished cleanly [pid 12745]
[INFO] [robot_state_publisher-10]: sending signal 'SIGINT' to process[robot_state_publisher-10]
[INFO] [pose_tf_broadcaster-9]: sending signal 'SIGINT' to process[pose_tf_broadcaster-9]
[INFO] [parameter_bridge-8]: sending signal 'SIGINT' to process[parameter_bridge-8]
[INFO] [optical_frame_publisher-7]: sending signal 'SIGINT' to process[optical_frame_publisher-7]
[INFO] [optical_frame_publisher-6]: sending signal 'SIGINT' to process[optical_frame_publisher-6]
[INFO] [optical_frame_publisher-5]: sending signal 'SIGINT' to process[optical_frame_publisher-5]
[INFO] [parameter_bridge-4]: sending signal 'SIGINT' to process[parameter_bridge-4]
[robot_state_publisher-10] [INFO] [1696321100.393831708] [rclcpp]: signal_handler(signum=2)
[pose_tf_broadcaster-9] [INFO] [1696321100.394297791] [rclcpp]: signal_handler(signum=2)
[parameter_bridge-8] [INFO] [1696321100.394940862] [rclcpp]: signal_handler(signum=2)
[optical_frame_publisher-7] [INFO] [1696321100.396479092] [rclcpp]: signal_handler(signum=2)
[optical_frame_publisher-6] [INFO] [1696321100.396917919] [rclcpp]: signal_handler(signum=2)
[optical_frame_publisher-5] [INFO] [1696321100.403500455] [rclcpp]: signal_handler(signum=2)
[parameter_bridge-4] [INFO] [1696321100.403926655] [rclcpp]: signal_handler(signum=2)
[INFO] [pose_tf_broadcaster-9]: process has finished cleanly [pid 12818]
[INFO] [optical_frame_publisher-6]: process has finished cleanly [pid 12785]
[INFO] [optical_frame_publisher-7]: process has finished cleanly [pid 12787]
[INFO] [robot_state_publisher-10]: process has finished cleanly [pid 12820]
[INFO] [optical_frame_publisher-5]: process has finished cleanly [pid 12783]
[ERROR] [parameter_bridge-8]: process[parameter_bridge-8] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[ERROR] [parameter_bridge-4]: process[parameter_bridge-4] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [parameter_bridge-8]: sending signal 'SIGTERM' to process[parameter_bridge-8]
[INFO] [parameter_bridge-4]: sending signal 'SIGTERM' to process[parameter_bridge-4]
[INFO] [parameter_bridge-4]: process has finished cleanly [pid 12750]
[INFO] [parameter_bridge-8]: process has finished cleanly [pid 12799]

Error 3 (compiling https://github.com/gazebosim/ros_gz)

colcon build
Starting >>> ros_gz_interfaces
Starting >>> ros_gz_sim
Finished <<< ros_gz_sim [8.56s]                                                                      
Finished <<< ros_gz_interfaces [12.1s]                      
Starting >>> ros_gz_bridge
--- stderr: ros_gz_bridge                            
Traceback (most recent call last):
  File "/home/alex/ws/src/ros_gz/ros_gz_bridge/bin/ros_gz_bridge_generate_factories", line 25, in <module>
    from ros_gz_bridge import generate_cpp
  File "/home/alex/ws/src/ros_gz/ros_gz_bridge/ros_gz_bridge/__init__.py", line 21, in <module>
    from rosidl_pycommon import expand_template
ModuleNotFoundError: No module named 'rosidl_pycommon'
gmake[2]: *** [CMakeFiles/ros_gz_bridge_lib.dir/build.make:80: generated/get_factory.cpp] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:182: CMakeFiles/ros_gz_bridge_lib.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< ros_gz_bridge [3.15s, exited with code 2]

Summary: 2 packages finished [15.6s]
  1 package failed: ros_gz_bridge
  1 package had stderr output: ros_gz_bridge
  3 packages not processed

sudo apt install rosidl_pycommon
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package rosidl_pycommon

Error 4 (running VRX without installing ros-humble-ros-gz as an alternativ to ros-humble-ros-gzgarden)

ros2 launch vrx_gz competition.launch.py world:=sydney_regatta
[INFO] [launch]: All log files can be found below /home/alex/.ros/log/2023-10-03-09-56-35-821731-vm2-19234
[INFO] [launch]: Default logging verbosity is set to INFO
[ERROR] [launch]: Caught exception in launch (see debug for traceback): "package 'ros_gz_sim' not found, searching: ['/home/alex/vrx_ws/install', '/opt/ros/humble']"

Screenshots
Here is a screenshot of what the WAMV looks like in Gazebo Ignition (in Gazebo Garden it is empty):
Gazebo

Additional notes
I also tried to solve the issue using Emulation. But this also did not succeed. In a emulated amd64 VM it was to laggy to be even remotly useful. In an emulation via docker and Rosetta 2 it seemed to be working good but I only got a white screen in Gazebo.

I believe the core issue is that ros-humble-ros-gzgarden is not available for ARM64.

added: I tested Gazebo Garden and ROS2 independend and they both run without issues. Also the connection between them seems to work as I can run examples like this (https://docs.ros.org/en/humble/Tutorials/Advanced/Simulators/Gazebo/Gazebo.html) without issues - but it only build the connection with Gazebo Fortress not Gazebo Garden.

@joshkabloomy
Copy link

I am getting the exact same error, I don't think gzgarden is compatible with ARM64 at the moment.

@srmainwaring
Copy link
Contributor

I don't think gzgarden is compatible with ARM64 at the moment.

That's not the case, but macOS is a tier 3 platform, so it's not fully supported by the dev teams.

  • gz-sim7 and gz-sim8 will run natively on macOS Ventura with metal rendering (MacBook Pro M1).
  • AFAIK there are no VMs capable of running graphics accelerated gz-sim7 or gz-sim8 using the ogre2 render engine.
    • Software rendering will work, but it's unsuitable for a simulation demanding heavy graphics and sensor usage.
  • It is possible to build ROS 2 Humble or Rolling with ros_gz natively on a mac M1 machine - it does involve some work, and is definitely not out of the box or supported.
  • Alternatively you could run ROS 2 Humble and ros_gz on a VM and use RELAY to communicate with the gz-sim7 session running natively under macOS. This is probably the best approach if you do not want to build ROS from source.

@Pulr
Copy link
Author

Pulr commented Oct 4, 2023

I don't think gzgarden is compatible with ARM64 at the moment.

That's not the case, but macOS is a tier 3 platform, so it's not fully supported by the dev teams.

* `gz-sim7` and `gz-sim8` will run natively on macOS Ventura with metal rendering (MacBook Pro M1).
  
  * Verified in [gz-sim: Installation gazebosim/gazebo_test_cases#804](https://github.com/gazebosim/gazebo_test_cases/issues/804) and linked tests.

* AFAIK there are no VMs capable of running graphics accelerated `gz-sim7` or `gz-sim8` using the ogre2 render engine.
  
  * Software rendering will work, but it's unsuitable for a simulation demanding heavy graphics and sensor usage.

* It is possible to build ROS 2 Humble or Rolling with `ros_gz` natively on a mac M1 machine - it does involve some work, and is definitely not out of the box or supported.

* Alternatively you could run ROS 2 Humble and `ros_gz` on a VM and use RELAY to communicate with the `gz-sim7` session running natively under macOS. This is probably the best approach if you do not want to build ROS from source.

Thank you very much for the quick reply! Installing ROS2 natively is not an option because I don't want to disable SIP. Can you give some more details how to use RELAY to connect ROS2 in the VM with the native instance of Gazebo?

@Pulr Pulr closed this as not planned Won't fix, can't repro, duplicate, stale Oct 4, 2023
@Pulr Pulr reopened this Oct 4, 2023
@Pulr Pulr closed this as completed Oct 4, 2023
@Pulr Pulr reopened this Oct 4, 2023
@srmainwaring
Copy link
Contributor

I don't want to disable SIP

@Pulr
Copy link
Author

Pulr commented Oct 4, 2023

  • You don't need to disable SIP to run Gazebo natively.

Yes, but for installing ROS2 natively I need to do that according to the official installation guide (https://docs.ros.org/en/humble/Installation/Alternatives/macOS-Development-Setup.html).

Perfect!

gz-sim7 and gz-sim8 will run natively on macOS Ventura with metal rendering (MacBook Pro M1).

I am unable to reproduce this. The installation in MacOS went smoothly but after I execute gz sim -v 4 shapes.sdf -s and gz sim -v 4 -g in separate terminals I only receive this error in the GUI Terminal:

[GUI] [Dbg] [Gui.cc:341] GUI requesting list of world names. The server may be busy downloading resources. Please be patient.

I was not able to solve this but found some other references to this issue: osrf/subt#1033 and gazebosim/gz-sim#38

  • Software rendering will work, but it's unsuitable for a simulation demanding heavy graphics and sensor usage.

I understand this is not an ideal solution. But as no other solution works as of right now for me, how could I get this running in the VM using Software rendering?

@bmasterk
Copy link

Hello all,
I plan to buy a "NVIDIA JETSON AGX ORIN DEVELOPMENT KIT 64GB", which also has a ARM processor (12-core Arm Cortex-A78AE v8.2 64-bit CPU). Will it be also affected by this problem?

Thank you in advance for your answer, best regards

@Pulr
Copy link
Author

Pulr commented Oct 20, 2023

Temporary Workaround

I discovered that VRX Classic is fully supported on ARM64. Therefore, my temporary solution is to switch back to VRX Classic until this issue is solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants