Skip to content

lkumar93/TerpCopter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TerpCopter Build Status

University of Maryland's Autopilot Software for Autonomous-Micro Aerial Vehicles (A-MAV) Competition hosted by American Helicopter Society (AHS)

Reference Guides

Have a look at C++ Cheat Sheet , ROS Cheat Sheet and Git Cheat Sheet for quick reference

Contribution Rules

Kindly follow the conventions listed in the C++ Style Guide, ROS Style Guide and Git Style Guide when contributing to this repository

License

GPL-3.0

Using TerpCopter

Start TerpCopter

Run roslaunch terpcopter_controller controller.launch

To start with simulator, add in sitl:=1 argument When starting with simulator, PX4 console will pop up in an xterm window. You can send commands to copter from PX4 console and do PX4 specific debugging there.

Creating a node

There are two types of nodes, the TCNode and the TCManagerNode. The base classes for both are in the terpcopter_common package. A TCNode is used for any TerpCopter computing that doesn't require starting another node. A TCManagerNode is a specific example of a TCNode. It is capable of starting further nodes. This creates a node tree. Each TCManagerNode and corresponding child nodes forms what is often referred to as a system in the code.

To use the TCNode and TCManagerNode, simply add the following include statements in your C++ code: #include <terpcopter_common/common.h> #include <terpcopter_common/system.h> // To include TCNode #include <terpcopter_common/tc_node.h> // To include TCManagerNode #include <terpcopter_common/tc_manager_node.h>

See the terpcopter_sensor_processor/terpcopter_localizer.<cpp|h> files for a good example of a TCNode implementation. To implement a TCNode, you must define the method: virtual int8_t check_health();

See the terpcopter_controller/terpcopter_manager.<cpp|h> and terpcopter_simulator/px4_sitl_manager.<cpp|h> for two examples of a TCManagerNode implementation. To implement TCManagerNode, you must define the method: int initialize_systems(std::vectorstd::string &sys_list);

Dependencies

Check terpcopter_description/config/dependencies.txt for dependencies. This list is incomplete and should be updated every time you add a new dependency.

About

UMD's Autopilot Software for AMAV Competition

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 67.1%
  • Python 17.3%
  • C++ 13.8%
  • CMake 1.6%
  • Other 0.2%