-
Notifications
You must be signed in to change notification settings - Fork 11
ERA using Gazebo Simulator
This is the package to get if you want to install ERA. The rosinstall script will fetch the necessary packages in the catkin workspace. This version is used to install the ERA application on Ubuntu 18.04 LTS using ROS Melodic (rather than the former, 16.04 LTS using ROS Kinetic version of these instructions).
ERA requires:
- Ubuntu 18.04
- Python 2.7
- GNU gcc/g++ 5.4
- cmake 3.5.0+
- python-wstool
- ROS Melodic and Gazebo 9
- GNU Radio 3.7.3+
- gr-ieee802-11
- Swig 3.0
- LZ4 1.7.0+
Note that gr-ieee802-11 is included as a package in this project (i.e. no need to clone it separately).
To include some of these, use the following commands:
sudo apt-get install swig
sudo apt-get install doxygen
sudo apt-get install gnuradio
sudo apt-get install python-wstool
Follow these instructions in ROS' official website to install ROS Melodic and Gazebo 9 on Ubuntu 18.04. We recommend installing desktop-full install (sudo apt-get install ros-melodic-desktop-full
).
ROS Melodic does not have turtlebot 2 packages in the repository, instead we will install and use turtlebot 3. Please install all turtlebot3 packages.
The following command should install all the turtlebot3 packages (for Melodic):
sudo apt-get install ros-melodic-turtlebot3*
You should also add the following line to the ~/.bashrc file:
export TURTLEBOT3_MODEL=waffle
For the single turlebot demo on Melodic, you will also need the depthimage-to-laserscan package. The following command should install this requirement:
sudo apt-get install ros-melodic-depthimage-to-laserscan
We will get to the installation of the remaining packages below (by bringing the appropriate package sources into the catkin workspace and compiling them there).
If not done yet, source the ROS environment setup file:
source /opt/ros/melodic/setup.bash
cd ~
mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace
git clone https://github.com/IBM/era.git
cd ..
wstool init src src/era/era.rosinstall
catkin_make
source devel/setup.bash
We also recommend putting . ~/catkin_ws/devel/setup.bash
into the .bashrc
file.
cd catkin_ws/src
git clone https://github.com/IBM/era.git
cd ..
wstool merge -t src src/era/era.rosinstall
catkin_make
source devel/setup.bash
ERA includes components implemented in GNU Radio (gr-ros_interface, gr-foo and gr-ieee802-11) that have to be built and installed separately as explained next. The gr-ieee802-11 project is the GNU Radio-based implementation of an IEEE 802.11p transceiver while the gr-foo project includes a collection of custom blocks that are used by gr-ieee802-11. The gr-ros_interface project implements the interface to connect together the ROS and GNU Radio "worlds".
Build and install gr-ros_interface:
cd ~/catkin_ws/src/dsrc/gr-ros_interface/
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
Build and install gr-foo:
cd ~/catkin_ws/src/dsrc/gr-foo/
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
Build and install gr-ieee802-11:
cd ~/catkin_ws/src/dsrc/gr-ieee802-11/
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
Finally, the GNU Radio-based implementation of the IEEE 802.11p transceiver has to be generated using the GNU Radio Companion compiler (grcc
):
cd ~/catkin_ws/src/dsrc/gr-ieee802-11/examples
grcc ./wifi_transceiver.grc -d .
Refer to the main README.md file at The ERA Git Repository for the rest of the use of ERA. Note: for the Melodic build, the "launch" files (e.g. those ending in .launch) should use the versions that have "melodic" in their name, e.g. where the initial launch of the era_gazebo model is invoked as:
roslaunch era_gazebo era_two_robots.launch
Augusto Vega (IBM)
Akin Sisbot (IBM)
J-D Wellman (IBM)