Package: real-robot
RealRobotReal robot interface to connect with ManiSkill2Runs camera capturing and visualization as separate processes to make it closer to using ROS:exclamation: This repo is still under heavy development, so API might be changed without noticeInstallationpython3-mpipinstall-Ureal_robotCalibrated camera poses are stored inreal_robot/assets/hec_camera_poses/and
loaded inreal_robot/sensors/camera.py.Helpful ToolsCapture Color/Depth/IR images from RS camera, dopython3-mreal_robot.tools.rs_captureGet detailed device information of connected RealSense device
(e.g., supported stream configs, sensor intrinsics, extrinsics between sensors), dopython3-mreal_robot.tools.enumerate_rs_devices>info.logConvert recorded ROS bag file and save rgb & depth images into .npz, dopython3-mreal_robot.tools.convert_rosbag_to_frames<bag_path>NotesTo fix an unindexed rosbag recorded fromRSDevice, doaptinstall-ypython3-rosbag
rosbagreindex<bag_path>Known IssueWhen controlling xArm7 withmotion_mode="cartesian_online"andwait=True,
sometimes the robot will be stuck indefinitely inwait_move()due toget_state()returns wrong state (i.e., returnsstate=1thinking it's still in motion).
Simple solution can be just to control briefly via UFACTORY Studio to get it unstuck.Changelog0.1.0New featuresAddedSharedObjectto create/mount objects stored inSharedMemoryEnabledRSDeviceto run as a separate process (nowCamerawill createRSDeviceas a separate process)EnabledRSDeviceto record camera streams as a rosbag fileEnabledXArm7to run as a separate process (for streaming robot states)EnabledCV2VisualizerandO3DGUIVisualizerto run as separate processes (for visualization)Added a defaultFileHandlerto all Logger created throughreal_robot.utils.logger.get_loggerAllow enabling selected camera streams fromRSDeviceandsensors.camera.CameraAddedsensors.simsense_depth.SimsenseDepthclass to generate depth image from stereo IR imagesAPI changesreal_robot.agents.xarmChangeXArm7parameters for clarity (safety_boundary=>safety_boundary_mm,boundary_clip_eps=>boundary_clip_mm)Addget_gripper_position()to get gripper opening width in mm or mAddgripper_speedparameter toset_action()to control gripper speedreal_robot.utils.visualization.visualizerRenameVisualizermethodshow_observation()=>show_obs()real_robot.sensors.cameraCameraConfignow accepts aconfigparameterRenameCameraConfigparameterparent_pose_fn=>parent_pose_so_namereal_robot.utils.realsenseRSDevicenow acceptsdevice_sninstead of anrs.deviceRSDevicenow acceptsconfigas parameter (width,height,fps) instead ofrs.configOther changesSwitch fromgymtogymnasiumRename allcontrol_modeby removingpd_prefix for clarity. No PD controller is used.real_robot.agents.xarmXArm7will not clear"Safety Boundary Limit"error automatically inset_action()Formotion_mode == "position", switch from usingset_tool_position()toset_position()Enable gripper and set to maximum speed inreset()Remove all Loggers created as global variables (they will be created
at import, which might not be saved underREAL_ROBOT_LOG_DIR)Bugfix in xArm-Python-SDK: enablewait=Truefor modes other than position mode0.0.2Added motion_mode to XArm7 agentAdded several control_mode:pd_ee_pos,pd_ee_pose_axangle,pd_ee_delta_pose_axangle,pd_ee_pose_quat,pd_ee_delta_pose_quat