IOES-Lab / dave

Project DAVE
Apache License 2.0
9 stars 2 forks source link

Failed to load ArduPilot plugin for BlueROV2 model #19

Open rakeshv24 opened 1 week ago

rakeshv24 commented 1 week ago

Issue Summary

The ArduPilot plugin is not loading correctly when testing the BlueROV2 model in the Docker environment. We need to resolve this error to ensure proper functionality.

Details

  1. The BlueROV2 models have been added, but the ArduPilot plugin does not load properly — [Err] [SystemLoader.cc:92] Failed to load system plugin [libArduPilotPlugin.so]: Could not find shared library.
  2. The ardupilot and ardupilot_gazebo are installed in the Docker image at /opt/ardupilot_dave/ in an attempt to resolve the above error.

Conversation Summary

  1. Prerequisites such as libgz-sim8-dev, rapidjson-dev, libopencv-dev, and gstreamer are also required and need to be added to the installation script.
  2. Further testing has shown thatmavros is needed, and possibly mavros_extra_plugins as well.
  3. The USER permissions on the Docker image for Mac are incorrect, and ROS2 is not sourced upon startup.

Commands for Testing BlueROV2 Model

Step 1: Pull the recent docker image

For Ubuntu:

docker pull ioeslab/dave:ros2
docker tag ioeslab/dave:ros2 dave:latest
source ~/dave_ws/dave_venv/bin/activate
cd ~/dave_ws/src/dockwater
./run.bash dave:latest

For Mac:

docker pull ioeslab/dave:ros2-arm-rdp
docker tag ioeslab/dave:ros2-arm-rdp dave:latest
source ~/dave_ws/dave_venv/bin/activate
cd ~/dave_ws/src/dockwater
./run.bash -r dave:latest

Step 2: Launch BlueROV2 model

git checkout robot_launch
cd ~/dave_ws
colcon build && source install/setup.bash
ros2 launch dave_demos dave_robot.launch.py z:=-5 namespace:=bluerov2 world_name:=dave_ocean_waves paused:=false
woensug-choi commented 3 days ago

With ioeslab/dave:ros2-arm-rdp (which is for Apple SiliconMac with RDP) and ioeslab/dave:ros2 (Ubuntu AMD64)

1. Basic Arudpilot control test (REF: https://ardupilot.org/dev/docs/sitl-with-gazebo.html#iris-quadcopter)

   # Terminal 1 :
   gz sim -v4 -r zephyr_runway.sdf
   # Terminal 2 : (includes --model JSON)
   sim_vehicle.py -v ArduPlane -f gazebo-zephyr --model JSON --map --console
   # STABILIZE> mode guided
   # GUIDED> arm throttle
   # GUIDED> takeoff 5

image

2. Bluerov (as it is with -M JSON at robot_config.py's ardusub_cmd

3. Bluerov (Modified to use -M gazebo)

4. Bluerov (Remove ardusub_process and run sim_vehicle.py instead)

@rakeshv24 FYI