Skip to main content

Docker Images For Husarion's Robots

Newest images for Panther nad ROSbot come with pre-installed Docker and Docker Compose. Thanks to provided Docker images you can run software for Husarion's robots in different scenarios without additional requirements to host system other than Docker. That means you don't even need to use pre-installed ROS on robots host systems. 100% of software can run in Docker conatiners!

note

Remember that architectures of computers used in ROSbot (arm/v7) and ROSbot PRO (amd64) are different, so no all images working on ROSbot PRO will work on regular ROSbot

Summary#

List of Docker images hosted on Husarion's Docker Hub profile:

ROS 1 Docker Images#

Docker Hub repoGitHub repoROS versionTarget PlatformArchDescription
husarion/rosbotrosbot-dockerMelodicROSbotamd64, arm/v7, arm64PySerial adapter to access ROS nodes on ROSbot's STM32 MCU
husarion/rplidarrplidar-dockerMelodicROSbot Pantheramd64, arm/v7, arm64An official repo for RPLIDAR A2/A3 by Slamtec, closed in a Docker image
husarion/astraastra-dockerMelodicROSbot Pantheramd64, arm/v7, arm64An official repo for Astra RGBD camera by Orbbec, closed in a Docker image
husarion/panther-lights-controllerpanther_lightsNoeticPantherarm64Controlling front & rear 46 x pixel LED strip
husarion/panther-lights-schedulerpanther_lightsNoeticPantheramd64, arm64Controlling front & rear 46 x pixel LED strip
husarion/panther-driverpanther_driverNoeticPantheramd64, arm64Low level control of Panther motors via CAN interface.
husarion/velocity-managerpanther_driverNoeticPantheramd64, arm64High level control of cmd_vel source selection
husarion/panther-gazebopanther_simulationNoeticPantheramd64, arm64Gazebo simulation model for Panther
husarion/webui-ros-joystickwebui-ros-joystickNoeticROSbot Pantheramd64, arm64A Node.js app providing a simple remote interface for robots
husarion/logitech-f710logitech_f710_rosNoeticROSbot Pantheramd64, arm64Controlling ROS robots with Logitech F710 gamepad

ROS 2 Docker Images#

Docker Hub repoGitHub repoROS versionTarget PlatformArchitecturesDescription
husarion/ros2-desktop-vncros2-desktop-vncFoxyROSbot Pantheramd64, arm64A ROS 2 desktop with a LXDE graphical environment + noVNC.
husarion/nav2nav2-dockerGalacticROSbot Pantheramd64, arm64Dockerized Nav2 nodes with custom Husarion launch in order to simplify running navigation2 and slam_toolbox nodes.

Useful 3rd Party Images#

Docker Hub repoGitHub repoROS versionArchitecturesDescription
husarnet/husarnethusarnet/husarnetallamd64, arm/v7, arm64A P2P VPN network allowing you to connect to remote containers or hosts over the Internet
ros:foxy-ros1-bridgeosrf/docker_imagesFoxy, Noeticamd64, arm64ROS bridge allowing ROS 1 and ROS 2 nodes talk to each other

Examples#

Panther + rviz + nav2#

Control Panther from a Rviz running in your web browser.

docker-compose.yml
version: "2.3"
services:
  # ROS Master  ros-master:    image: ros:noetic-ros-core    restart: on-failure    tty: true        # docker run -t    command: stdbuf -o L roscore
  # ROS Melodic rosbot hardware layer  rosbot:    image: husarion/rosbot    tty: true          restart: on-failure    environment:      - "ROS_MASTER_URI=http://ros-master:11311"      - "SERIAL_PORT=/dev/ttyS4" # default: ttyS1 - rosbot2.0; ttyS4 - rosbot2.0 `pro    privileged: false    devices:      - "/dev/ttyS4"   # must match environment SERIAL_PORT     command: roslaunch rosbot_description rosbot_docker.launch      # ROS Melodic Rplidar  rplidar:    image: husarion/rplidar:latest    restart: unless-stopped    environment:      - "ROS_MASTER_URI=http://ros-master:11311"    devices:      - /dev/ttyUSB0    tty: true          command: roslaunch rplidar_ros rplidar_a3.launch # For Rosbot 2.0 PRO use roslaunch rplidar_ros rplidar_a3.launch
  # ROS Noetic + ROS 2 Foxy  bridge:    image: ros:foxy-ros1-bridge    restart: on-failure    environment:      - "ROS_MASTER_URI=http://ros-master:11311"      - "ROS_DOMAIN_ID=0"    command: ros2 run ros1_bridge dynamic_bridge
  # ROS Foxy navigation  nav2:    image: husarion/nav2:foxy    tty: true    restart: on-failure    environment:      - "ROS_DOMAIN_ID=0"    command: ros2 launch husarion_nav2 bringup_both.launch.py
  # ROS Foxy Rviz2 VNC  rviz2:    image: husarion/ros2-desktop-vnc:latest    restart: on-failure    enviroment:      - "ROS_DOMAIN_ID=0"    volumes:      - ./rosbot_pro.rviz:/root/.rviz2/default.rviz    ports:       - 6080:80    shm_size: '512m'

Launching#

on Panther#

execute docker-compose up in the terminal

on Laptop#
  • open the following URL in your web browser: http://<Panther_Local_IP>:6080.
  • In the desktop environment provided by NoVNC, open terminal and execute: ros2 run rviz2 rviz2