Hey all,
Here’s a quick round-up of some of the new software that’s been released for Stretch these past few weeks.
Generate custom URDFs on-the-fly
The Stretch URDF library provides a module to modify, generate, and retrieve URDFs for a variety of applications. See full details in this post:
Launching Apps on Boot
A new tutorial looks at using Systemd Unit files to get applications to start automatically when the robot boots up. See full details here:
Run FUNMAP within a UV Python Virtual Environment
Stretch FUNMAP is the first Stretch package to switch over to using Python Virtual Environments (or “venvs”). Using venvs to isolate packages enables developers to update and add new dependencies to other projects without interfering with the isolated ones. Since FUNMAP’s cython module has a dependency on Numpy 1.23.2, which is an older version of Numpy, it’s common for Numpy to be updated when running pip3 install -U <pkg>
, subsequently breaking FUNMAP.
This fix consists of two parts: using UV, a package and project manager written in Rust that can generate identically reproducible builds using lockfiles, to build a venv for FUNMAP, and using the venv when FUNMAP is called from ros2 run
or ros2 launch stretch_funmap mapping.launch.py
. Over time, more of Stretch’s packages will switch to using venvs. For more details, check out the PRs: 1, 2, 3.
Update your ROS workspace to get this fix.
Fix for Phantom Points during Mapping
Due to the Stretch Nav2 package in ROS2 using an unfiltered version of the lidar scan, phantom points from the robot’s mast would appear in maps. These phantom points prevent Nav2 from planning effectively within the map.
Update your ROS workspace to get this fix.