JuliaRobotics: Making robots walk with Julia | Robin Deits
Why Hacker News recommends it
Julia fans point to it as a concrete example of Julia working for soft real-time robotics, especially when avoiding heap allocation.
What it is
Robin Deits presents the JuliaRobotics organization and shows how Julia is used to visualize, simulate and control a humanoid robot. The talk touches on real-time performance and composability across packages.
Recommended by 1 HN commenters across 2 different months, 2018 to 2021.
What Hacker News said
Recommends eigenspace · 2020-02 · on “JuliaLang: The Ingredients for a Composable Programming Language”
What does this have to do with garbage collection? If your concern is about latency in real time systems, Garbage collection isn't the problem, heap allocating memory is. Julia makes it easy to never allocate anything on the heap (unlike most garbage collected langauges). Check out this talk this discusses this in detail in the context of robotics: [this video]
Recommends eigenspace · 2021-06 · on “From Julia to Rust”
Just because a GC exists doesn't mean you have to use it though. It's just another tool on your belt. There's various options depending on your problem. You could just hold firmly onto memory, preallocating all your buffers before the program starts and then don't allow them to be GC'd, you could also use stack allocated arrays like in StrideArrays.jl / StaticArrays.jl, or some combination of the above. You could also just manually use ccall to malloc and free memory as needed I guess. There's a nice talk here [1] about using julia in soft-real-time for robotics. I'd say the biggest impediment to real-time programming in julia currently is not the GC, but instead that the language has lots o
Cites ChrisRackauckas · 2018-08 · on “Julia 1.0”
Interesting to hear. This just isn't a thing I think is ever encountered in this kind of stuff. The author's previous struggle was to get to real-time. Getting below it wasn't something they really considered. Here's a talk they gave: [this video]
Cites ChrisRackauckas · 2018-08 · on “Julia 1.0”
It's probably us that are using types in a weird way so it's my lack of explanation that's the issue. Types in Julia undergo multiple dispatch, so by passing a type into a generic function you can make the same generic algorithm run in different ways. So I use types to parallelize my code, calculate derivatives, propagate parameter uncertainties, and things like that. This talk from JuliaCon discusses a lot of the things for free that were developed by taking a type from one package and putting it into another: [this video]
Critical fault1 · 2021-11 · on “Show HN: Prometeo – a Python-to-C transpiler for high-performance computing”
the problem with Julia in the use case of OP is really the fact that it is garbage collected (and perhaps also how its GC is tuned). You can work to eliminate allocations, but the memory determinism problem is more important in real time control and embedded systems. see for example, this video: [this video] It's kind of why C is still king in this space.