Ekumen-OS / Noah-bot-simulation-ros2

Gazebo-ROS2 based Noah bot simulation
BSD 3-Clause "New" or "Revised" License
5 stars 2 forks source link
gazebo robotics ros ros2 simulation

Noah-bot Gazebo Simulation - ROS2

Overview

Gazebo simulation for the Noah-bot robot.

noah-ros2

URDF

It contains the URDF model of the robot with accurate visual meshes.

Sensors

Diff drive controller

Ros topics:

Officially supported platform:

Note: Are you looking for the ROS1 simulation? See here.

Repository organization

Summary of of the packages in the repository.

noah_description:

noah_gazebo:

Using docker

Building the code

  1. Install docker
  2. If using nvidia, install nvidia-docker
  3. Clone this repository.
  4. Build the docker image running:
    DOCKER_BUILDKIT=1 docker build -t noahbot:foxy -f docker/Dockerfile .

    After this, the image tagged as noahbot:foxy will be ready to run the Noahbot simulation.

Running the simulation

Run:

./docker/run ros2 launch noah_gazebo noah_gazebo.launch.py

To start the simulation.

Quickly test changes without rebuilding the container

If you want to test code changes quickly without rebuilding the container, you can use the develop script:

$ ./docker/develop

Which will open a shell inside the container, mounting the local copy of the ROS packages. You can quickly re-build the code with:

$ cd /colcon_ws
$ colcon build

The develop script will also run the containers with host networking, so if you open multiple ones you can easily send ROS messages across them.

Non-containerized Installation

  1. Install ROS Foxy Fitzroy
  2. Install Gazebo 11
  3. Clone this repository in your colcon workspace.
    ├── colcon_ws
        └── src
            └── Noah-bot-simulation-ros2
  4. rosdep install --from-paths src --ignore-src -r -y
  5. Build the project and source the workspace
    colcon build
    source install/setup.bash
    source /usr/share/gazebo/setup.bash
  6. It is ready to be used! See Run Simulation!

Run Simulation!

ros2 launch noah_gazebo noah_gazebo.launch.py

Use a different world!

ros2 launch noah_gazebo noah_gazebo.launch.py world:=small_house.world

Use the rviz argument and run rviz2 along the simulation!

ros2 launch noah_gazebo noah_gazebo.launch.py rviz:=true

You can also start the simulation without the Gazebo GUI when you don't have a display (like in CI):

ros2 launch noah_gazebo noah_gazebo.launch.py gazebo_gui:=false

Try Teleoperating Noah!

Once simulation is running, in other terminal run:

ros2 run  teleop_twist_keyboard teleop_twist_keyboard cmd_vel:=noah/cmd_vel