Skip to content

ieeeupsb/NEMO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NEMO 🐠

NEMO is a robot designed to compete in Robot@Factory 4.0 challenge.

Technologies

  • Ubuntu 22.04
  • ROS Humble Hawkbill
  • Gazebo Fortress
  • RViz2
  • Navigation2

Folder structure

.
β”œβ”€β”€ 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

Setup

To run the project, you can either use Docker or install the dependencies on your system.

Docker

Build Dockerfile

docker build -t ros2:ubuntu-humble-desktop-full .

Run Dockerfile

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:

Local install

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

Launching

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:

Simulation

ros2 launch nemo simulation.launch.py

Navigation

ros2 launch nemo navigation.launch.py