ROS2 TurtleBot4lite "WaLI": Wall follower Looking for Intelligence

Posted on 26/11/2022 by alanmcd in WaLI - Wallfollower Looking for Intelligence
Modified on: 05/12/2023
Steps completed / 3
Press to mark a step as
completed or click here to complete all
Components you will need
Select missing items to add them
to the cart or select all
Introduction

For years I have dreamed of building a personal robot that is "aware", and learns about its environment through wandering, mapping, collecting images for later classification and tagging through automatic and assisted dialog means.

WaLI was to become this robot based on the ROS2 TurtleBot4 lite.

# Turned out the Turtlebot4lite was returned, and this Turtlebot4lite based WaLi project is considered completed.

(Collecting parts for a future "reincarnation" WaLi)

 


1) TurtleBot4lite Familiarization:  In Progress

- Learn function of nodes, services, actions, message formats, maintenance, and operation of:

  • Create3 base
  • TurtleBot4 Raspberry Pi4

- Setup ROS2 Desktop development environment

- Setup WaLI "Life Logging" 

  • crontab start logLife process
  • logs datetime for session boot
  • logs session alive time every three minutes
  • create a cleanlifelog to remove all but last session alive time for prior and current session
  • created a logmaintenance "log entry" program to manually add events and notes to the life.log

2) To become a "Alive 24/7" robot, WaLi must know when to dock and when to get off the dock 

- Build a power_management_node 
  - subscribe to /battery_status, /dock topics 
  - Learn how to program action client
  - Undock when battery is trickle charging (/battery_state.percentage reaches 1.0)
  - Dock when battery state is near 20%
  - Shut down if cannot dock and battery state is below 15%

- Challenges:

  • Issue: Desktop can list topics but not echo them - Fix: VM Bridge Ethernet Network Adapter not WiFi
  • Issue: irobot_create3_msgs not found - Fix: Proper setup of ROS 2 Galactic Desktop with rosdep tool in build process
  • Issue: Desktop and RPi nodes' /battery_state topic loss after a few hours of operation - Fix: ?? Need Create3 to prioritize USB-C network over WiFi to protect against home WiFi routing issue ??
  • Issue: /robot_power service jerks power off preventing proper shutdown of RPi4 - Fix: ??

The TurtleBot4 lite does not come with the "TurtleBot4 Bluetooth wireless Controller" (and does not have a robot mounted display with assignable menu functions).
Since I had problems to no end with maintaining Bluetooth connections with Raspberry Pi computers in the past,
I have traditionally used an inexpensive SNES Gamepad that pairs to the Raspberry Pi over a USB-A dongle.

Goal: Integrate this existing SNES Gamepad to the TurtleBot4 lite's Raspberry Pi4
- Issue: TurtleBot4 lite launch does not start joy_teleop node - ros2 launch turtlebot4_bringup joy_teleop.launch.py
- Issue: Wall Follow Right and Wall Follow Left controller button values different on SNES Gamepad:

modify turtlebot4.yaml
# SNES Button Value            TB4_Controller     Default Assignment         My Assignment
# X             0                    a                 ["Select"]            ["Wall Follow Right"]
# A             1                    b                 ["EStop"]             ["EStop"]
# B             2                    y                 ["RPLIDAR Motor"]     ["RPLIDAR Motor"]
# Y             3                    x                 ["Back"]              ["Wall Follow Left"]

controller:

a: ["Wall Follow Right"]
b: ["EStop"]
x: ["Wall Follow Left"]
y: ["RPLIDAR Motor"]

WaLI commanded to wall follow using SNES GamePad:

 

 

Flag this post

Thanks for helping to keep our community civil!


Notify staff privately
It's Spam
This post is an advertisement, or vandalism. It is not useful or relevant to the current topic.

You flagged this as spam. Undo flag.Flag Post