ملخص سريع
- تثبيت Isaac Sim عبر منصة Omniverse Launcher على نظام Ubuntu 22.04 مع بطاقة GPU من سلسلة RTX
- استيراد الروبوتات باستخدام ملفات USD/URDF وتكوين PhysX للحصول على فيزياء واقعية
- استخدام Replicator لتوليد بيانات صناعية مع تباين مجال التطبيق
- الربط مع ROS 2 Humble عبر حزم
isaac_ros - تشغيل النظام بدون واجهة مستخدم علىInstances السحابية باستخدام Omniverse Nucleus
1. متطلبات التثبيت ونظام التشغيل
متطلبات الأجهزة
يحتاج Isaac Sim إلى:
- بطاقة الرسومات (GPU): NVIDIA RTX 30/40 أو A100/H100 (الحد الأدنى RTX 2080 Ti)
- المعالج (CPU): 8 نواة أو أكثر (موصى باستخدام Intel Xeon أو AMD Ryzen)
- الذاكرة (RAM): 32 جيجابايت أو أكثر (64 جيجابايت لمشاهد كبيرة)
- الخزن (Storage): 20 جيجابايت أو أكثر من SSD (موصى باستخدام NVMe)
متطلبات البرامج
# نظام Ubuntu 22.04 (تم التحقق منه)
sudo apt update
sudo apt install -y nvidia-driver-535 nvidia-cuda-toolkit
sudo apt install -y ros-humble-desktop ros-humble-isaac-ros
خطوات التثبيت
-
تنزيل منصة Omniverse Launcher
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" sudo apt update sudo apt install -y nvidia-omniverse-launcher -
تثبيت Isaac Sim عبر المنصة
- افتح Omniverse Launcher
- انتقل إلى Exchange → بحث عن "Isaac Sim" → تثبيت الإصدار 2023.1.1 (الأحدث المستقر)
-
تأكيد التثبيت
./isaac-sim.shالمتوقع ظهور:
[Isaac Sim] بدء التشغيل... [Omniverse Kit] إطلاق...
أخطاء شائعة أثناء التثبيت
-
الخطأ:
فشل في تهيئة CUDAالحل: تأكد من تثبيت سائقات NVIDIA:nvidia-smiيجب أن يظهر معلومات البطاقة الرسومية بدون أخطاء.
-
الخطأ:
غياب اعتماديات ROS 2 Humbleالحل: تثبيت ROS 2 Humble:sudo apt install ros-humble-isaac-ros source /opt/ros/humble/setup.bash
2. استيراد الروبوتات ومشاهد USD
صيغ الملفات المدعومة
| الصيغة | الامتداد | ملاحظات |
|---|---|---|
| وصف المشهد العالمي | .usd | الصيغة المفضلة لIsaac Sim |
| URDF | .urdf | تحويل إلى USD باستخدام isaac_ros |
| SDF | .sdf | صيغة Gazebo (تحويل عبر ros2 run urdf_to_usd) |
استيراد روبوت URDF (مثال: Franka Emika Panda)
-
تنزيل ملف URDF لFranka
mkdir -p ~/isaac_sim_ws/src cd ~/isaac_sim_ws/src git clone https://github.com/ros-industrial/franka_ros.git colcon build --symlink-install -
تحويل URDF إلى USD
ros2 run urdf_to_usd urdf_to_usd --input franka_ros/urdf/franka_panda.urdf --output franka_panda.usd -
تحميل في Isaac Sim
- إطلاق Isaac Sim:
./isaac-sim.sh - في واجهة Isaac Sim:
- انتقل إلى ملف → استيراد المشهد
- اختر
franka_panda.usd - انقر على فتح
- إطلاق Isaac Sim:
تكوين مفاصل الروبوت وجهازه الاستشعار
عدل ملف USD لإضافة أجهزة الاستشعار (مثل الكاميرات، أجهزة قياس الحركة):
def Camera "right_hand_camera" (
xformOp:transform = @right_hand_camera_xform
sensor:camera = {
focalLength = 24.0
horizontalAperture = 10.0
clippingRange = (0.01, 100.0)
}
)
3. محاكاة PhysX ونماذج أجهزة الاستشعار
تكوين خصائص الفيزياء
عدل ملف USD للروبوت لتعديل خصائص الفيزياء:
def Xform "panda_link0" (
xformOp:transform = @panda_link0_xform
physics:collisionApproxConvexHull = {
approxConvexHull = true
collisionEnabled = true
}
physics:rigidBody = {
mass = 0.5
enableGravity = true
}
)
تمكين أجهزة الاستشعار الواقعية
-
إضافة جهاز استشعار كاميرا
def Camera "head_camera" ( xformOp:transform = @head_camera_xform sensor:camera = { focalLength = 16.0 horizontalAperture = 8.0 clippingRange = (0.01, 50.0) resolution = (640, 480) } ) -
تمكين أجهزة الاستشعار العمق
# في سكربت Python (مثل `simulation_app.py`) from omni.isaac.sensor import Camera camera = Camera(prim_path="/World/head_camera", resolution=(640, 480)) camera.enable_depth()
تباين المجال من المحاكاة إلى الواقع
استخدم Replicator في Isaac Sim لتطبيق تباين المجال:
from omni.isaac.replicator import ReplicatorClient
# تهيئة Replicator
replicator = ReplicatorClient()
# تعريف معلمات التباين
randomization_params = {
"physics": {
"friction": {"min": 0.1, "max": 0.9},
"mass": {"min": 0.5, "max": 2.0}
},
"lighting": {
"intensity": {"min": 0.5, "max": 2.0}
}
}
# تطبيق على المشهد
replicator.randomize_scene(randomization_params)
4. توليد بيانات صناعية باستخدام Replicator
توليد مجموعات بيانات RGB-D
-
إنشاء خط أنابيب Replicator
from omni.isaac.replicator import ReplicatorClient, Pipeline # تهيئة replicator = ReplicatorClient() # تعريف الخط الأنابيب pipeline = Pipeline() pipeline.add(Pipeline.create_camera_sensor("rgb_camera", resolution=(1280, 720))) pipeline.add(Pipeline.create_camera_sensor("depth_camera", resolution=(1280, 720), depth=True)) # إضافة تباين pipeline.add(Pipeline.randomize_physics(friction=(0.1, 0.9))) # تصدير البيانات pipeline.add(Pipeline.write_to_disk("/data/rgb", format="png")) pipeline.add(Pipeline.write_to_disk("/data/depth", format="exr")) -
تشغيل الخط الأنابيب
python3 replicator_pipeline.py --headless
الناتج المتوقع
/data/
├── rgb/
│ ├── frame_000001.png
│ ├── frame_000002.png
│ └── ...
└── depth/
├── frame_000001.exr
├── frame_000002.exr
└── ...
5. تكامل جسر ROS 2
الربط بين Isaac Sim وROS 2 Humble
-
تثبيت جسر ROS 2 Humble
sudo apt install ros-humble-isaac-ros-bridge -
تشغيل الجسر
ros2 launch isaac_ros_bridge isaac_ros_bridge.launch.py -
نشر موضوع حالة المفاصل
# في سكربت Python (مثل `joint_publisher.py`) from isaac_ros_bridge import IsaacRosBridge bridge = IsaacRosBridge() bridge.publish_joint_states("/franka_panda/joint_states") -
الاشتراك في موضوع ROS 2
ros2 topic echo /franka_panda/joint_states
مشاكل شائعة في ROS 2
-
الخطأ:
فشل تحويل TFالحل: تأكد من تشغيلrobot_state_publisher:ros2 run robot_state_publisher robot_state_publisher --ros-args -p use_sim_time:=true -
الخطأ:
لا يوجد عقدة /isaac_ros_bridgeالحل: تأكد من تشغيل الجسر:ros2 node list
6. تشغيل بدون واجهة مستخدم ونشر في السحابة
تشغيل Isaac Sim بدون واجهة مستخدم
./isaac-sim.sh --headless --no-window --no-gui
نشر على منصة AWS السحابية
-
تشغيل Instance على EC2
- استخدم g5.2xlarge (بطاقة رسومات NVIDIA T4) أو g5.4xlarge (RTX 6000 Ada).
- AMI: Deep Learning AMI (Ubuntu 22.04).
-
تثبيت Isaac Sim على AWS
# اتبع نفس خطوات التثبيت المذكورة أعلاه wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo apt install -y nvidia-omniverse-launcher -
تشغيل محاكاة بدون واجهة مستخدم
nohup ./isaac-sim.sh --headless --no-window --no-gui > simulation.log 2>&1 &
استخدام Omniverse Nucleus للتعاون متعدد المستخدمين
-
تشغيل خادم Nucleus
omniverse-nucleus-server --headless --port 3000 -
اتصال العملاء
./isaac-sim.sh --nucleus-host <AWS_IP> --nucleus-port 3000
ما هو التالي؟
- اختبر إعدادك: قم بتشغيل مهمة بسيطة لرفع وتوضع باستخدام امتداد Manipulation في Isaac Sim.
- توليد بيانات صناعية: استخدم Replicator لإنشاء 10,000 صورة RGB-D لتدريب النماذج.
- نشر في السحابة: توسع إلى 10+ روبوتات باستخدامInstances من نوع AWS EC2 G5.
لعملية متقدمة في مجال الذكاء الاصطناعي الفيزيائي، استكشف استشارات أدوات الذكاء الاصطناعي في Hyperion لتسريع مشاريعك في الروبوتات.
