Skip to content

Tutorial 7: Control Robotont using TeMoto

FabianEP11 edited this page May 3, 2023 · 4 revisions

Robotont

Robotont is an omnidirectional mobile base with ROS support, developed by the Institute of Technology at the University of Tartu.

Robotont

Figure 1: Robotont mobile base.

Running TeMoto on Robotont (real hardware)

This tutorial walks you through the steps how to connect and control Robotont using TeMoto.

*Note: If this is the first time you connect to the robot, you need access to internet in order to download TeMoto. The simplest option is to connect it via an ethernet cable.

  • Using the ethernet wire, connect robotont to a switch with internet access.

  • Robotont broadcast its own hotspot upon start up with SSID "robotont-#" where # corresponds to the ID of the robot. For example, in order to access robotont with ID 7, you need to connect to the network called "robotont-7". Ask the instructor for the password.

  • SSH to the robot
    Once you successfully connect to the robot, you can SSH to it to put your code on the onboard computer. Use the following command

ssh -X [email protected].# 
# refers to the robot ID
  • Accept the ECDSA key fingerprint
  • Use the same password as the one provided for the Wi-Fi connection.

Before you start, make sure the robot service is not running, since we are going to launch it dynamically using TeMoto. To stop the robotont.service use the following command:

systemctl stop robotont.service
  • Create a new Catkin Workspace and clone the TeMoto framework
# Since "catkin_ws" already exists on Robotont, let's call it temoto_ws
mkdir -p temoto_ws/src

# Navigate to the src folder
cd temoto_ws/src

# Clone TeMoto
git clone --recursive https://github.com/temoto-framework/temoto

# Install the dependencies
cd ..
rosdep install --from-paths src --ignore-src -r -y
- robot_name: "robotont"
  description: "robotont"
  reliability: 0.8
  urdf:
    package_name: "robotont_nuc_description"
    executable: "urdf/robotont_realsense.urdf.xacro"
  navigation:
    controller:
      package_name: "robotont_demos"
      executable: "2d_slam.launch"
      global_planner: "navfn/NavfnROS"
      local_planner: "teb_local_planner/TebLocalPlannerROS"
      scan_topic: "scan"
    driver:
      package_name: "robotont_support" 
      executable: "robotont_bringup.launch"
      odom_topic: "odom"
      cmd_vel_topic: "cmd_vel"
  • Create a TeMoto action that loads the robot

  • Create a TeMoto action that sends a goal pose to the mobile base

You can copy and paste the temoto actions provided on the temoto tutorials. If you reuse one of those actions, remove the .so file inside of the lib folder before catkin build.

  • Make sure you change the robot_name for robotont in the input_parameters of the umrfg.json files

You can unplug the ethernet wire.

  • On one terminal launch temoto It should be something like:
roslaunch <your>_temoto_config temoto.launch
  • Use another terminal to initialize the robot

  • Trigger a navigation action to send a goal pose to the robot.

See the robot moving.

  • Try the navigation cycle.