Giter Club home page Giter Club logo

ardupilot_gazebo-1's Introduction

ArduPilot Ignition Gazebo plugin

This is ArduPilot official plugin for Ignition Gazebo. It replaces the old Gazebo plugin to bring support of the next gen Gazebo simulator. It also brings support for more features :

  • more flexible data exchange between SITL and Ignition with JSON data sharing.
  • more sensors supported.
  • true Simulation lockstepping. It is now possible to use GDB to stop the Ignition time for debugging.
  • Better 3D rendering

The project is composed of an Ignition plugin to connect to ArduPilot SITL (Software In The Loop) and some example models and worlds.

Disclaimer :

The plugin is currently working, but we are working into bringing support for more feature and refine the API.

Prerequisites :

Ignition Edifice is supported on Ubuntu Bionic and Focal. If you are running Ubuntu as a virtual machine you will need at least Ubuntu 20.04 (Focal) in order to have the OpenGL support required for the ogre2 render engine.

Follow the instructions for a binary install of ignition edifice and verify that ignition gazebo is running correctly.

Set up an ArduPilot development environment. In the following it is assumed that you are able to run ArduPilot SITL using the MAVProxy GCS.

Installation :

Install Ignition Gazebo Edifice development libs and rapidjson:

sudo apt install rapidjson-dev libignition-gazebo5-dev

Clone the repo and build with:

git clone https://github.com/ArduPilot/ardupilot_gazebo
cd ardupilot_gazebo
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j4

Running :

Set the ignition environment variables in your .bashrc or .zshrc or in the terminal used to run gazebo:

In terminal

Assuming that you have clone the repository in $HOME/ardupilot_gazebo:

export IGN_GAZEBO_SYSTEM_PLUGIN_PATH=$HOME/ardupilot_gazebo/build:$IGN_GAZEBO_SYSTEM_PLUGIN_PATH
export IGN_GAZEBO_RESOURCE_PATH=$HOME/ardupilot_gazebo/models:$HOME/ardupilot_gazebo/worlds:IGN_GAZEBO_RESOURCE_PATH

In .bashrc

Assuming that you have clone the repository in $HOME/ardupilot_gazebo:

echo 'export IGN_GAZEBO_SYSTEM_PLUGIN_PATH=$HOME/ardupilot_gazebo/build:${IGN_GAZEBO_SYSTEM_PLUGIN_PATH}' >> ~/.bashrc
echo 'export IGN_GAZEBO_RESOURCE_PATH=$HOME/ardupilot_gazebo/models:$HOME/ardupilot_gazebo/worlds:${IGN_GAZEBO_RESOURCE_PATH}' >> ~/.bashrc

Reload your terminal with source ~/.bashrc

Run Gazebo

ign gazebo -v 4 -r iris_arducopter_runway.world

The -v 4 parameter is not mandatory, it shows the debug informations.

Run ArduPilot SITL

To run an ArduPilot simulation with Gazebo, the frame should have gazebo- in it and have JSON as model. Other commandline parameters are the same as usal on SITL.

sim_vehicle.py -v ArduCopter -f gazebo-iris --model JSON --map --console

Arm and takeoff

STABILIZE> mode guided
GUIDED> arm throttle
GUIDED> takeoff 5

Troubleshooting

Gazebo issues

Ignition documentation is already providing some help on most troubleshooting frequent issues

ardupilot_gazebo-1's People

Contributors

acxz avatar kant avatar khancyr avatar srmainwaring avatar swiftgust avatar tridge avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.