Repo symbol

osprey repository

Repo symbol

osprey repository

Repo symbol

osprey repository

Repo symbol

osprey repository

Repository Summary

Description An Open-Source Soft Robotic Platform for Autonomous Aerial Manipulation in the Wild
Checkout URI https://github.com/srl-ethz/osprey.git
VCS Type git
VCS Version main
Last Updated 2024-11-25
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gripper_control 0.9.0
mission_control 0.9.0
object_detection 0.9.0
osprey_interface 0.9.0
quad_control 0.9.0
spectacular_vio 0.9.0
vicon 0.9.0

README

We present the accompanying code and hardware schematics to An Open-Source Soft Robotic Platform for Autonomous Aerial Manipulation in the Wild. This workspace contains all required ROS 2 packages for the platform.

Workspace Structure

Environment

Our software stack was developed for ROS2 Foxy. To install ROS2 Foxy, follow the official installation guide. We use both Python and C++ for our software stack. Your Python environment for ROS should have the following packages:

Python

You will need a Python environment for ROS and a separate environment for running segmentation, which is independent of ROS. This makes it easier to try different segmentation algorithms, as you can freely switch the Python version and other dependencies.

pip install open3d imagezmq matplotlib spectacularAI

Our segmentation node runs outside of ROS to make it easier to develop on with conda environments. To set up the environment for the segmentation node:

mamba env create -f sam2_environment.yml

In case it is needed, backwards compatibility to ROS1 can be achieved using the ros1_bridge.

Other setup

To use a Vicon motion capture system, if you have it, follow the installation guide of the ros2-vicon-receiver submodule, which you can find here.

You should also install MAVlink for communication.

CAD Files

CAD files were created with NX Siemens. For best compatibility use NX 1988 to open the files. The assembly file is located at cad_parts/098082_02.prt

Packages

Quad Control

Control interface to the PX4 using mavlink.

  • API for interactions with the PX4

Vicon

Interface to a motion capture system and to forward pose estimation data to the PX4 (from both motion capture and SLAM systems).

  • Publish motion capture pose data from the Vicon system to the ROS 2 network
  • Forward motion capture pose data from the Vicon system to the PX4 controller
  • Publish SLAM data to the PX4 controller
  • Publish telemetry data from the PX4 controller to the ROS 2 network

Spectacular VIO

ROS2 wrapper for Spectacular AI SLAM/VIO system using an OAK-D camera.

Gripper Control

ROS2 node that receives gripper commands and forwards them over serial to an Arduino. Also includes Arduino file, which receives commands over serial and controls the servos of the gripper.

  • API for interactions with the gripper.

OSPREY Interface

Wrapper for high-level actions.

  • Custom ROS interface definitions for the OSPREY workspace.

Nodes

These are the nodes you will usually run:

  • quad_control
  • mission_control
  • spectacular_node
  • vio_px4_interface
  • gripper_control
  • video_sender_node

Outside of ROS:

  • sam2_detection.py

Interfaces

Services

  • arm
  • land
  • set_gripper

Actions

  • takeoff
  • go_to_pos
  • hover_acc

Conventions

CMakeLists.txt

```CMake cmake_minimum_required(VERSION 3.13)

project(my_project)

DEPENDENCIES

ros default

find_package(ament_cmake REQUIRED)

File truncated at 100 lines see the full file

Repo symbol

osprey repository

Repo symbol

osprey repository

Repo symbol

osprey repository

Repo symbol

osprey repository