Skip to content

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

turtlebot3_ws/isaacsim/scripts/create_turtlebot3_burger_with_omnigraph.py

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ def create_turtlebot3_burger_with_omnigraph():
2828
# Create turtlebot3_burger
2929
turtlebot3_burger_prim_path = "/World/turtlebot3_burger_urdf"
3030
camera_prim_path = "/World/turtlebot3_burger_urdf/base_scan/camera"
31-
camera_frame_id = "camera" # same as camera prim name
31+
camera_frame_id = "camera" # same as USD camera prim name
32+
lidar_prim_path = "/World/turtlebot3_burger_urdf/base_scan/lidar"
33+
lidar_frame_id = "lidar" # same as USD lidar prim name
3234
cmd_vel_topic = "/cmd_vel"
3335
joint_name_0 = "wheel_left_joint"
3436
joint_name_1 = "wheel_right_joint"
@@ -174,6 +176,7 @@ def create_turtlebot3_burger_with_omnigraph():
174176
("PublishTF.inputs:targetPrims", [
175177
turtlebot3_burger_prim_path,
176178
camera_prim_path,
179+
lidar_prim_path,
177180
]),
178181
("PublishTF.inputs:topicName", "tf"),
179182
]
@@ -257,6 +260,45 @@ def create_turtlebot3_burger_with_omnigraph():
257260
],
258261
},
259262
)
263+
# OmniGraph for Publishing (RTX) Lidar Laser Scan and Point Cloud
264+
# Ref: https://docs.omniverse.nvidia.com/isaacsim/latest/ros2_tutorials/tutorial_ros2_rtx_lidar.html
265+
og.Controller.edit(
266+
{"graph_path": "/Graph/ROS_LidarRTX", "evaluator_name": "execution"},
267+
{
268+
og.Controller.Keys.CREATE_NODES: [
269+
("Context", "omni.isaac.ros2_bridge.ROS2Context"),
270+
("OnPlaybackTick", "omni.graph.action.OnPlaybackTick"),
271+
("RunOnce", "omni.isaac.core_nodes.OgnIsaacRunOneSimulationFrame"),
272+
("RenderProduct", "omni.isaac.core_nodes.IsaacCreateRenderProduct"),
273+
("PublishLidarLaserScan", "omni.isaac.ros2_bridge.ROS2RtxLidarHelper"),
274+
("PublishLidarPointCloud", "omni.isaac.ros2_bridge.ROS2RtxLidarHelper"),
275+
],
276+
og.Controller.Keys.CONNECT: [
277+
("OnPlaybackTick.outputs:tick", "RunOnce.inputs:execIn"),
278+
("RunOnce.outputs:step", "RenderProduct.inputs:execIn"),
279+
# PublishLidarLaserScan
280+
("RenderProduct.outputs:execOut", "PublishLidarLaserScan.inputs:execIn"),
281+
("RenderProduct.outputs:renderProductPath", "PublishLidarLaserScan.inputs:renderProductPath"),
282+
("Context.outputs:context", "PublishLidarLaserScan.inputs:context"),
283+
# PublishLidarPointCloud
284+
("RenderProduct.outputs:execOut", "PublishLidarPointCloud.inputs:execIn"),
285+
("RenderProduct.outputs:renderProductPath", "PublishLidarPointCloud.inputs:renderProductPath"),
286+
("Context.outputs:context", "PublishLidarPointCloud.inputs:context"),
287+
],
288+
og.Controller.Keys.SET_VALUES: [
289+
("RenderProduct.inputs:cameraPrim", lidar_prim_path),
290+
# PublishLidarLaserScan
291+
("PublishLidarLaserScan.inputs:type", "laser_scan"),
292+
("PublishLidarLaserScan.inputs:topicName", "laser_scan"),
293+
("PublishLidarLaserScan.inputs:frameId", lidar_frame_id),
294+
# PublishLidarPointCloud
295+
("PublishLidarPointCloud.inputs:type", "point_cloud"),
296+
("PublishLidarPointCloud.inputs:topicName", "point_cloud"),
297+
("PublishLidarPointCloud.inputs:frameId", lidar_frame_id),
298+
("PublishLidarPointCloud.inputs:fullScan", True),
299+
],
300+
},
301+
)
260302

261303
if __name__ == '__main__':
262304
# Ref: https://docs.omniverse.nvidia.com/dev-guide/latest/programmer_ref/extensions/enable-kit-extension.html

turtlebot3_ws/src/turtlebot3/turtlebot3_description/urdf/turtlebot3_burger_isaacsim.urdf.xacro

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,4 +201,13 @@
201201
</camera>
202202
</sensor>
203203

204+
<sensor name="lidar" type="ray" update_rate="30" isaac_sim_config="Example_Solid_State">
205+
<parent link="base_scan"/>
206+
<origin xyz="0 0 0" rpy="0 0 0"/>
207+
<ray>
208+
<horizontal samples="21" resolution="1" min_angle="-0.785398" max_angle="0.785398"/>
209+
<vertical samples="20" resolution="1" min_angle="-0.523599" max_angle="0.523599"/>
210+
</ray>
211+
</sensor>
212+
204213
</robot>

0 commit comments

Comments
 (0)