Lightweight alternatives to Gazebo

asked 2020-04-22 06:21:44 -0500

pitosalas gravatar image

updated 2020-04-22 20:22:24 -0500

Because of the capability of my virtual machine I need to get a development environment going without using Gazebo because I believe Gazebo is a real resource "user". This is for students with modest needs and means. I would like them to be able to write and play with relatively simple res programs. For simulation they would need:

  • the simulated robot akin to a turtlebot (but the urdf appearance is not super important)
  • with simulated lidar and ideally simulated camera
  • have simulated walls to be able to construct a "maze" (or I need to be able to set that up for them)

I think Rviz could do all that if combined with a "headless" simulated robot. But maybe not. And maybe there is a better way. Thanks for your tips and/or links!

Update:

  • STDR seems to be a partial solution. It has a simulated lidar and walls. I will post updates as I learn more.
  • I read somewhere that Gazebo could be run in a "headless" mode using gui:=false. But I have not been able to get it to work.

I really think that's what I need, but I can't figure out how to do it. Still looking for any other approaches or links or questions or suggestions!

edit retag flag offensive close merge delete

Comments

1

Just a comment:

I think Rviz could do all that

RViz != simulator. It's only a visualisation tool.

gvdhoorn gravatar image gvdhoorn  ( 2020-04-22 07:08:03 -0500 )edit

Yeah as gvdhoorn mentioned RVIZ is only a data visualization tool. I would have to say that if you were to only run Gazebo with a simplified physics model of the environment (say for a 2 wheeled robot on a flat plane) with no lidar or camera simulation, Gazebo is considerably lightweight. You can view the car's position in RVIZ if you feel the gazebo client is hogging resources. However, if you require a simulated lidar, I dont think it is possible to simulate it efficiently as far as I know since lidar requires some sort of line tracing and interaction with the environment, all in real time. This task typically requires a GPU to perform more efficiently as I believe there is an optimized velodyne 16 / 32 / 64 plane plugin that works much better than the CPU version. However, for very modest laptops with modest CPUs, I am ...(more)

hashirzahir gravatar image hashirzahir  ( 2020-04-22 07:17:47 -0500 )edit

@gvdhoorn and @hashirzahir I was aware of that, this is why I said with a "headless" simulated robot. Maybe that was unclear. I am digging into STDR as an option. Any more thoughts?

pitosalas gravatar image pitosalas  ( 2020-04-22 09:46:42 -0500 )edit

What do you mean by "headless"?

gvdhoorn gravatar image gvdhoorn  ( 2020-04-22 12:25:51 -0500 )edit

I know what headless means. I was specifically asking what "headless robot" changes to the statement "I think Rviz could do all that", considering RVis is not a simulator.

gvdhoorn gravatar image gvdhoorn  ( 2020-04-22 12:31:02 -0500 )edit

I think you know now what I meant. Update: I've been using stdr and for the first few "assignments" it seems to work well.Just with a simulated lidar. I dont know (and dont think) it can simulate a camera. And also have not looked into how to make a new map for it. But it's promising!

pitosalas gravatar image pitosalas  ( 2020-04-22 16:59:58 -0500 )edit
1

Yes gazebo can be run with gui:=false if you only want the gazebo server (physics engine and ros bridge) but not the gazebo client (the gazebo UI that pops up with 3d world). Depending on how you are launching your simulated environment, it can be done something like roslaunch sim_env gazebo.launch gui:=false. This has worked for me before as well. Perhaps you can explain why this is not working for you?

hashirzahir gravatar image hashirzahir  ( 2020-04-22 23:03:19 -0500 )edit