entrypoint
An updated guide to Docker and ROS 2
Since then, I've had the chance to use Docker more in my work and have picked up some new tricks. This was long overdue, but I've finally collected my updated learnings in this post. Recently, I encountered an article titled ROS Docker; 6 reasons why they are not a good fit, and I largely agree with it. However, the reality is that it's still quite difficult to ensure a reproducible ROS environment for people who haven't spent years fighting the ROS learning curve and are adept at debugging dependency and/or build errors… so Docker is still very much a crutch that we fall back on to get working demos (and sometimes products!) If the article above hasn't completely discouraged you from embarking on this Docker adventure, please enjoy reading.
UBR-1 on ROS2 Humble
It has been a while since I've posted to the blog, but lately I've actually been working on the UBR-1 again after a somewhat long hiatus. The latest ROS2 release came out just a few weeks ago. ROS2 Humble targets Ubuntu 22.04 and is also a long term support (LTS) release, meaning that both the underlying Ubuntu operating system and the ROS2 release get a full 5 years of support. Since installing operating systems on robots is often a pain, I only use the LTS releases and so I had to migrate from the previous LTS, ROS2 Foxy (on Ubuntu 20.04). Overall, there aren't many changes to the low-level ROS2 APIs as things are getting more stable and mature.
Robotic Endoscope Control via Autonomous Instrument Tracking
Gruijthuijsen, Caspar, Garcia-Peraza-Herrera, Luis C., Borghesan, Gianni, Reynaerts, Dominiek, Deprest, Jan, Ourselin, Sebastien, Vercauteren, Tom, Poorten, Emmanuel Vander
Many keyhole interventions rely on bi-manual handling of surgical instruments, forcing the main surgeon to rely on a second surgeon to act as a camera assistant. In addition to the burden of excessively involving surgical staff, this may lead to reduced image stability, increased task completion time and sometimes errors due to the monotony of the task. Robotic endoscope holders, controlled by a set of basic instructions, have been proposed as an alternative, but their unnatural handling may increase the cognitive load of the (solo) surgeon, which hinders their clinical acceptance. More seamless integration in the surgical workflow would be achieved if robotic endoscope holders collaborated with the operating surgeon via semantically rich instructions that closely resemble instructions that would otherwise be issued to a human camera assistant, such as "focus on my right-hand instrument". As a proof of concept, this paper presents a novel system that paves the way towards a synergistic interaction between surgeons and robotic endoscope holders. The proposed platform allows the surgeon to perform a bimanual coordination and navigation task, while a robotic arm autonomously performs the endoscope positioning tasks. Within our system, we propose a novel tooltip localization method based on surgical tool segmentation and a novel visual servoing approach that ensures smooth and appropriate motion of the endoscope camera. We validate our vision pipeline and run a user study of this system. The clinical relevance of the study is ensured through the use of a laparoscopic exercise validated by the European Academy of Gynaecological Surgery which involves bi-manual coordination and navigation. Successful application of our proposed system provides a promising starting point towards broader clinical adoption of robotic endoscope holders.
Empirical Study on the Software Engineering Practices in Open Source ML Package Repositories
Xiu, Minke, Eghan, Ellis E., Ming, Zhen, Jiang, null, Adams, Bram
Recent advances in Artificial Intelligence (AI), especially in Machine Learning (ML), have introduced various practical applications (e.g., virtual personal assistants and autonomous cars) that enhance the experience of everyday users. However, modern ML technologies like Deep Learning require considerable technical expertise and resources to develop, train and deploy such models, making effective reuse of the ML models a necessity. Such discovery and reuse by practitioners and researchers are being addressed by public ML package repositories, which bundle up pre-trained models into packages for publication. Since such repositories are a recent phenomenon, there is no empirical data on their current state and challenges. Hence, this paper conducts an exploratory study that analyzes the structure and contents of two popular ML package repositories, TFHub and PyTorch Hub, comparing their information elements (features and policies), package organization, package manager functionalities and usage contexts against popular software package repositories (npm, PyPI, and CRAN). Through these studies, we have identified unique SE practices and challenges for sharing ML packages. These findings and implications would be useful for data scientists, researchers and software developers who intend to use these shared ML packages.
PyTorch
Reproducibility is an essential requirement for many fields of research including those based on machine learning techniques. However, many machine learning publications are either not reproducible or are difficult to reproduce. With the continued growth in the number of research publications, including tens of thousands of papers now hosted on arXiv and submissions to conferences at an all time high, research reproducibility is more important than ever. While many of these publications are accompanied by code as well as trained models which is helpful but still leaves a number of steps for users to figure out for themselves. We are excited to announce the availability of PyTorch Hub, a simple API and workflow that provides the basic building blocks for improving machine learning research reproducibility.
PyTorch Hub Launched to Improve Machine Learning Research Reproducibility
Reproducibility is an essential requirement for a lot of fields related to research. It also includes areas that are based on machine learning techniques. But it's also true that most of the ML-based research publications are either not reproducible or are too difficult to reproduce. The PyTorch Team announced the release of PyTorch Hub yesterday. If you don't know, PyTorch is basically a machine learning library for Python.
DVC – Open Source Machine Learning Version Control System
Yeah this is something I've been struggling with. In a project I'm working on I use docker build to 1) set up the environment 2) get canonical datasets 3) pre-process the datasets. However I've left reproducing as manual instructions, e.g. I think I could improve this by providing --entrypoint at docker run, or by providing a docker-compose file (wherein I could specify an entrypoint) for each experiment.