Skip to content

RCPRG-ros-pkg/tiago_simulation_o3de

 
 

Repository files navigation

TiagoSimulation

Installation

Dependencies

  • ROS2 Humble
  • 16 GB of RAM
  • GPU with 2 GB of RAM and DirecX 12 or Vulkan support
  • Nvidia GeForce GTX 1060 or better
  • 50 GB of free disk space

Building

  1. Build O3DE (from source or deb package), follow orginal instructions here.
  2. Build O3DE-Extras, instructions here.
  3. Build TiagoSimulation
  4. Run TiagoSimulation Editor (~/TiagoSimulation$ ./build/linux/bin/profile/Editor).
  5. Run simulation (click on play button in the top menu bar or press ctrl+g).

RECOMENDED BUILD

sudo apt install -y git-lfs cmake clang libglu1-mesa-dev libxcb-xinerama0 libxcb-xinput0 libxcb-xinput-dev libxcb-xfixes0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcurl4-openssl-dev libsdl2-dev zlib1g-dev mesa-common-dev libssl-dev libunwind-dev libzstd-dev ninja-build
mkdir ~/o3de_ws
cd ~/o3de_ws
git clone https://github.com/o3de/o3de.git
$ OPTIONAL: git checkout 4fb21b8664a54ebcfd6d3d7f036c6df7bfa7b089 # commit hash at which it was tested
git lfs install
git lfs pull
./python/get_python.sh
cmake -B build/linux -S . -G "Ninja Multi-Config" -DLY_3RDPARTY_PATH=$HOME/o3de-package
cmake --build build/linux --target Editor --config profile -j <12>  # 12 is the number of cores to use for building
./scripts/o3de.sh register --this-engine
cd ~/o3de_ws && git clone https://github.com/o3de/o3de-extras

Second step is to build TiagoSimulation:

mkdir ~/projects
cd ~/projects
git clone https://github.com/adamkrawczyk/TiagoSimulation.git
cd TiagoSimulation
./o3de_ws/o3de/scripts/o3de.sh register --gem-path ${O3DE_EXTRAS_HOME}/Gems/ProteusRobot
./o3de_ws/o3de/scripts/o3de.sh register --gem-path ${O3DE_EXTRAS_HOME}/Gems/RosRobotSample
./o3de_ws/o3de/scripts/o3de.sh register --gem-path ${O3DE_EXTRAS_HOME}/Gems/WarehouseAssets
./o3de_ws/o3de/scripts/o3de.sh register --gem-path ${O3DE_EXTRAS_HOME}/Gems/WarehouseSample
./o3de_ws/o3de/scripts/o3de.sh register --template-path ${O3DE_EXTRAS_HOME}/Templates/Ros2FleetRobotTemplate
./o3de_ws/o3de/scripts/o3de.sh register --template-path ${O3DE_EXTRAS_HOME}/Templates/Ros2ProjectTemplate
cmake -B build/linux -G "Ninja Multi-Config" -DLY_DISABLE_TEST_MODULES=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLY_STRIP_DEBUG_SYMBOLS=ON -DAZ_USE_PHYSX5:BOOL=ON 
cmake --build build/linux --config profile --target TiagoSimulation Editor TiagoSimulation.Assets
./build/linux/bin/profile/Editor

Run simulation (click on play button in the top menu bar or press ctrl+g).

The topics should be visible in the terminal where you run the simulation (ros2 topic list).

To run teleop controll: ros2 run teleop_twist_keyboard teleop_twist_keyboard --remap /cmd_vel:=/base_footprint/cmd_vel

List of Components

Nr. Component Name Description Topic Comment
1 base_laser_link Robotec GPU Lidar scan "10hz Best Effort Volatile" Lidar scan
2 base_sonar_x_link Robotec GPU lidar pc "5hz Best Effort Volatile Point scan simulating 2D distance sensor
3 head_front_camera_rgb_frame ROS2 Camera Sensor camera_image_color "30hz Best Effort Volatile" RGB and depth image
4 base_imu_link ROS2 IMU Sensor imu "100hz Best Effort Volatile" IMU data
5 base_footprint ROS2 Odometry Sensor odom "10hz Best Effort Volatile" Odometry data

TickBasedSource - data is generated in fixed time intervals based on the simulation time. Implements tick callbacks as sensor event source. Source event (ROS2::SensorEventSource) is signalled based on system ticks. PhysicsBasedSource - data is generated based on the physics simulation. Implements physics callbacks as sensor event source. Source event (ROS2::SensorEventSource) is signalled based on scene. The working frequency of this event source can be changed through engine settings (physics simulation delta).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 50.6%
  • EmberScript 16.8%
  • CMake 15.9%
  • C++ 15.3%
  • Shell 1.4%