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: