Repository navigation
Replies: 1 comment 1 reply
|
What does "same topics as real sensors" mean? Would MujocoSimModule publish directly to /go2_a/color_image, /go2_b/color_image, etc. (If so, there are some problems with doing it that way.) Love the sequence diagram for startup. I think one important one would be do describe how communication from the connection module ends up on the simulator. For example, let's say the simulator has a liedown policy implemented. Let's say someone calls the rpc method GO2Connection.liedown. That calls MujocoConnection.liedown. Currently that does nothing. But how would you talk to the Mujoco sim to do it for that robot? |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Refactor: sim2, a standard Sim interface for DimOS
Builds on Pim's sim2 (
pim/feat/sim2-core)Goals
--simulationchanges.Overview
Connection module: Every connection module also provides a SimAdapter
Go2 already works this way:
make_connection()picks WebRTC, replay, MuJoCo or DimSim (go2/connection.py:143). Its MuJoCo and DimSim backends become oneGo2SimConnectiononSimRobotClient.SimRobotClient: This is what translates between the SimModule and the robot ConnectionModule
Startup: robots are collected from the blueprint
The engine can't add robots after it starts, so every robot is known before the sim starts.
SimulationModule: many robots, one world
flowchart LR subgraph BP["Blueprint: fleet"] A["Go2Connection<br/>go2_a"] B["Go2Connection<br/>go2_b"] X["XArmConnection<br/>arm"] end subgraph SIM["MujocoSimModule: one world"] W["kitchen scene<br/>go2_a, go2_b, arm"] end A -- "SimRobotClient go2_a" --> W B -- "SimRobotClient go2_b" --> W X -- "SimRobotClient arm" --> W W -- "world_state" --> SEN["Sensor workers<br/>cameras of all three robots"]One subclass per engine :
Only real engines get a subclass. RoboCasa and LIBERO run on MuJoCo, so they are scenes for
MujocoSimModule.Transport
world_state,sim_truthand robot state are normal Zenoh traffic.sim2/ipc/. Default to Zenoh as it supports Shm naturally.Rules
sit_down).All reactions