This project includes an implementation of operating the snow sampler drone.
In case of using this work in an academic context, please consdier citing the following paper.
- Chies, Claudio, Tiziano Di Pietro, Jaeyoung Lim, Florian Achermann, and Roland Siegwart. "SNOWSAMPLER: AN AUTONOMOUS UNCREWED AERIAL VEHICLE FOR PENETRATION-BASED SNOW STRATIGRAPHY MEASUREMENTS ON STEEP SLOPES." International Snow Science Workshop, 2024. [paper] [video]
@inproceedings{chies2024snowsampler,
title={SNOWSAMPLER: AN AUTONOMOUS UNCREWED AERIAL VEHICLE FOR PENETRATION-BASED SNOW STRATIGRAPHY MEASUREMENTS ON STEEP SLOPES},
author={Chies, Claudio and Di Pietro, Tiziano and Lim, Jaeyoung and Achermann, Florian and Siegwart, Roland},
year={2024},
organization={ISSW}
}
cd ~
mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/ethz-asl/adaptive-snowsampler.git -b ros1
git clone https://github.com/ethz-asl/grid_map_geo.git -b master
git clone https://github.com/ethz-asl/mav_comm.git
git clone https://github.com/ethz-asl/terrain-navigation.git
cd ..
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y
catkin build
# post building tasks
echo 'ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fc5f", GROUP="dialout"' | sudo tee /etc/udev/rules.d/99-actuonix.rules #setting usb permissions
sudo usermod -aG dialout user # add user to the dailout group
sudo reboot # needed for the usb permissions to take effect
# installation of GeographicLib dependency
cd ~
git clone https://github.com/mavlink/mavros.git
sudo apt install geographiclib-tools libgeographic-dev
sudo ~/mavros/mavros/scripts/install_geographiclib_datasets.sh
Run the code with the following launch file
source ~/ros2_ws/install/setup.bash
ros2 launch adaptive_snowsampler launch.xml
Set the Package Paths
cd ~/PX4-Autopilot/
DONT_RUN=1 make px4_sitl_default gazebo-classic
source ~/catkin_ws/devel/setup.bash # (optional)
source Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/simulation/gazebo-classic/sitl_gazebo-classic
Set the takeoff location
export PX4_HOME_LAT=46.785479
export PX4_HOME_LON=9.846803
export PX4_HOME_ALT=2301.23
Run the node
roslaunch adaptive_snowsampler sitl_run.launch
To control the vehicle from the ground, we need to connect to the ROS Master on the drone. Whereby its important that the IP is correct and that the drone and ground station are in the same zerotier network. Run rviz with the following command.
ROS_MASTER_URI=http://172.30.132.111:11311
roslaunch snowsampler_rviz run.launch