brean / ros2-turtlebot3-remote-pc-docker

ROS 2 docker image of the "REMOTE-PC" to connect to a turtlebot in simulation or on real hardware

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ROS 2 foxy "REMOTE-PC" navigation in docker

Note that you don't need to run the build script, the image is pushed to dockerhub, just run docker-compose pull!

Run turtlebot3 REMOTE-PC nodes for navigation and cartographer in a local docker container.

Motivation

This allows you either to communicate with a robot that runs ROS 2-foxy while your PC runs another Linux operating system or if you want to test without a full ROS-installation on your PC.

We assume you like to run with a simulated robot in Gazebo and use the same network, take a look at ros2-turtlebot3-gazebo-docker repository.

Installation and configuration

  1. Install docker. Make sure you have the right version for your graphic-card installed (e.g. docker-nvidia2 for NVIDIA graphics cards)!
  2. Configure the network. If you are NOT using the Gazebo Simulation from ros2-turtlebot3-gazebo-docker but real hardware you probably want to set the network to network_mode: host and remove the networks-entry in the docker-compose.yml file.
  3. (optional) Configure ROS_DOMAIN_ID (default 30) and TURTLEBOT3_MODEL (default burger) according to your hardware
  4. (optional) If you do not like to use the simulated environment with the turtlebot3_world-map either
    1. Create a map with the cartographer (see Mapping and navigation with real hardware) or if you already have a map
    2. Copy your map to the map-folder and change the path for the map:=-parameter in the navigation.bash-file accordingly

Example

Mapping and navigation with real hardware

If you have ROS 2 foxy installed on your turtlebot ssh to the robot and run:

export TURTLEBOT3_MODEL=burger
ros2 launch turtlebot3_bringup robot.launch.py
  1. run cartographer.bash
  2. in a new window run ./teleop.bash to control the robot with your keyboard.
  3. after you are happy with it run save_map.bash in a second terminal.
  4. stop the cartographer and run navigation.bash.

Note that you can run any command from your terminal by prefixing it with "./remote.bash", take a look at the other bash-scripts in this folder

Autonomous navigation in simulation

See ros2-turtlebot3-gazebo-docker for the integration of a simulated ROS 2 turtlebot using the docker-container and scripts from this repo for the "Remote-PC".

Cleanup

Don't forget to run docker-compose down when you are done.

Contributing

Please use the issue tracker to submit bug reports and feature requests. Please use merge requests as described here to add/adapt functionality.

License

This code is distributed under the 3-clause BSD license.

Maintainer / Authors / Contributers

Andreas Bresser, andreas.bresser@dfki.de

Attribution

Based on the official turtlebot 3 ROS 2 navigation tutorial: https://emanual.robotis.com/docs/en/platform/turtlebot3/slam/

About

ROS 2 docker image of the "REMOTE-PC" to connect to a turtlebot in simulation or on real hardware

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Shell 55.7%Language:Dockerfile 44.3%