This work is a part of the AERO-TRAIN Summer School 2024. It was presented during Day 3 - Human-Robot Interaction Day, and it is part of Tutorial 1.
- This repository is designed to run within a docker container as a part of the Tutorial 1, howerver it can also run locally.
- The repository includes:
- The velocity controller for the pelican UAV from the rotors_simulator.
- The keyboard interface to enable keyboard desired positions for the UAV.
- The position predictor to estimate the actual position of the UAV by compensating for the average measured delays.
- UDP tunnels to transmit the ROS messages (odometry and command messages) to any machine without communication constrains. In order for the UDP tunnels to work correctly, you should specify:
- The correct reading IP and port in the odometry_server.py file
- The correct destination IP and port in the command_client.py file
NOTE: The main branch includes unfinished codes where you can try to include your own solutions. indicative solutions are included in the solutions branch
- mav_comm
git clone https://github.com/ethz-asl/mav_comm.git
git clone https://github.com/achilleas2942/summer_school_controller.git
- Follow the description of summer_school_world to run the Gazebo world.
- After building, e.g.
or
catkin build summer_school_controllercatkin_make summer_school_controller - And sourcing your workspace, e.g.
source <your_workspace_name>/devel/setup.bash - Execute the launch file to run the UDP tunnels
roslaunch summer_school_controller udp_tunnels.launch - Develop your code for the velocity controller or use the script from the solutions branch and run it
python3 velocity_controller.py - Develop your code for the position prediction or use the script from the solutions branch and run it
python3 position_prediction.py - Develop your code for the keyboard teleoperation or use the script from the solutions branch and run it
python3 keyboard_teleoperation.py
Consider opening an Issue if you have troubles with the exercises of the repo.
Feel free to use the Discussions tab to exchange ideas and ask questions.