Cymulator is a Gazebo based simulation environment for CyPhyHouse project. In Cymulator, the same distributed Koord program along with our middleware can be deployed to multiple simulated drones and cars in Gazebo simulator. You can test and visualize your distributed robot control algorithms without buying drones and cars!
Cymulator is part of the CyPhyHouse project and currently not executable as a standalone application. Please visit following websites for detail usage.
Broad overview of CyPhyHouse project is available at:
https://cyphyhouse.github.io/
Or you can visit our website for documentation:
https://cyphyhouse.rtfd.io/
Cymulator is licensed under the terms of the NCSA License (see the file LICENSE).
The installation steps below are assembled in installation/install-noetic.sh
which we tested on Ubuntu 20.04.
We also provide scripts for few different combinations of ROS, Gazebo, and Ubuntu versions under installation/
folder.
These commands requires sudo
permission. Please run them with caution.
Install ROS Noetic with Gazebo 11 and create a workspace for catkin. We assume it is under
cym_ws
.- Ubuntu Install of ROS Noetic
- Desktop-Full Install: (Recommended) : Everything in Desktop plus 2D/3D simulators and 2D/3D perception packages
- Creating a workspace for catkin
- Ubuntu Install of ROS Noetic
Install required ROS packages available on APT
sudo apt install -y \ ros-noetic-ackermann-msgs ros-noetic-geographic-msgs \ ros-noetic-eigen-stl-containers \ ros-noetic-ros-control ros-noetic-ros-controllers \ ros-noetic-hector-models \ ros-noetic-geometry2 ros-noetic-robot
Install other system packages available on APT
sudo apt install -y git sudo apt install -y cppad coinor-libipopt-dev # For MPC controller sudo apt install -y python3 python3-pip
Install required Python packages available on PyPI
pip3 install --user pip --upgrade pip3 install --user \ catkin_pkg rospkg \ empy numpy scipy \ defusedxml netifaces \ pathlib pyyaml \ vcstool
Inside the
cym_ws/src
directory, clone Cymulator repository. Then, clone dependent git repositories specified invcstool.repos.yml
using vcstool:git clone https://github.com/cyphyhouse/Cymulator.git --branch master vcs import --input Cymulator/vcstool.repos.yml
Alternatively, you can manually clone the repositories at the versions specified in vcstool.repos.yml
without using vcstool
.
Run these commands under your
cym_ws
directory to compile relevant ROS packages in the cloned repositories.source /opt/ros/kinetic/setup.bash catkin_make --only-pkg-with-deps cym_gazebo # Build only packages required by cym_gazebo
Colcon is an alternative build system used by Amazon AWS RoboMaker.
Here are the commands to build with colcon
.
Run these commands under your
cym_ws
directory to compile only relevant ROS packages incym_ws/src
.source /opt/ros/kinetic/setup.bash colcon build --base-paths src/* --packages-up-to cym_gazebo
You can download other Gazebo worlds. Cymulator relies on ROS Gazebo package to load Gazebo simulator, and it should be able to load your custom world. Some interesting world files from other opensource projects are provided below