OmniNxt simulator based on Isaac Lab
- Docker
- Nvidia-container-toolkit
- Git-LFS
# if not installed
sudo apt install git-lfs
# if you have a previous system-wide configuration
sudo git config --system --remove-section filter.lfs
# if you have a previous user-wide configuration
git config --global --remove-section filter.lfs
git clone https://github.com/D2SLAM-Fusion/tools-OmniNxtSimulator.git
cd tools-OmniNxtSimulator
git lfs install
git config lfs.url "https://public:[email protected]/artifactory/api/lfs/swarm-lfs"
# Pull the models
git lfs pull
./scripts/init.sh
./scripts/start.sh
-
Attach to the simulator container via VSCode Remote-Container extension
-
Run the simulator application with GUI or Native Streaming
# GUI
cd user_apps
./gui.sh 00_single_uav.py
# Native Streaming
cd user_apps
./stream.sh 00_single_uav.py
- Control the UAVs
Use the ros2 topic to control the UAVs
# Example to control robot_0
# Position control
ros2 topic pub /robot_0/control_cmd std_msgs/Float32MultiArray "{data: [0, x, y, z, yaw]}"
# Velocity control
ros2 topic pub /robot_0/control_cmd std_msgs/Float32MultiArray "{data: [1, vx, vy, vz, yaw]}"
# Thrust and Angular velocity control
ros2 topic pub /robot_0/control_cmd std_msgs/Float32MultiArray "{data: [2, avx, avy, avz, thrust]}"
Data format:
[0] - control mode | 0: position control, 1: velocity control, 2: angular velocity control
[1:4] - x, y, z, yaw | position control
[1:4] - vx, vy, vz, yaw | velocity control
[1:4] - avx, avy, avz, thrust | angular velocity control
Topic | Message Type | Description |
---|---|---|
/robot_0/odom | nav_msgs/Odometry | Odometry of robot_0 |
/robot_0/control_cmd | std_msgs/Float32MultiArray | Control command of robot_0 |
/robot_0/debug_angular_velocity | nav_msgs/Odometry | Debug angular velocity of robot_0 |
/robot_0/prop_force | std_msgs/Float32MultiArray | Propeller force of robot_0 |
/robot_0/prop_torque | std_msgs/Float32MultiArray | Propeller torque of robot_0 |
This bridge will automatically map the ROS2 topics to ROS1 topics. This is useful for the ROS1 packages that are not yet ported to ROS2.
cd ros_bridge
docker-compose up -d