Robbie now with torso
I wanted to test the navigation system with the whole robot I'm looking at the acceleration profiles and how the robot handles doorways and corridors and just driving in general
October update
Time for another update on robbie after changing the the drive base to the omni_bot base it showed potential but also a lot of short comings the base was to large to consistently go through corridors the structural integrity was compromised. The base was designed with tighter tolerances and greater rigidity also smaller. We now use stepper motors for the steering system with magnetic encoders. and I2C controller motor drivers with encoders . The motor drivers were from the old design and the python driver was a legacy design. The big change was the odometery function using wheel angles and wheel velocity coupled with a gyro, magnetometer that gave a 20cm accuracy after a 16 meter drive. The successful test of the new omometery node I was able to remover the dead encoder wheel and use ROS nav2 with a MPPI controller in OMNI mode using the nav2 docking server the auto dock works with greater reliability and comes with a undock function all this is mapped the joy stick controller. The python controller was starting to be a bottle neck so I rewrote it in CPP with a noticeable speed improvement.
this is a video of the the base using navi2 to chase the videographer https://youtu.be/5DKG3iNSfLM
and some build photos
I have merged the omni_bot base with the torso of Robbie
The integration of three omni wheels with encoders has significantly enhanced and simplified the robot's odometry. Precise measurements of wheel rotations from the encoders enable accurate localization and mapping of the environment, resulting in more reliable navigation.
By leveraging Nav2 and slam_toolbox for navigation, the robot benefits from powerful out-of-the-box navigation capabilities. These robust ROS packages facilitate autonomous path planning, obstacle avoidance, and efficient goal-reaching, minimizing the need for extensive modifications.
The adoption of the differential drive plugin for navigation has greatly reduced fishing motion in the Y-space, resulting in smoother and more fluid movement
Replacing the RPI4 with an I5 mini PC running Ubuntu 22.4 and ROS Humble significantly boosts computing power and reliability. The I5 mini PC offers faster processing speeds, improved multitasking capabilities, and better software compatibility, simplifying installation and ensuring a stable platform. Eliminating the Timing Issues by Centralizing Nodes on I5: Centralizing all nodes on the I5 mini PC resolves timing issues observed in the previous setup. Improved synchronization and coordination between nodes result in smoother communication and minimized delays, enhancing performance and responsiveness.
Autodock functionality now incorporates strafing moves, enabling precise alignment with the docking beacon. This refinement enhances the accuracy and efficiency of the docking process.
The low power monitor program has been enhanced to incorporate additional functionality. Utilizing a QR marker and the rear-facing camera, the robot can accurately rotate to the correct angle before initiating Autodock. This improvement ensures precise alignment and eliminates potential errors during docking.
Control and day-to-day operation of the robot are seamlessly achieved using the existing chat bot, which now supports custom commands. Unknown commands are recorded for further integration into AIML, continuously improving the system's understanding and response capabilities. Text-based input simplifies interaction, enabling smooth communication between users and the robot platform.
I haven't done a update in a while Robbie now runs ROS2 humble on a single RPI4
ROS2 humble is at last at the same level as ROS1, but in general it works much better. Navigation is much more stable and works out of the box the ability to do mapping and use move_base at the same time makes mapping quicker. the work flow is now
using the way point navigator feature in RVIZ you can set the way points you would
like the robot to traverse press run and the robot moves the course. very little effort required.