Skip to content

Wheeltec 101

  • Robot: Wheeltec Roboworks Ackermann Mini
  • ROS version: ROS 2 Jazzy (but also works with ROS 2 Humble)

Static Badge Static Badge

The short link to this page: go.sze.hu/wh

1. Basic usage

Robot connection

property default
user@hostname wheeltec@roboworks
wheeltec@192.168.0.1##
SSID wheeltec_robo_##
Password dongguan

Battery status

status volt
🟢 21.0 V- 25.0V
🟡 20.0V- 21.0V
🔴 < 20.0 V

nmtui / WiFi hotspot

Network Manager Text User Interface

Profile name: hotspot1
Device: wlan0
SSID: wheeltec_robo_#
Mode: Access Point
Security: WPA & WPA2 Personal
Password: dongguan
IPv4 address: from 192.168.0.101/24 to 192.168.0.113/24 
IPv4 gateway: 192.168.0.1

VS code SSH

If your robot IP is 192.168.0.101 then:

PS C:\Users\he> ssh wheeltec@192.168.0.100 mkdir -p .ssh
wheeltec@192.168.0.100's password:

PS C:\Users\he> cat .ssh/id_rsa.pub | ssh wheeltec@192.168.0.100 'cat >> .ssh/authorized_keys'
wheeltec@192.168.0.100's password:

PS C:\Users\he> ssh wheeltec@192.168.0.100

PS C:\Users\he\.ssh> ls
known_hosts

2. Using ROS 2 for driver and controller

Driver

The defualt command is to start the robot with the ROS 2 launch file, which blocks the terminal.

Don't forget to source before ROS commands.
source ~/ros2_ws/install/setup.bash
r2
ros2 launch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch.py lidar:=true camera:=false foxglove:=true joy:=false

The preferred way is to use the provided script start_drivers, which starts the robot drivers in the background (witht the help of screen).

start_drivers

Observe similar output:

Also you can stop the drivers with the provided script stop_all.

stop_all

Controller

The defualt command is to start the controller with the ROS 2 launch file, which blocks the terminal.

Don't forget to source before ROS commands.
source ~/ros2_ws/install/setup.bash
r2

ros2 launch megoldas_sim24 megoldas1.launch.py # start simple_pursuit
ros2 run megoldas_sim24 simple_pursuit.py
ros2 launch megoldas_sim24 megoldas2.launch.py # start follow_the_gap
ros2 run megoldas_sim24 follow_the_gap.py

3. Data acquisition

Use the provided launch file to start data acquisition:

ros2 launch mcap_rec preset_wheeltec01.launch.py tag:=scenario01

In this way the data will be stored in the /home/wheeltec/bag/ folder with the in filename scenario01 is the tag you provided. This way it is easier to identify the different data acquisition sessions.

Copy the data to your local computer with rsync. On your local computer run:

rsync -avzh --progress wheeltec@192.168.0.100:/home/wheeltec/bag/scenario01 /mnt/c/bag/

Warning

You can only run the rsync command on your local computer, not on Wheeltec robot!

4. Visualization

Foxglove studio

If you have started the robot driver with the foxglove:=true argument, then you can connect to the robot with Foxglove studio.

The frame /odom_combined is practically the same as /map, there is a static 0,0,0 transform between them. The only dynamic transform is between /odom_combined and /base_link.

graph TD;

    map([ map]):::light
    odom_combined([ odom_combined]):::light
    base_link([ base_link]):::light
    chassis([ chassis]):::light
    camera_link([ camera_link]):::light
    imu_link([ imu_link]):::light
    laser([ laser]):::light

    odom_combined -.->|dynamic| base_link
    base_link -->|static| chassis
    base_link -->|static| camera_link
    base_link -->|static| imu_link
    base_link -->|static| laser
    map ==>|static - same| odom_combined

classDef light fill:#34aec5,stroke:#152742,stroke-width:2px,color:#152742  
classDef dark fill:#152742,stroke:#34aec5,stroke-width:2px,color:#34aec5
classDef white fill:#ffffff,stroke:#152742,stroke-width:2px,color:#152742
classDef red fill:#ef4638,stroke:#152742,stroke-width:2px,color:#fff

Danger

There might be even more frames, but we are not using them.

5. Code editing in VS code

The recommended way to edit code on the robot is to use VS code with the Remote - SSH extension.

6. Commands

Command Description
start_drivers Start the robot drivers in the background
stop_all Stop all background processes started with screen
r2 Source the ROS 2 workspace (same as source ~/ros2_ws/install/setup.bash)
ros2 topic list List all active topics
ros2 topic echo /topic_name Echo the messages of a topic
ros2 topic hz /topic_name Show the publishing rate of a topic
ros2 topic info /topic_name -v Show information about a topic
ros2 node list List all active nodes