🌐 AI搜索 & 代理 主页
Skip to content

helloric/robot-nodes

Repository files navigation

Docker Environment for the Robots

This Repo holds the code to the docker images that should run on the Raspberry PI. These Images need to build for the ARM64 platform, we cross compile them here. Additionally the code for teleop images is here for debugging but could possibly be moved to its own repo in the future.

Communication between Nodes does not work if you are using the VPN. Containers where tested on Linux only

Prerequisites

Docker needs to be installed on the robot, only tested with docker-ce. If you want to build images locally you need Docker installed on your local system as well. (Ideally, this is not necessary)

Image overview

All images are already built in our Harbor

ricbot

This image contains the kobuki driver, the robot description, navigation including a map and drivers for camera and laser sensor.

The UI image provides the Svelte-UI for the robot. Note that the UI can not directly talk to ROS, it depends on the ui_com service.

The ui-com image provides the backend via WebSocket for the UI and allows communication between the UI and the rest of the robot.

The teleop image can be used for debugging to move the robot around using the keyboard.

⚠ Using the Gamepad will tip the robot over! ⚠

It can only be used with extreme caution!

The ds4 Image can be used moving the robot around using a PlayStation DualShock 4 controller.

Building Images

You do not need to build the image manually however if you want to build it:

  1. Checkout and update this repo including all submodules: git submodule update --init --recursive
  2. Call the build.bash-script.

It will cross-build all required docker images from the code in the submodule-folders as the specified version.

Deploying on the robot

Copy the "compose.yml" file from this repository to the robot, if it already exists you probably want to overwrite it. However backup the compose.yml-file before, like this:

# connect to the robot and move the compose file
ssh robot@10.250.X.X:
# make sure the compose file exists
ls
# rename the file
mv compose.yml compose_backup.yml

Now copy the new compose file to the robot:

# on your machine, change the path of the compose.yml and 
scp compose.yml robot@10.250.X.X:

Alternatively you can also just save the images you have build and use ssh to copy them to the robot. For the ricbot-image you can do something like this:

# on your PC
docker save -o ricbot.tar harbor.hb.dfki.de/helloric/ricbot:jazzy_arm64_001
# copy this to the robot, change X.X to the actual IP of the robot, do NOT remove the colon (:) at the end
scp ricbot.tar robot@10.250.X.X:

# now SSH  on the robot and load the image like this:
docker load -i ricbot.tar

See docker documentation for details

Because the image can be a few GB big its recommended to connect PC and robot via cable.

Run the image

You can just run the image:

  1. copy the compose.yml to the robot, for example using scp would look like this: scp compose.yml robot@10.250.X.X:
  2. run docker compose up ricbot ui ds4 -d that will start the basic ricbot, ui (with ui-com as it depends on it) and ds4 as defined in the compose.yml file in the background
  3. if you want to get the log output you can run docker compose logs -f. Press Ctrl+c to quit logging.
  4. to stop the docker container run docker compose down.

Note that the up and run commands on docker compose are different. up also activates the port forwarding, the run-command only starts a new instance without exposing ports to outside. You can not connect to your robot if you start a docker container with "run", so you always want to use docker compose up to start but docker compose run ricbot bash can be helpful to access a terminal with the same configuration as the robot if you like to test something locally.

Contributing

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

License

This docker environment setup is distributed under the 3-clause BSD license.

Maintainer / Authors / Contributers

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages