NEMO is a robot designed to compete in Robot@Factory 4.0 challenge.
- Ubuntu 22.04
- ROS Humble Hawkbill
- Gazebo Fortress
- RViz2
- Navigation2
.
βββ Dockerfile # Dockerfile with necessary dependencies
βββ docker-run.sh # Script to run the Docker container
βββ docs # Documentation
βββ nemo # Core package
β βββ CMakeLists.txt
β βββ package.xml
β βββ config # Configuration files
β βββ launch # Launch files
β βββ maps # Map files
β βββ models # Gazebo models
β βββ README.md # This file
β βββ rviz # RViz configuration files
β βββ src # Source code
β βββ worlds # Gazebo world files
βββ README.md
To run the project, you can either use Docker or install the dependencies on your system.
docker build -t ros2:ubuntu-humble-desktop-full .
To run the Dockerfile, run the following script:
./docker_run.sh
To connect to an existing container, use:
docker exec -it <container_id> bash
You can get the <container_id>
by running docker ps
:
Assuming you are using Ubuntu 22.04, you need to install the following dependencies:
# Installing ROS2 Humble
sudo apt-get update && \
apt-get install -y --no-install-recommends \
ros-humble-desktop-full
# Installing colcon
sudo apt-get install -y python3 python3-pip && \
pip install -U colcon-common-extensions
# Installing navigation packages
sudo apt install -y \
ros-humble-robot-localization \
ros-humble-joint-state-publisher \
ros-humble-navigation2 \
ros-humble-nav2-bringup
# Installing Cyclone DDS
sudo apt install -y \
ros-humble-rmw-cyclonedds-cpp
export RMW_IMPLEMENTATION="rmw_cyclonedds_cpp"
# Setting up Gazebo models path
export IGN_GAZEBO_RESOURCE_PATH="$(pwd)/nemo/models"
echo "source /opt/ros/humble/local_setup.bash" >> ~/.bashrc
To launch the project, you first need to build with it colcon
, from the root directory:
colcon build
Then, you need to source the setup.bash
file:
source install/setup.bash
Now to run the necessary nodes, you can run the following commands in separate terminals:
ros2 launch nemo simulation.launch.py
ros2 launch nemo navigation.launch.py