Skip to content

Pick and Place with Wrist Camera Example ​

This tutorial demonstrates how to use AgileBot robot's wrist camera for pick and place tasks with video recording support.

Pick and Place with Wrist Camera

Overview ​

This is a wrist camera grasping task example provided by Shanghai AgileBot Robotics Co., Ltd., containing complete digital assets of the robot, wrist camera, and gripper, as well as a pick and place task implementation and video recording program.

Features ​

  • Robot Digital Assets: Complete robot model with robotic arm and gripper
  • Grasping Test Program: Complete pick and place task implementation based on Isaac Sim
  • Video Recording: Supports RGB video recording (30fps) with multi-process implementation for non-blocking performance

Prerequisites ​

Main Files ​

FileDescription
pick_place_example.pyMain program entry point, starts simulation and executes pick and place task
video_recorder.pyVideo recording module with multi-process non-blocking recording
controllers/pick_place.pyPick and place controller
tasks/pick_place.pyPick and place task definition
usd/gbt_c5a_camera_gripper/gbt_c5a_camera_gripper.usdRobot digital asset file (complete model with robot, camera, and gripper)

Usage ​

Configuration ​

Before running the program, make sure to configure the robot resource path correctly in tasks/pick_place.py :

python
# If the path is different, please modify this absolute path to point to your actual usd folder location

Running the Program ​

bash
# Activate environment
conda activate isaaclab

# Run main program
cd agilebot_isaac_sim/example/pick_place_agilebot_camera_gripper
python pick_place_example.py

Program Functions ​

The program will automatically:

  1. Start Isaac Sim simulation environment
  2. Load robotic arm, wrist camera, and gripper
  3. Execute pick and place task
  4. Record RGB video to saved_images/captured_video_rgb.mp4

System Requirements ​

ComponentRequirement
Isaac Sim-
Python3.x
Dependenciesnumpy, opencv-python, open3d

Video Recorder ​

The video recorder class provides the following functions:

FunctionDescription
start_recording()Start recording video
capture_frame()Capture a frame
stop_recording()Stop recording and save video

Camera Configuration ​

Camera Parameters ​

ParameterDescriptionDefault Value
resolutionVideo resolution(224, 224)
fpsFrame rate30
camera_positionCamera positionBased on robot configuration
camera_orientationCamera orientationBased on robot configuration

Output Format ​

The video recorder supports the following output formats:

FormatExtensionDescription
MP4.mp4Most commonly used video format

FAQ ​

Q: Pick and place task fails ​

A: Check if the camera path is correct. Ensure the camera is properly initialized and the target object is within the camera's field of view.

Q: Video quality is poor ​

A: Check camera resolution settings. Ensure camera parameters in tasks/pick_place.py are correctly configured.

Q: Video file is too large ​

A: Video is recorded at 30fps. Consider reducing frame rate or using video compression tools.

Q: Program fails to start ​

A: Make sure to activate the correct conda environment (isaaclab) and install all dependencies:

bash
pip install numpy opencv-python open3d

Third-Party Notice ​

This demo contains a camera mount adapted from MetaIsaacGrasp, licensed under MIT.


Shanghai AgileBot Robotics Co., Ltd. | Website: https://www.sh-agilebot.com/