What is the expected Create3_Coverage behavior? #512
-
How are you connecting to your Create 3?Wi-Fi (ROS 2) Computer(s) Model(s) and Operating System(s)Ubuntu 22.04 in Docker over Raspberry Pi 5 PiOS Bookworm Which version of ROS 2 is installed on your computer?Humble Which firmware version is installed on your robot?H.2.4 Which RMW is your robot running?FastRTPS Does your robot have an assigned namespace? If so, please share.No response Is the robot connected to a network? If so, what is the network type?Yes: 2.4GHz Home WiFi Are there multiple Create 3 robots connected to your network?No Is multicast enabled?Yes What is the Adapter Board's USB/BLE Toggle currently switched to?Bluetooth (default) Describe your question.Create3_Coverage Example Behavior?I successfully modified the Create3_Coverage example for the Humble DockServo->Dock action and Dock->DockStatus message changes (and fixed the tf2.h obsolete, use tf2.hpp warning). When I set the bot in the center of a room and send the /coverage goal, the bot spins in an increasing arc until it hits a wall then aborts the exploration. Is that the designed behavior? I'm going to have to teach Wali to stay off the rugs. Is there a description or diagram of the /coverage action server states? (I see that the goal can also be sent with the Create3 docked, but Wali's dock is not in a bot-safe room.) ****************** As a side: some 25 years ago I purchased a robot Cye. It had an coverage/exploration/mapping action. I was forced to return that bot to keep the family peace, because of the marks Cye left on the rugs and carpets. Check out those spikes! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Hi @slowrunner , I don't have a state-diagram for the coverage example at hand. It essentially does the following: the robot will drive straight until it reaches an obstacle, then rotate a random angle, then drive straight again, etc, etc. |
Beta Was this translation helpful? Give feedback.
I took a stab at diagramming it - wow!
I need to go look at the log to grok why the logic did not continue after hitting the wall. I may try cleaning up my diagram. This ended up a C++ refresher exercise for me - its been more than 20 years since I was programming C++. I love state machines, so this has been very interesting.
I didn't realize there was a Humble release so I ended up modifying the Galactic version for nothing - well refreshed a lot of memory cells on C++ type definitions and declarations, so not a total waste.