Skip to content

Latest commit

 

History

History

ros

ROS

Build and run

ROS nodes are runned in docker container

Build: docker-compose build

Run: ./run.sh

The run.sh script runs a docker container named tello-ros with the solution. The solution is specified by the environment variable SOLUTION_NAME in the docker-compose.yml file.

The exec_script.sh script executes a specified script in the docker container. Available scripts:

  • manager_node -- runs ManagerNode (the default script)

Manager Node

MangerNode is responsible for switching between solution and manual control (see more here). Available commands:

  • r/run -- run solution
  • s/stop -- stop solution
  • takeoff -- take off the drone
  • land -- land the drone
  • call <cmd> -- send <cmd> to the drone (rc command is not allowed)
  • shutdown -- shutdown manager node

Control drone via gamepad

  • Connects the gamepad to your PC
  • Replace ./simple_solution.launch with ./control.launch in scripts/start.sh file
  • Connect to the drone's wifi network
  • Run the container with the run.sh script
  • Use the gamepad to control the drone:
    • Button Menu -- take off the drone
    • Button View -- landing the drone
    • Left stick:
      • Up/Down -- move drone up/down
      • Left/Right -- rotate drone counterclockwise/clockwise
    • Right stick:
      • Up/Down -- move drone forward/backward
      • Left/Right -- move drone left/right
  • Stop the container with the stop.sh script (or Ctrl+C)

Camera calibration

Go to camera_calibration directory

Development

See this guide

Bugs

  • When the drone moves, it has an error in movements. If the drone moves left-right indefinitely, it will not stay in line, but will move slightly forward
  • In rclpy, Rate.sleep() does not work in the main thread. An extra thread must be used ([1][2]) (Need to check)

ROS drivers links

The library from clydemcqueen is now used as a driver

Not working, cannot run tello driver node

Last commit: 17 February 2022

The oldest opened pull-request: 2 December 2020

Opened issues since 2018

Disadvantages:

  • Always shows the original video stream from the drone with fixed name
  • Problems with sending commands to the drone. Commands are sent using ros service. Currently it is impossible to send more than two TelloAction, and the second TelloAction call blocks the client node forever
  • Call (not call_async) on TelloAction service blocks the client node forever