# The lay of the land for robotics in Julia

**URL:** https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376
**Category:** New to Julia
**Created:** [May 28, 2020, 8:51pm UTC](https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376 "2020-05-28T20:51:35Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)
#### Post date: [May 28, 2020, 8:51pm UTC](https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376/1 "2020-05-28T20:51:35Z")

</div>

I’m going to use Julia for a robotics simulation project. I need a basic interface to ROS 1, rosbags and visualization of point clouds, meshes, etc. I’m a bit confused about what packages are currently supported and best to invest time into for the next 6 to 12 months.

I found `RobotOS.jl`, which looks fine for ROS 1 interface. I don’t see it listed at [https://juliarobotics.org/](https://juliarobotics.org/), which seems to the place with a lot of recent activity. Is `RobotOS.jl` the best option to work with ROS 1?

Is `RobotOSData.jl` the only option to read rosbags? It hasn’t been updated in a while.

Are there any specialized options to visualize point clouds and meshes in real time? I think it can be done with Makie or GR, but is there another package, perhaps robotics or computer vision oriented?

---

<div class="post-metadata">

### Author: ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)
#### Post date: [May 31, 2020, 5:38am UTC](https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376/2 "2020-05-31T05:38:24Z")

</div>

AFAIK there hasn’t been a lot of ROS-Julia integration work, but last time I checked RobotOS.jl was still the right place to look for it.

It’s sort of a historical accident that there aren’t any ROS tools in the JuliaRobotics umbrella. Most of us who work on JuliaRobotics happened to be using an alternative tool called LCM during the MIT DARPA Robotics Challenge, so we have [GitHub - JuliaRobotics/LCMCore.jl: Low-level Julia bindings for the LCM communications library](https://github.com/JuliaRobotics/LCMCore.jl) instead. But ROS is _far_ more standard, and I wouldn’t recommend picking up LCM for a new project.

For visualization, Makie is great, but I’d also suggest looking at [https://github.com/rdeits/MeshCat.jl](https://github.com/rdeits/MeshCat.jl) (which I originally wrote for my own robot and point cloud visualization needs). There’s also [GitHub - JuliaRobotics/MeshCatMechanisms.jl: 3D Visualization of mechanisms and URDFs using MeshCat.jl and RigidBodyDynamics.jl](https://github.com/JuliaRobotics/MeshCatMechanisms.jl) which lets you visualize robots from [GitHub - JuliaRobotics/RigidBodyDynamics.jl: Julia implementation of various rigid body dynamics and kinematics algorithms](https://github.com/JuliaRobotics/RigidBodyDynamics.jl).

---

<div class="post-metadata">

### Author: ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)
#### Post date: [May 31, 2020, 4:35pm UTC](https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376/3 "2020-05-31T16:35:56Z")

</div>

I already found MeshCat, thank you for writing it! How did you read point clouds into MeshCat?

---

<div class="post-metadata">

### Author: ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)
#### Post date: [May 31, 2020, 9:52pm UTC](https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376/4 "2020-05-31T21:52:07Z")

</div>

I haven’t done any work on reading in point clouds from disk–the only cases I needed involved data already present as a vector of points in memory, which you can render with:

```julia
            verts = rand(Point3f0, 100000)
            setobject!(visualizer, PointCloud(verts))

```

Are you looking to read point cloud data from a sensor or a ROS topic of some kind?

---

<div class="post-metadata">

### Author: ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)
#### Post date: [May 31, 2020, 10:48pm UTC](https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376/5 "2020-05-31T22:48:18Z")

</div>

I’m migrating a C++ ROS project to Julia. Since I don’t really like the bloat of ROS, I will probably leave a thin C++ wrapper over ROS API subset I need and learned, and access it from Julia. It will isolate my Julia code from ROS API. I will most likely pass point clouds or depth images as plain vectors.

In the meantime, before I learn enough Julia to make it work, I would like to easily read my set of test point clouds from Julia. I can write them from C++ at practically any format, but I’m not sure which is the most reasonable for Julia: JSON, CSV, something else?

I tried to use RobotOS, but I couldn’t make it work.

---

<div class="post-metadata">

### Author: ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)
#### Post date: [June 1, 2020, 12:54am UTC](https://discourse.julialang.org/t/the-lay-of-the-land-for-robotics-in-julia/40376/6 "2020-06-01T00:54:49Z")

</div>

Any of those will be fine. Personally, I like msgpack, which has all the flexibility of JSON but better performance. HDF5 will be even better for very large datasets.
