Developer Guide

  • 2022.3
  • 10/25/2022
  • Public Content

Robot Teleop Using a Keyboard

Hardware Prerequisites
You have a robot and a keyboard or an ssh/vnc connection to the robot.
This example uses the UP Xtreme i11 Robotic Kit.
  1. Connect to your robot via ssh/vnc or direct access. If you choose direct access, insert a monitor and a keyboard into the robot’s compute system.
  2. Start your robot’s node, and make sure that you have the correct remapping similar to this:
    cd <edge_insights_for_amr_path>Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers/ chmod a+x ./ amr-aaeon-amr-interface:2022.3 eiforamr -c aaeon_node source /home/eiforamr/workspace/ export ROS_DOMAIN_ID=167 ros2 run ros2_amr_interface amr_interface_node --ros-args -p try_reconnect:=true -p timeout_connection:=1000.0 -p publishTF:=true --remap /amr/cmd_vel:=/cmd_vel -p port_name:=/dev/ttyUSB0
  3. In another terminal, open full-sdk, and start teleop_twist_keyboard:
    The full-sdk docker image is only present in the Robot Complete Kit, not in the Robot Base Kit or Up Xtreeme i11 Robotic Kit.
    To check if you have it:
    docker images |egrep "eiforamr-full-flavour-sdk" #if you have it downloaded, the result is: eiforamr-full-flavour-sdk
    If the image is not installed, continuing with these steps
    triggers a build that takes longer than an hour
    (sometimes, a lot longer depending on the system resources and internet connection).
    cd <edge_insights_for_amr_path>Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers/ source ./01_docker_sdk_env/docker_compose/common/docker_compose.source export CONTAINER_BASE_PATH=`pwd` CHOOSE_USER=eiforamr docker-compose -f 01_docker_sdk_env/docker_compose/01_amr/amr-sdk.all.yml run full-sdk bash source /home/eiforamr/workspace/ export ROS_DOMAIN_ID=167 ros2 run teleop_twist_keyboard teleop_twist_keyboard
    Expected result: The robot responds to your keyboard commands in these ways:
    • i
      : Move forward
    • k
      : Stop
    • ,
      : Move backward
    • j
      : Turn right
    • l
      : Turn left
    • q/z
      : Increase/decrease max speeds by 10%
    • w/x
      : Increase/decrease only linear speed by 10%
    • e/c
      : Increase/decrease only angular speed by 10%
    • L
      (only for omnidirectional robots): Strafe (move sideways)
    • anything else: Stop
    • Ctrl-c
      : Quit

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at