#ros2humble — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #ros2humble, aggregated by home.social.
-
ROS 2 Success with ReentrantCallbackGroups
Robot "Kilted-Dave" was not able to declare docking success from the dock callback because the battery_state callback was not allowed to execute to update the new charging state.
I had already setup callback groups but failed to initialize the battery_state callback group as reentrant.
Single line fix to a problem plaguing my #GoPiGo3 #RaspberryPi4 #ROS2_KiltedKaiju #robot since he was "Humble-Dave" on #ROS2Humble
-
In ROS there is a URDF file (Universal Robot Description File) which allows the robot visualization application to show a symbolic robot and the robot and state publishers to update where the robot parts are located as the robot moves.
These files can be amazingly complex to get the values correct for every part of a robot to appear in the correct place, and for sensor data to be accurate.
Over the years I have created #GoPiGo3 #URDF files. Today the GoPi5Go-Dave file:
-
Finally got around to diagramming ROSbot GoPi5Go-Dave's Software Architecture
#GoPiGo3 #Docker #RaspberryPi5 #RaspberryPiOS #Robot #ros2humble
-
Progress - GoPi5Go-Dave Robot Is Docking and Undocking 24/7 managed by ROS 2 nodes.
2024-08-26 19:16|dave_node.py| ---- GoPi5Go-Dave ROS Docking 928 : success at battery 10v after 2.5 h playtime
His stack:
- dave_node
- docking_node
- [slam_toolkit and nav2]
- [RTABmap]
- battery_node
- gopigo3_node
- odometer node
- ydLIDAR node
- oak_d_w_ros2 node
- teleop_joy node
- say_server node(Piper-TTS)
- safety_shutdown node
- I2C mutex#GoPiGo3 #ROS2Humble #Robot #RaspberryPi5 #Docker #autonomous
-
@drfootleg
> ROS with real robotNot a trained ROSer, but figured out from first robot node and keyboard driving, joystick driving, adding LIDAR, and URDF for visualizing my bot in rviz2 on the desktop, up to running SLAM on the bot.
I created a custom "ROS 2 GoPiGo3 Robot Node", and then a set of guided "tests" with shell script commands to help remember how to do things.
Perhaps some useful stuff:
https://github.com/slowrunner/ROS2-GoPiGo3/blob/main/Docs/Test_ROS2_GoPiGo3.md
and the node is at https://github.com/slowrunner/ROS2-GoPiGo3/blob/main/ros2ws/src/ros2_gopigo3_node/ros2_gopigo3_node/gopigo3_node.py
-
> Raspberry Pi projects?
Solved a month long mystery!
How to manage Raspberry Pi I2C device access inside ROS2/Ubuntu/Docker container **AND** outside the container in Raspberry PiOS Bookworm?
Docker invocation must map both the bus AND the mutex lock folder /var/lock/
#RaspberryPi5 #RaspberryPiOS
#I2C #Mutex #Docker #ROS2humble #Robot #GoPiGo3 -
@drfootleg Another tip that has been plaguing me for a month!
If you have processes inside a Docker container and other processes outside the Docker container that need mutex protection such as I2C bus or SPI bus accesses, you need to map the bus (obviously) **and** the mutex folder!
I had the sensor access working great but could not figure out why my inside and outside "mutex protected" accesses were colliding...
-
Think I solved why my inside Docker (ROS 2) access to I2C INA219 current sensor was colliding with my outside Docker access to the device - forgot to map the /var/lock directory so the mutex is visible from both environments!
-
> ROS2 in Docker on PiOS Bookworm for Pi5
Tip: Break the build into two Dockerfiles - 1) the long base build, and 2) the experimental build steps that will fail a few times (quickly).
Check out my robot's Docker build steps and DockerFiles at
https://github.com/slowrunner/GoPi5Go/tree/main/config/docker -
@drfootleg "XYZZY" RTABmap for now but somewhere deep in "twisty little passages all different" I hope to find:
#GoPiGo3 #Robots #ros2humble on #RaspberryPi5 in #Docker #ColossalCave
-
Sometimes you can't fix your robot with software
https://forum.dexterindustries.com/t/gopi5go-docking-in-progress/9717/14?u=cyclicalobsessive
-
Success! Managed to install the #YDLidar_SDK inside a #ros2humble #Docker container on my #RaspberryPi5 powered #GoPiGo3 #robot and access the #YDLidarX4 as a USB device. This rebuild in Docker on the Pi5 is a painful, slow setback now that promises more, faster.
-
At this reduced transfer rate, the #GoPiGo3 can make a two byte #SPI transfer in 0.0003 seconds, which means it can retrieve the left and right wheel encoder values roughly 1700 times per second - plenty fast enough for my #ros2humble robot to publish #wheelencoders and the resultant #odometry at 30 Hz.
-
@julien This is how I feel running #ros2humble in #docker on the #RaspberryPi5
I wanted the benefit of the Pi5 nap (RTC) and 2x performance over Pi4, but the current long term support version of ROS 2 will not run native on either of the Pi5 supported operating systems.
ROS over
Ubuntu in
Docker over
PiOS 64-bit Bookworm.I end up having to rebuild my container (25 minutes) nearly every week for something.
-
(Again) so excited that my #ros2humble wallfollower.py node drove my #Create3 #robot “WaLI (wallfollower looking for intelligence)” to follow 17 meters of six connected walls!
So far it is subscribing to five topics /ir_intensity (range to wall and obstacle detection), /hazard_detection (bumpers), /ir_opcode (virtual wall), /kidnap_status (lifted by human), and /odom (pose), and a seven state machine managing seven motion actions/reactions.
Now to “parameterize” and “generalize” it.
-
Put together a 2-minute video for my #ros2humble #create3robot with #RaspberryPi5 controller safely mapping and wandering the kitchen using the native IR intensity sensors:
-
#SLAM_Toolbox Mapping w/o Localization
Got slam_toolbox mapping with localization turned off, but managed to figure out how to serve up a better looking map from my house floor plan.
The weakness of dead reckoning #odometry becomes very evident with the floorplan map.
Next up - #DeadReckoning #navigation with #ros2humble #nav2 and #map_server
-
Dress Rehearsal
Full Load #RaspberryPi5
Power System TestFull load (1min 4.96): No Throttling - NO PROBLEM.
Wali with 14.4v powered USB hub inside cargo drawer:
(WaLi: Wall follower Looking for Intelligence)
The Pi5 has #ros2humble running in #Docker over PiOS 64-bit Bookworm Desktop
-
#ROS - #Docker - #RaspberryPi5 !!!
#slam_toolbox async mapping:
- Pi4 15% CPU (2% of RPi4)
- Pi5 5% CPU (1% of RPi5)Much prefer configuring and running ROS 2 native on #Ubuntu22_04Lts on Pi4 than configuring Docker on Pi5.
rViz2 in Ubuntu 22.04 in VM on Mac OS showing map and path.
slam-toolbox async in Docker on PiOS 64-bit Bookworm on Pi5 (2 ssh sessions)
#GoPiGo3 #robot on Ubuntu 22.04 on Pi4 (4 ssh sessions)
All talking to each other - pretty impressed with #ros2humble
-
We are hounded to code for expected error cases, but frameworks sometimes do it for us.
#ROS2 Humble seems to have broken the SIGINT handling associated with timers and callbacks. Control-c in Galactic never caused an exception, but in C++ or Python, Humble complains "terminate called after exceptions::RCLError".
I posted months ago on answers.ros.org with no takers.
Am I the only person using #ros2humble?