Video tutorial at https://youtu.be/wlkoq65mM2A
In home directory:
cd ~
git clone https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule update --init --recursive
sudo apt install python-matplotlib python-serial python-wxgtk3.0 python-wxtools python-lxml python-scipy python-opencv ccache gawk git python-pip python-pexpect
sudo pip install future pymavlink MAVProxy
MAVProxy is a fully-functioning GCS for UAV’s. The intent is for a minimalist, portable and extendable GCS for any UAV supporting the MAVLink protocol (such as one using ArduPilot). For more information check out http://ardupilot.github.io/MAVProxy/html/index.html
Open ~/.bashrc
for editing:
gedit ~/.bashrc
Add these lines to end of ~/.bashrc
(the file open in the text editor):
export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH
Save and close the text editor.
Reload ~/.bashrc
:
. ~/.bashrc
Run SITL (Software In The Loop) once to set params:
sim_vehicle.py -v APMrover2
Video tutorial at https://youtu.be/qLQQbhKDQ6M
QGroundControl provides full flight control and vehicle setup for PX4 or ArduPilot powered vehicles. It provides easy and straightforward usage for beginners, while still delivering high end feature support for experienced users.
- Full setup/configuration of ArduPilot and PX4 Pro powered vehicles.
- Flight support for vehicles running PX4 and ArduPilot (or any other autopilot that communicates using the MAVLink protocol).
- Mission planning for autonomous flight.
- Flight map display showing vehicle position, flight track, waypoints and vehicle instruments.
- Video streaming with instrument display overlays.
- Support for managing multiple vehicles.
- QGC runs on Windows, OS X, Linux platforms, iOS and Android devices.
for more detailed information please visit http://qgroundcontrol.com/
Download QGroundControl.AppImage
wget https://s3-us-west-2.amazonaws.com/qgroundcontrol/latest/QGroundControl.AppImage
change permissions and run
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage #(or double click)
sim_vehicle.py -v APMrover2
Video Tutorial at https://youtu.be/m7hPyJJmWmU
Robot simulation is an essential tool in every roboticist's toolbox. A well-designed simulator makes it possible to rapidly test algorithms, design robots, perform regression testing, and train AI system using realistic scenarios. Gazebo offers the ability to accurately and efficiently simulate populations of robots in complex indoor and outdoor environments. At your fingertips is a robust physics engine, high-quality graphics, and convenient programmatic and graphical interfaces. Best of all, Gazebo is free with a vibrant community.
for more infromation on gazebo checkout http://gazebosim.org/
Setup your computer to accept software from http://packages.osrfoundation.org:
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
Setup keys:
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
Reload software list:
sudo apt update
Install Gazebo:
sudo apt install gazebo9 libgazebo9-dev
for more detailed instructions for installing gazebo checkout http://gazebosim.org/tutorials?tut=install_ubuntu
cd ~
git clone https://github.com/khancyr/ardupilot_gazebo.git
cd ardupilot_gazebo
git checkout dev
mkdir build
cd build
cmake ..
make -j4
sudo make install
echo 'source /usr/share/gazebo/setup.sh' >> ~/.bashrc
Set paths for models:
echo 'export GAZEBO_MODEL_PATH=~/ardupilot_gazebo/models' >> ~/.bashrc
. ~/.bashrc
In one Terminal (Terminal 1), run Gazebo:
gazebo --verbose ~/ardupilot_gazebo/worlds/iris_arducopter_runway.world
In another Terminal (Terminal 2), run SITL:
cd ~/ardupilot/ArduCopter/
sim_vehicle.py -v ArduCopter -f gazebo-iris --console
Video Tutorial at https://youtu.be/EmIjedzHwzI
In this tutorial we are using Ubuntu 18.04 and ROS Melodic
Code blocks are meant to be typed in Terminal windows. "Control+Alt+T" opens a new Terminal window.
- Do Desktop-full Install
- Follow until Step 1.7 at the end of the page
First, install ROS Melodic using the following instructions: http://wiki.ros.org/melodic/Installation/Ubuntu
We use catkin build
instead of catkin_make
. Please install the following:
sudo apt-get install python-wstool python-rosinstall-generator python-catkin-tools
Then, initialize the catkin workspace:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
Install mavros
and mavlink
from source:
cd ~/catkin_ws
wstool init ~/catkin_ws/src
rosinstall_generator --upstream mavros | tee /tmp/mavros.rosinstall
rosinstall_generator mavlink | tee -a /tmp/mavros.rosinstall
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro `echo $ROS_DISTRO` -y
catkin build
Add a line to end of ~/.bashrc
by running the following command:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
update global variables
source ~/.bashrc
cd ~/catkin_ws/src
git clone https://github.com/Intelligent-Quads/iq_sim.git
cd iq_sim
git checkout boat
Our repository should now be copied to ~/catkin_ws/src/iq_sim/
(don't run this line. This is just saying that if you browse in the file manager, you will see those folders).
Inside catkin_ws
, run catkin build
:
cd ~/catkin_ws
catkin build
update global variables
source ~/.bashrc
The boat simulator uses the usv dynamics plugin, which can be compiled from the px4 sitl_gazebo repo.
Some plugins on this packages require some specific dependencies:
- Protobuf is required to generate custom protobuf messages to be published and subscribed between topics of different plugins;
- Jinja 2 is used to generate some SDF models from templates;
- Gstreamer is required for a plugin that streams video from a simulated camera.
sudo apt-get install libprotobuf-dev libprotoc-dev protobuf-compiler libeigen3-dev libxml2-utils python-rospkg python-jinja2
sudo apt-get install libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly -y
pip install rospkg jinja2
brew tap homebrew/versions
brew install eigen graphviz libxml2 sdformat3 opencv glib
brew install homebrew/versions/protobuf260
brew install gstreamer gst-plugins-base gst-plugins-good
sudo pacman -S --noconfirm --needed eigen3 hdf5 opencv protobuf vtk yay python2-jinja
sudo pacman -S --needed gstreamer gst-plugins-bad gst-plugins-base gst-plugins-base-libs gst-plugins-good gst-plugins-ugly
Clone the repository to your computer.
IMPORTANT: If you do not clone to ~/src/sitl_gazebo, all remaining paths in these instructions will need to be adjusted.
mkdir -p ~/src
cd src
git clone --recursive https://github.com/PX4/sitl_gazebo.git
Create a build folder in the top level of your repository:
mkdir build
Navigate into the build directory and invoke CMake from it:
cd ~/src/sitl_gazebo
cd build
cmake ..
Now build the gazebo plugins by typing:
make -j$(nproc) -l$(nproc)
Next add the location of this build directory to your gazebo plugin path, e.g. add the following line to your .bashrc
(Linux) or .bash_profile
(Mac) file:
# Set the plugin path so Gazebo finds our plugins
export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:$HOME/src/sitl_gazebo/build
You also need to add the the root location of this repository, e.g. add the following line to your .bashrc
(Linux) or .bash_profile
(Mac) file:
# Set path to sitl_gazebo repository
export SITL_GAZEBO_PATH=$HOME/src/sitl_gazebo
If you wish the libraries and models to be usable anywhere on your system without specifying th paths, install as shown below.
Note: If you are using Ubuntu, it is best to see the packaging section.
sudo make install
gedit .bashrc
add to the bottom
export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:$HOME/catkin_ws/src/iq_sim/models
save and close
source ~/.bashrc
cd ~/catkin_ws/src
git clone https://github.com/Intelligent-Quads/iq_gnc.git
cd iq_gnc
git checkout boat
catkin build
cd ~/catkin_ws/src/iq_sim/scripts/
./boatSetup.sh
First terminal
roslaunch iq_sim boat.launch
second terminal
sim_vehicle.py -v APMrover2 -f gazebo-rover -m --mav10 --console -L Viridian
on the first run, run the below in the mavproxy terminal
param load catkin_ws/src/iq_sim/scripts/ardu-parms/gazebo-boat.parm
thrid terminal
roslaunch iq_sim apm.launch
fourth terminal
rosrun iq_gnc square
set mode to guided by running the below in the mavproxy terminal (second terminal)
mode GUIDED
boat should drive a square pattern