Advancing The Robotics Software Development Experience: Bridging Julia's Performance and Python's Ecosystem
Gustavo Nunes Goretkin, Joseph Carpinelli, Andy Park
TL;DR
The paper tackles the challenge of balancing Python's ergonomic scripting with C++'s performance in robotics by proposing Julia as a performance-focused component within Python ROS 2 applications, leveraging Julia-Python interoperation via juliacall. It argues that this two-language approach maintains Python workflows while delivering faster execution for compute-heavy tasks. A case study comparing FlexIK.jl and flex_ik_py shows a median runtime improvement from $66.76$ ms to $3.49$ ms, i.e., over $20$ times faster, illustrating Julia's practical benefits for real-time robotics. The work suggests that Julia can serve as a viable alternative to traditional Python-C++ paradigms and encourages expanding the ROS 2 ecosystem to maximize robotics impact.
Abstract
Robotics programming typically involves a trade-off between the ease of use offered by Python and the run-time performance of C++. While multi-language architectures address this trade-off by coupling Python's ergonomics with C++'s speed, they introduce complexity at the language interface. This paper proposes using Julia for performance-critical tasks within Python ROS 2 applications, providing an elegant solution that streamlines the development process without disrupting the existing Python workflow.
