From fb123d46b45b39bcf9dfbc09f2366f04f31e4fb6 Mon Sep 17 00:00:00 2001 From: Wouter Jansen Date: Mon, 15 Jul 2024 11:03:12 +0200 Subject: [PATCH] Updated documentation and links --- AirLib/include/common/AirSimSettings.hpp | 2 +- CHANGELOG.md | 4 +- .../DataCollectorSGM_settings.json | 2 +- Examples/DepthNav/DepthNav_settings.json | 2 +- GazeboDrone/README.md | 2 +- MavLinkCom/MavLinkMoCap/Readme.md | 2 +- MavLinkCom/README.md | 2 +- PythonClient/computer_vision/cv_capture.py | 2 +- PythonClient/computer_vision/cv_mode.py | 2 +- PythonClient/computer_vision/cv_navigate.py | 2 +- PythonClient/computer_vision/getpos.py | 2 +- PythonClient/computer_vision/ground_truth.py | 2 +- PythonClient/computer_vision/objects.py | 2 +- PythonClient/computer_vision/segmentation.py | 2 +- PythonClient/multirotor/multi_agent_drone.py | 2 +- PythonClient/multirotor/opencv_show.py | 2 +- .../sensorframe_lidar_pointcloud.py | 4 +- .../vehicleframe_lidar_pointcloud.py | 4 +- .../Blocks/Config/DefaultGame.ini | 10 +-- Unreal/Plugins/AirSim/AirSim.uplugin | 8 +-- build.cmd | 2 +- build.sh | 2 +- docker/Dockerfile_source | 2 +- docker/settings.json | 4 +- docs/InfraredCamera.md | 8 +-- docs/adding_new_apis.md | 8 +-- docs/apis.md | 18 ++--- docs/apis_cpp.md | 6 +- docs/custom_drone.md | 4 +- docs/distance_sensor.md | 2 +- docs/echo.md | 8 +-- docs/event_sim.md | 4 +- docs/gpulidar.md | 6 +- docs/image_apis.md | 10 +-- docs/install_linux.md | 2 +- docs/install_windows.md | 2 +- docs/lidar.md | 4 +- docs/log_viewer.md | 2 +- docs/modify_recording_data.md | 2 +- docs/multi_vehicle.md | 12 ++-- docs/object_detection.md | 2 +- docs/pfm.md | 2 +- docs/px4_lockstep.md | 2 +- docs/px4_logging.md | 2 +- docs/px4_multi_vehicle.md | 8 +-- docs/px4_setup.md | 2 +- docs/px4_sitl.md | 2 +- docs/px4_sitl_wsl2.md | 2 +- docs/remote_control.md | 6 +- docs/ros_cplusplus.md | 66 +++++++++---------- docs/sensors.md | 2 +- docs/settings.md | 4 +- docs/settings_example.json | 4 +- docs/unreal_blocks.md | 4 +- docs/unreal_custenv.md | 4 +- docs/using_car.md | 2 +- ros2/src/airsim_ros_pkgs/README.md | 2 +- 57 files changed, 141 insertions(+), 143 deletions(-) diff --git a/AirLib/include/common/AirSimSettings.hpp b/AirLib/include/common/AirSimSettings.hpp index a19b634a4..97f906ae0 100644 --- a/AirLib/include/common/AirSimSettings.hpp +++ b/AirLib/include/common/AirSimSettings.hpp @@ -581,7 +581,7 @@ namespace airlib Settings& settings_json = Settings::singleton(); //write some settings_json in new file otherwise the string "null" is written if all settings_json are empty - settings_json.setString("SeeDocsAt", "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/docs/settings.md"); + settings_json.setString("SeeDocsAt", "https://cosys-lab.github.io/settings/"); settings_json.setDouble("SettingsVersion", 2.0); std::string settings_filename = Settings::getUserDirectoryFullPath("settings.json"); diff --git a/CHANGELOG.md b/CHANGELOG.md index e72cbf766..65a845c26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -254,7 +254,7 @@ ### November, 2018 * Added Weather Effects and [APIs](apis.md#weather-apis) * Added [Time of Day API](apis.md#time-of-day-api) -* An experimental integration of [AirSim on Unity](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unity) is now available. Learn more in [Unity blog post](https://blogs.unity3d.com/2018/11/14/airsim-on-unity-experiment-with-autonomous-vehicle-simulation). +* An experimental integration of [AirSim on Unity](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unity) is now available. Learn more in [Unity blog post](https://blogs.unity3d.com/2018/11/14/airsim-on-unity-experiment-with-autonomous-vehicle-simulation). * [New environments](https://github.com/Microsoft/AirSim/releases/tag/v1.2.1): Forest, Plains (windmill farm), TalkingHeads (human head simulation), TrapCam (animal detection via camera) * Highly efficient [NoDisplay view mode](settings.md#viewmode) to turn off main screen rendering so you can capture images at high rate * [Enable/disable sensors](https://github.com/Microsoft/AirSim/pull/1479) via settings @@ -265,7 +265,7 @@ * [Custom speed units](https://github.com/Microsoft/AirSim/pull/1181) * [ROS publisher](https://github.com/Microsoft/AirSim/pull/1135) * [simSetObjectPose API](https://github.com/Microsoft/AirSim/pull/1161) -* [Character Control APIs](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/airsim/client.py#L137) (works on TalkingHeads binaries in release) +* [Character Control APIs](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/airsim/client.py#L137) (works on TalkingHeads binaries in release) * [Arducopter Solo Support](https://github.com/Microsoft/AirSim/pull/1387) * [Linux install without sudo access](https://github.com/Microsoft/AirSim/pull/1434) * [Kinect like ROS publisher](https://github.com/Microsoft/AirSim/pull/1298) diff --git a/Examples/DataCollection/DataCollectorSGM_settings.json b/Examples/DataCollection/DataCollectorSGM_settings.json index cc1b5bafd..4fe9baece 100644 --- a/Examples/DataCollection/DataCollectorSGM_settings.json +++ b/Examples/DataCollection/DataCollectorSGM_settings.json @@ -1,5 +1,5 @@ { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/settings.md", + "SeeDocsAt": "https://cosys-lab.github.io/settings/", "SettingsVersion": 1.2, "SimMode": "ComputerVision", "CameraDefaults": { diff --git a/Examples/DepthNav/DepthNav_settings.json b/Examples/DepthNav/DepthNav_settings.json index df26a4815..1d4eaa2cf 100644 --- a/Examples/DepthNav/DepthNav_settings.json +++ b/Examples/DepthNav/DepthNav_settings.json @@ -1,5 +1,5 @@ { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/settings.md", + "SeeDocsAt": "https://cosys-lab.github.io/settings/", "SettingsVersion": 1.2, "SimMode": "ComputerVision", "CameraDefaults": { diff --git a/GazeboDrone/README.md b/GazeboDrone/README.md index c41c89fd9..9fc6af800 100644 --- a/GazeboDrone/README.md +++ b/GazeboDrone/README.md @@ -1,3 +1,3 @@ # Welcome to GazeboDrone -This page has moved [here](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/gazebo_drone.md). \ No newline at end of file +This page has moved [here](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/gazebo_drone.md). \ No newline at end of file diff --git a/MavLinkCom/MavLinkMoCap/Readme.md b/MavLinkCom/MavLinkMoCap/Readme.md index 61532098b..bb41390e3 100644 --- a/MavLinkCom/MavLinkMoCap/Readme.md +++ b/MavLinkCom/MavLinkMoCap/Readme.md @@ -1,3 +1,3 @@ # Welcome to MavLinkMoCap -This page has moved [here](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/mavlinkcom_mocap.md). \ No newline at end of file +This page has moved [here](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/mavlinkcom_mocap.md). \ No newline at end of file diff --git a/MavLinkCom/README.md b/MavLinkCom/README.md index ca4785bbc..aaadc0a7f 100644 --- a/MavLinkCom/README.md +++ b/MavLinkCom/README.md @@ -1,3 +1,3 @@ # Welcome to MavLinkCom -This page has moved [here](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/mavlinkcom.md). \ No newline at end of file +This page has moved [here](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/mavlinkcom.md). \ No newline at end of file diff --git a/PythonClient/computer_vision/cv_capture.py b/PythonClient/computer_vision/cv_capture.py index 676ef4b5b..4d98a3ec7 100644 --- a/PythonClient/computer_vision/cv_capture.py +++ b/PythonClient/computer_vision/cv_capture.py @@ -1,5 +1,5 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import setup_path import cosysairsim as airsim diff --git a/PythonClient/computer_vision/cv_mode.py b/PythonClient/computer_vision/cv_mode.py index f7c3cc6c2..88b500701 100644 --- a/PythonClient/computer_vision/cv_mode.py +++ b/PythonClient/computer_vision/cv_mode.py @@ -1,5 +1,5 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import setup_path import cosysairsim as airsim diff --git a/PythonClient/computer_vision/cv_navigate.py b/PythonClient/computer_vision/cv_navigate.py index fcd2cee44..ff0ad0f79 100644 --- a/PythonClient/computer_vision/cv_navigate.py +++ b/PythonClient/computer_vision/cv_navigate.py @@ -1,6 +1,6 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import setup_path import cosysairsim as airsim diff --git a/PythonClient/computer_vision/getpos.py b/PythonClient/computer_vision/getpos.py index ff75430be..42548a06b 100644 --- a/PythonClient/computer_vision/getpos.py +++ b/PythonClient/computer_vision/getpos.py @@ -1,5 +1,5 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import setup_path import cosysairsim as airsim diff --git a/PythonClient/computer_vision/ground_truth.py b/PythonClient/computer_vision/ground_truth.py index a89f11f9b..2906aa644 100644 --- a/PythonClient/computer_vision/ground_truth.py +++ b/PythonClient/computer_vision/ground_truth.py @@ -1,5 +1,5 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import setup_path import cosysairsim as airsim diff --git a/PythonClient/computer_vision/objects.py b/PythonClient/computer_vision/objects.py index b2fce512c..b37cc4ebc 100644 --- a/PythonClient/computer_vision/objects.py +++ b/PythonClient/computer_vision/objects.py @@ -1,5 +1,5 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import setup_path import cosysairsim as airsim diff --git a/PythonClient/computer_vision/segmentation.py b/PythonClient/computer_vision/segmentation.py index 306ef305a..11e550fb2 100644 --- a/PythonClient/computer_vision/segmentation.py +++ b/PythonClient/computer_vision/segmentation.py @@ -1,5 +1,5 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import cosysairsim as airsim import cv2 diff --git a/PythonClient/multirotor/multi_agent_drone.py b/PythonClient/multirotor/multi_agent_drone.py index 0b644f3b9..9e61646b4 100644 --- a/PythonClient/multirotor/multi_agent_drone.py +++ b/PythonClient/multirotor/multi_agent_drone.py @@ -9,7 +9,7 @@ # Use below in settings.json with Blocks environment """ { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/settings.md", + "SeeDocsAt": "https://cosys-lab.github.io/settings/", "SettingsVersion": 1.2, "SimMode": "Multirotor", "ClockSpeed": 1, diff --git a/PythonClient/multirotor/opencv_show.py b/PythonClient/multirotor/opencv_show.py index ba1c0a41e..892f00b66 100644 --- a/PythonClient/multirotor/opencv_show.py +++ b/PythonClient/multirotor/opencv_show.py @@ -1,5 +1,5 @@ # In settings.json first activate computer vision mode: -# https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/image_apis.md#computer-vision-mode +# https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/image_apis.md#computer-vision-mode import setup_path import cosysairsim as airsim diff --git a/PythonClient/multirotor/sensorframe_lidar_pointcloud.py b/PythonClient/multirotor/sensorframe_lidar_pointcloud.py index 591fa063d..87145772f 100644 --- a/PythonClient/multirotor/sensorframe_lidar_pointcloud.py +++ b/PythonClient/multirotor/sensorframe_lidar_pointcloud.py @@ -3,8 +3,8 @@ # Sample settings.json used for this script: ''' { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/settings_json.md", - "SettingsVersion": 1.2, + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 2.0, "SimMode": "Multirotor", diff --git a/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py b/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py index 096ff7e64..b36bab56f 100644 --- a/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py +++ b/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py @@ -3,8 +3,8 @@ # Sample settings.json used for this script: ''' { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/settings_json.md", - "SettingsVersion": 1.2, + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 20, "SimMode": "Multirotor", diff --git a/Unreal/Environments/Blocks/Config/DefaultGame.ini b/Unreal/Environments/Blocks/Config/DefaultGame.ini index 80fe88a91..869c60aa8 100644 --- a/Unreal/Environments/Blocks/Config/DefaultGame.ini +++ b/Unreal/Environments/Blocks/Config/DefaultGame.ini @@ -1,12 +1,12 @@ [/Script/EngineSettings.GeneralProjectSettings] ProjectID=367FFC384956CDC4377673B3217F380D ProjectName="Blocks" -CompanyName=Microsoft Research -Homepage="https://cosysgit.uantwerpen.be/sensorsimulation/airsim" -SupportContact="https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/issues" +CompanyName=Cosys-Lab +Homepage="https://github.com/Cosys-Lab/Cosys-AirSim" +SupportContact="https://cosys-lab.github.io/" LicensingTerms=MIT Licence -ProjectDisplayedTitle=NSLOCTEXT("[/Script/EngineSettings]", "8F8B6B2A472F9FDFB69E2B8CFAE8C4E0", "Blocks Environment for AirSim") -ProjectDebugTitleInfo=NSLOCTEXT("[/Script/EngineSettings]", "F31D7C524A9E9BC66DD2AA922D309408", "Blocks Environment for AirSim") +ProjectDisplayedTitle=NSLOCTEXT("[/Script/EngineSettings]", "8F8B6B2A472F9FDFB69E2B8CFAE8C4E0", "Blocks Environment for Cosys-AirSim") +ProjectDebugTitleInfo=NSLOCTEXT("[/Script/EngineSettings]", "F31D7C524A9E9BC66DD2AA922D309408", "Blocks Environment for Cosys-AirSim") [/Script/UnrealEd.ProjectPackagingSettings] Build=IfProjectHasCode diff --git a/Unreal/Plugins/AirSim/AirSim.uplugin b/Unreal/Plugins/AirSim/AirSim.uplugin index abd639cef..4eb3344cc 100644 --- a/Unreal/Plugins/AirSim/AirSim.uplugin +++ b/Unreal/Plugins/AirSim/AirSim.uplugin @@ -2,14 +2,14 @@ "FileVersion" : 3, "Version" : "2.0.0", "VersionName": "2.0.0", - "FriendlyName": "AirSim", - "Description": "AirSim - Simulator Plugin", + "FriendlyName": "Cosys-AirSim", + "Description": "Cosys-AirSim - Simulator Plugin", "Category" : "Science", "CreatedBy": "Shital Shah", "CreatedByURL": "http://cosys-lab.uantwerpen.be/", - "DocsURL" : "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/README.md", + "DocsURL" : "https://cosys-lab.github.io/", "MarketplaceURL" : "", - "SupportURL" : "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/README.md", + "SupportURL" : "https://cosys-lab.github.io/", "EnabledByDefault" : true, "CanContainContent": true, "IsBetaVersion" : true, diff --git a/build.cmd b/build.cmd index d009c69fc..0c4f7cafb 100644 --- a/build.cmd +++ b/build.cmd @@ -17,7 +17,7 @@ if "%VisualStudioVersion%" lss "17.0" ( echo( echo Hello there! We just upgraded AirSim to Unreal Engine 5.4.2 and Visual Studio 2022. echo Here are few easy steps for upgrade so everything is new and shiny: - echo https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/docs/unreal_upgrade.md + echo https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/unreal_upgrade.md goto :buildfailed_nomsg ) diff --git a/build.sh b/build.sh index e8a7ebd6d..f15c82cff 100755 --- a/build.sh +++ b/build.sh @@ -137,7 +137,7 @@ echo " Cosys-AirSim plugin is built!." echo "===============================" echo "" echo "For further info see for installation see:" -echo "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/mastermaster/docs/install_linux.md" +echo "https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/docs/install_linux.md" echo "==================================================================" popd >/dev/null diff --git a/docker/Dockerfile_source b/docker/Dockerfile_source index 70beab0e2..7e07e0ccb 100644 --- a/docker/Dockerfile_source +++ b/docker/Dockerfile_source @@ -13,7 +13,7 @@ RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ USER ue4 RUN cd /home/ue4 && \ - git clone --progress https://cosysgit.uantwerpen.be/sensorsimulation/airsim.git && \ + git clone --progress https://github.com/Cosys-Lab/Cosys-AirSim.git && \ cd AirSim && \ ./setup.sh && \ ./build.sh diff --git a/docker/settings.json b/docker/settings.json index 4fbb05f7e..da59ce4aa 100644 --- a/docker/settings.json +++ b/docker/settings.json @@ -1,6 +1,6 @@ { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/docs/settings.md", - "SettingsVersion": 1.2, + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 2.0, "SimMode": "Multirotor", "ClockSpeed": 1.0, "Vehicles": { diff --git a/docs/InfraredCamera.md b/docs/InfraredCamera.md index 5ecab0a9a..66ce1b318 100644 --- a/docs/InfraredCamera.md +++ b/docs/InfraredCamera.md @@ -1,11 +1,11 @@ This is a tutorial for generating simulated thermal infrared (IR) images using Cosys-AirSim. -To generate your own data, you may use two python files: [create_ir_segmentation_map.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//computer_vision/create_ir_segmentation_map.py) and -[capture_ir_segmentation.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//computer_vision/capture_ir_segmentation.py). +To generate your own data, you may use two python files: [create_ir_segmentation_map.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/computer_vision/create_ir_segmentation_map.py) and +[capture_ir_segmentation.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/computer_vision/capture_ir_segmentation.py). -[create_ir_segmentation_map.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//computer_vision/create_ir_segmentation_map.py) uses temperature, emissivity, and camera response information to estimate the thermal digital count that could be expected for the objects in the environment, and then reassigns the segmentation IDs in Cosys-AirSim to match these digital counts. It should be run before starting to capture thermal IR data. Otherwise, digital counts in the IR images will be incorrect. The camera response, temperature, and emissivity data are all included for the Africa environment. +[create_ir_segmentation_map.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/computer_vision/create_ir_segmentation_map.py) uses temperature, emissivity, and camera response information to estimate the thermal digital count that could be expected for the objects in the environment, and then reassigns the segmentation IDs in Cosys-AirSim to match these digital counts. It should be run before starting to capture thermal IR data. Otherwise, digital counts in the IR images will be incorrect. The camera response, temperature, and emissivity data are all included for the Africa environment. -[capture_ir_segmentation.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//computer_vision/capture_ir_segmentation.py) is run after the segmentation IDs have been reassigned. It tracks objects of interest and records the infrared and scene images from the multirotor. It uses Computer Vision mode. +[capture_ir_segmentation.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/computer_vision/capture_ir_segmentation.py) is run after the segmentation IDs have been reassigned. It tracks objects of interest and records the infrared and scene images from the multirotor. It uses Computer Vision mode. Finally, the details about how temperatures were estimated for plants and animals in the Africa environment, etc. can be found in this paper: diff --git a/docs/adding_new_apis.md b/docs/adding_new_apis.md index b2712ccf2..a11c9c274 100644 --- a/docs/adding_new_apis.md +++ b/docs/adding_new_apis.md @@ -32,17 +32,17 @@ The APIs use [msgpack-rpc protocol](https://github.com/msgpack-rpc/msgpack-rpc) To add the RPC code to call the new API, follow the steps below. Follow the implementation of other APIs defined in the files. -1. Add an RPC handler in the server which calls your implemented method in [RpcLibServerBase.cpp](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/AirLib/src/api/RpcLibServerBase.cpp). Vehicle-specific APIs are in their respective vehicle subfolder. +1. Add an RPC handler in the server which calls your implemented method in [RpcLibServerBase.cpp](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/AirLib/src/api/RpcLibServerBase.cpp). Vehicle-specific APIs are in their respective vehicle subfolder. -2. Add the C++ client API method in [RpcClientBase.cpp](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/AirLib/src/api/RpcLibClientBase.cpp) +2. Add the C++ client API method in [RpcClientBase.cpp](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/AirLib/src/api/RpcLibClientBase.cpp) -3. Add the Python client API method in [client.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/airsim/client.py). If needed, add or modify a structure definition in [types.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/airsim/types.py) +3. Add the Python client API method in [client.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/airsim/client.py). If needed, add or modify a structure definition in [types.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/airsim/types.py) ## Testing Testing is required to ensure that the API is working as expected. For this, as expected, you'll have to use the source-built AirSim and Blocks environment. Apart from this, if using the Python APIs, you'll have to use the `airsim` package from source rather than the PyPI package. Below are 2 ways described to go about using the package from source - -1. Use [setup_path.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/multirotor/setup_path.py). It will setup the path such that the local airsim module is used instead of the pip installed package. This is the method used in many of the scripts since the user doesn't need to do anything other than run the script. +1. Use [setup_path.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/multirotor/setup_path.py). It will setup the path such that the local airsim module is used instead of the pip installed package. This is the method used in many of the scripts since the user doesn't need to do anything other than run the script. Place your example script in one of the folders inside `PythonClient` like `multirotor`, `car`, etc. You can also create one to keep things separate, and copy the `setup_path.py` file from another folder. Add `import setup_path` before `import cosysairsim as airsim` in your files. Now the latest main API (or any branch currently checked out) will be used. diff --git a/docs/apis.md b/docs/apis.md index 24d3c3ba0..e428f4e92 100644 --- a/docs/apis.md +++ b/docs/apis.md @@ -122,20 +122,20 @@ for response in responses: * `simListSceneObjects`: Provides a list of all objects in the environment. You can also use regular expression to filter specific objects by name. For example, the code below sets all meshes which have names starting with "wall" you can use `simListSceneObjects("wall[\w]*")`. ### Image/Computer Vision/Instance segmentation APIs -AirSim offers comprehensive images APIs to retrieve synchronized images from multiple cameras along with ground truth including depth, disparity, surface normals and vision. You can set the resolution, FOV, motion blur etc parameters in [settings.json](settings.md). There is also API for detecting collision state. See also [complete code](https://github.com/Microsoft/AirSim/tree/master/Examples/DataCollection/StereoImageGenerator.hpp) that generates specified number of stereo images and ground truth depth with normalization to camera plan, computation of disparity image and saving it to [pfm format](pfm.md). +AirSim offers comprehensive images APIs to retrieve synchronized images from multiple cameras along with ground truth including depth, disparity, surface normals and vision. You can set the resolution, FOV, motion blur etc parameters in [settings.json](settings.md). There is also API for detecting collision state. See also [complete code](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Examples/DataCollection/StereoImageGenerator.hpp) that generates specified number of stereo images and ground truth depth with normalization to camera plan, computation of disparity image and saving it to [pfm format](pfm.md). Furthermore, the [Instance Segmentation](instance_segmentation.md) system can also be manipulated through the API. More on [image APIs, Computer Vision mode and instance segmentation configuration](image_apis.md). ### Pause and Continue APIs -AirSim allows to pause and continue the simulation through `pause(is_paused)` API. To pause the simulation call `pause(True)` and to continue the simulation call `pause(False)`. You may have scenario, especially while using reinforcement learning, to run the simulation for specified amount of time and then automatically pause. While simulation is paused, you may then do some expensive computation, send a new command and then again run the simulation for specified amount of time. This can be achieved by API `continueForTime(seconds)`. This API runs the simulation for the specified number of seconds and then pauses the simulation. For example usage, please see [pause_continue_car.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//car/pause_continue_car.py) and [pause_continue_drone.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//multirotor/pause_continue_drone.py). +AirSim allows to pause and continue the simulation through `pause(is_paused)` API. To pause the simulation call `pause(True)` and to continue the simulation call `pause(False)`. You may have scenario, especially while using reinforcement learning, to run the simulation for specified amount of time and then automatically pause. While simulation is paused, you may then do some expensive computation, send a new command and then again run the simulation for specified amount of time. This can be achieved by API `continueForTime(seconds)`. This API runs the simulation for the specified number of seconds and then pauses the simulation. For example usage, please see [pause_continue_car.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/car/pause_continue_car.py) and [pause_continue_drone.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/multirotor/pause_continue_drone.py). ### Collision API The collision information can be obtained using `simGetCollisionInfo` API. This call returns a struct that has information not only whether collision occurred but also collision position, surface normal, penetration depth and so on. ### Time of Day API -AirSim assumes there exist sky sphere of class `EngineSky/BP_Sky_Sphere` in your environment with [ADirectionalLight actor](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/masterv1.4.0-linux/Unreal/Plugins/AirSim/Source/SimMode/SimModeBase.cpp#L224). By default, the position of the sun in the scene doesn't move with time. You can use [settings](settings.md#timeofday) to set up latitude, longitude, date and time which AirSim uses to compute the position of sun in the scene. +AirSim assumes there exist sky sphere of class `EngineSky/BP_Sky_Sphere` in your environment with ADirectionalLight actor. By default, the position of the sun in the scene doesn't move with time. You can use [settings](settings.md#timeofday) to set up latitude, longitude, date and time which AirSim uses to compute the position of sun in the scene. You can also use following API call to set the sun position according to given date time: @@ -177,9 +177,9 @@ class WeatherParameter: Fog = 7 ``` -Please note that `Roadwetness`, `RoadSnow` and `RoadLeaf` effects requires adding [materials](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Plugins/AirSim/Content/Weather/WeatherFX) to your scene. +Please note that `Roadwetness`, `RoadSnow` and `RoadLeaf` effects requires adding [materials](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Plugins/AirSim/Content/Weather/WeatherFX) to your scene. -Please see [example code](https://cosysgit.uantwerpen.be/sensorsimulation/AirSim/-/blob/main/PythonClient/environment/weather.py) for more details. +Please see [example code](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/PythonClient/environment/weather.py) for more details. ### Recording APIs @@ -207,7 +207,7 @@ wind = airsim.Vector3r(20, 0, 0) client.simSetWind(wind) ``` -Also see example script in [set_wind.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/multirotor/set_wind.py) +Also see example script in [set_wind.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/multirotor/set_wind.py) ### Lidar APIs AirSim offers API to retrieve point cloud data from (GPU)Lidar sensors on vehicles. You can set the number of channels, points per second, horizontal and vertical FOV, etc parameters in [settings.json](settings.md). @@ -292,9 +292,9 @@ See the [Adding New APIs](adding_new_apis.md) page ## References and Examples * [C++ API Examples](apis_cpp.md) -* [Car Examples](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//car) -* [Multirotor Examples](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//multirotor) -* [Computer Vision Examples](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient//computer_vision) +* [Car Examples](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/car) +* [Multirotor Examples](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/multirotor) +* [Computer Vision Examples](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/computer_vision) * [Move on Path](https://github.com/Microsoft/AirSim/wiki/moveOnPath-demo) demo showing video of fast multirotor flight through Modular Neighborhood environment * [Building a Hexacopter](https://github.com/Microsoft/AirSim/wiki/hexacopter) * [Building Point Clouds](https://github.com/Microsoft/AirSim/wiki/Point-Clouds) diff --git a/docs/apis_cpp.md b/docs/apis_cpp.md index 2a8cb508d..928480de3 100644 --- a/docs/apis_cpp.md +++ b/docs/apis_cpp.md @@ -3,7 +3,7 @@ Please read [general API doc](apis.md) first if you haven't already. This document describes C++ examples and other C++ specific details. ## Quick Start -Fastest way to get started is to open AirSim.sln in Visual Studio 2017. You will see [Hello Car](https://github.com/Microsoft/AirSim/tree/master/HelloCar/) and [Hello Drone](https://github.com/Microsoft/AirSim/tree/master/HelloDrone/) examples in the solution. These examples will show you the include paths and lib paths you will need to setup in your VC++ projects. If you are using Linux then you will specify these paths either in your [cmake file](https://github.com/Microsoft/AirSim/tree/master/cmake//HelloCar/CMakeLists.txt) or on compiler command line. +Fastest way to get started is to open AirSim.sln in Visual Studio 2017. You will see [Hello Car](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/HelloCar/) and [Hello Drone](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/HelloDrone/) examples in the solution. These examples will show you the include paths and lib paths you will need to setup in your VC++ projects. If you are using Linux then you will specify these paths either in your [cmake file](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/cmake//HelloCar/CMakeLists.txt) or on compiler command line. #### Include and Lib Folders * Include folders: `$(ProjectDir)..\AirLib\deps\rpclib\include;include;$(ProjectDir)..\AirLib\deps\eigen3;$(ProjectDir)..\AirLib\include` @@ -16,7 +16,7 @@ Here's how to use AirSim APIs using Python to control simulated car (see also [P ```cpp -// ready to run example: https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/mastermaster/HelloCar/main.cpp +// ready to run example: https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/HelloCar/main.cpp #include #include "vehicles/car/api/CarRpcLibClient.hpp" @@ -54,7 +54,7 @@ Here's how to use AirSim APIs using Python to control simulated car (see also [P ```cpp -// ready to run example: https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/mastermaster/HelloDrone/main.cpp +// ready to run example: https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/HelloDrone/main.cpp #include #include "vehicles/multirotor/api/MultirotorRpcLibClient.hpp" diff --git a/docs/custom_drone.md b/docs/custom_drone.md index f2da7ed52..306d796f4 100644 --- a/docs/custom_drone.md +++ b/docs/custom_drone.md @@ -62,8 +62,8 @@ You can run the MavlinkCom library and MavLinkTest app to test the connection between your companion computer and flight controller. ## How Does This Work? -AirSim uses MavLinkCom component developed by @lovettchris. The MavLinkCom has a proxy architecture where you can open a connection to PX4 either using serial or UDP and then other components share this connection. When PX4 sends MavLink message, all components receive that message. If any component sends a message then it's received by PX4 only. This allows you to connect any number of components to PX4 [This code](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/AirLib/include/vehicles/multirotor/firmwares/mavlink/MavLinkMultirotorApi.hpp#L600) opens a connection for LogViewer and QGC. You can add something more if you like. +AirSim uses MavLinkCom component developed by @lovettchris. The MavLinkCom has a proxy architecture where you can open a connection to PX4 either using serial or UDP and then other components share this connection. When PX4 sends MavLink message, all components receive that message. If any component sends a message then it's received by PX4 only. This allows you to connect any number of components to PX4 [This code](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/AirLib/include/vehicles/multirotor/firmwares/mavlink/MavLinkMultirotorApi.hpp#L600) opens a connection for LogViewer and QGC. You can add something more if you like. If you want to use QGC + AirSim together than you will need QGC to let own the serial port. QGC opens up TCP connection that acts as a proxy so any other component can connect to QGC and send MavLinkMessage to QGC and then QGC forwards that message to PX4. So you tell AirSim to connect to QGC and let QGC own serial port. -For companion board, the way we did it earlier was to have Gigabyte Brix on the drone. This x86 full-fledged computer that will connect to PX4 through USB. We had Ubuntu on Brix and ran [DroneServer](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/DroneServer). The DroneServer created an API endpoint that we can talk to via C++ client code (or Python code) and it translated API calls to MavLink messages. That way you can write your code against the same API, test it in the simulator and then run the same code on an actual vehicle. So the companion computer has DroneServer running along with client code. +For companion board, the way we did it earlier was to have Gigabyte Brix on the drone. This x86 full-fledged computer that will connect to PX4 through USB. We had Ubuntu on Brix and ran [DroneServer](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/DroneServer). The DroneServer created an API endpoint that we can talk to via C++ client code (or Python code) and it translated API calls to MavLink messages. That way you can write your code against the same API, test it in the simulator and then run the same code on an actual vehicle. So the companion computer has DroneServer running along with client code. diff --git a/docs/distance_sensor.md b/docs/distance_sensor.md index 6143d0f91..f83fe449f 100644 --- a/docs/distance_sensor.md +++ b/docs/distance_sensor.md @@ -22,4 +22,4 @@ For example, to make the sensor point towards the ground (for altitude measureme } ``` -**Note:** For Cars, the sensor is placed 1 meter above the vehicle center by default. This is required since otherwise the sensor gives strange data due it being inside the vehicle. This doesn't affect the sensor values say when measuring the distance between 2 cars. See [`PythonClient/car/distance_sensor_multi.py`](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/car/distance_sensor_multi.py) for an example usage. \ No newline at end of file +**Note:** For Cars, the sensor is placed 1 meter above the vehicle center by default. This is required since otherwise the sensor gives strange data due it being inside the vehicle. This doesn't affect the sensor values say when measuring the distance between 2 cars. See [`PythonClient/car/distance_sensor_multi.py`](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/car/distance_sensor_multi.py) for an example usage. \ No newline at end of file diff --git a/docs/echo.md b/docs/echo.md index bfc2a3783..70972a053 100644 --- a/docs/echo.md +++ b/docs/echo.md @@ -55,8 +55,8 @@ DrawSensor | Draw the physical sensor in the world on the vehicl e.g., ``` { - "SeeDocsAt": "settings_json.md", - "SettingsVersion": 1.2, + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 2.0, "SimMode": "SkidVehicle", "Vehicles": { "CPHusky": { @@ -129,8 +129,8 @@ DrawDebugDuration | Duration in seconds that the debug points and lines In the settings file this can look like this example : ``` { - "SeeDocsAt": "settings_json.md", - "SettingsVersion": 1.2, + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 2.0, "SimMode": "SkidVehicle", "ViewMode": "", "Vehicles": { diff --git a/docs/event_sim.md b/docs/event_sim.md index 6db8d0a5a..e87faeb24 100644 --- a/docs/event_sim.md +++ b/docs/event_sim.md @@ -14,14 +14,14 @@ x and y are the pixel locations of the event firing, timestamp is the global tim ![image](images/event_sim.png) #### Usage -An example script to run the event simulator alongside Cosys-AirSim is located at https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/eventcamera_sim/test_event_sim.py. The following optional command-line arguments can be passed to this script. +An example script to run the event simulator alongside Cosys-AirSim is located at https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/eventcamera_sim/test_event_sim.py. The following optional command-line arguments can be passed to this script. ``` args.width, args.height (float): Simulated event camera resolution args.save (bool): Whether or not to save the event data to a file, args.debug (bool): Whether or not to display the simulated events as an image ``` -The implementation of the actual event simulation, written in Python and numba, is at https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/eventcamera_sim/event_simulator.py. The event simulator is initialized as follows, with the arguments controlling the resolution of the camera. +The implementation of the actual event simulation, written in Python and numba, is at https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/eventcamera_sim/event_simulator.py. The event simulator is initialized as follows, with the arguments controlling the resolution of the camera. ``` from event_simulator import * diff --git a/docs/gpulidar.md b/docs/gpulidar.md index 3992a3dde..94a4618e6 100644 --- a/docs/gpulidar.md +++ b/docs/gpulidar.md @@ -51,11 +51,9 @@ MinNoiseStandardDeviation | The standard deviation to generate the noise norm NoiseDistanceScale | To scale the noise with distance, set this parameter. This way the minimal noise is scaled depending on the distance compared to total maximum range of the sensor ``` { - "SeeDocsAt": "https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/docs/settings.md", - "SettingsVersion": 1.2, - + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 2.0, "SimMode": "SkidVehicle", - "Vehicles": { "airsimvehicle": { "VehicleType": "CPHusky", diff --git a/docs/image_apis.md b/docs/image_apis.md index f462259dc..2f9bbb173 100644 --- a/docs/image_apis.md +++ b/docs/image_apis.md @@ -126,9 +126,9 @@ int getStereoAndDepthImages() ### C++ -For a more complete ready to run sample code please see [sample code in HelloDrone project](https://github.com/Microsoft/AirSim/tree/master/HelloDrone//main.cpp) for multirotors or [HelloCar project](https://github.com/Microsoft/AirSim/tree/master/HelloCar//main.cpp). +For a more complete ready to run sample code please see [sample code in HelloDrone project](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/HelloDrone/main.cpp) for multirotors or [HelloCar project](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/HelloCar/main.cpp). -See also [other example code](https://github.com/Microsoft/AirSim/tree/master/Examples/DataCollection/StereoImageGenerator.hpp) that generates specified number of stereo images along with ground truth depth and disparity and saving it to [pfm format](pfm.md). +See also [other example code](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/Examples/DataCollection/StereoImageGenerator.hpp) that generates specified number of stereo images along with ground truth depth and disparity and saving it to [pfm format](pfm.md). ## Available Cameras @@ -153,7 +153,7 @@ To active this mode, edit [settings.json](settings.md) that you can find in your ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "ComputerVision" } ``` @@ -190,7 +190,7 @@ To change resolution, FOV etc, you can use [settings.json](settings.md). For exa ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "CameraDefaults": { "CaptureSettings": [ { @@ -291,7 +291,7 @@ An extension to `simListInstanceSegmentationObjects()` is `simListInstanceSegmen Once you decide on the meshes you are interested, note down their names and use above API to set their object IDs. T #### Changing Colors for Object IDs -At present the color for each object ID is fixed as in [this pallet](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Plugins/AirSim/Content/HUDAssets/seg_color_palette.png). We will be adding ability to change colors for object IDs to desired values shortly. In the meantime you can open the segmentation image in your favorite image editor and get the RGB values you are interested in. +At present the color for each object ID is fixed as in [this pallet](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Plugins/AirSim/Content/HUDAssets/seg_color_palette.png). We will be adding ability to change colors for object IDs to desired values shortly. In the meantime you can open the segmentation image in your favorite image editor and get the RGB values you are interested in. #### Startup Object IDs At the start, AirSim assigns color indexes to each object found in environment of type `UStaticMeshComponent` or `USkinnedMeshComponent`. It then makes an understandable naming depending on the hierarchy the object belong to in the Unreal World (example _box_2_fullpalletspawner_5_pallet_4_ or _door_window_door_38_ ). diff --git a/docs/install_linux.md b/docs/install_linux.md index efd9c7dfc..76f160a07 100644 --- a/docs/install_linux.md +++ b/docs/install_linux.md @@ -23,7 +23,7 @@ You can alternatively install Unreal Engine from source if you do not use a Ubun - Clone AirSim and build it: ```bash # go to the folder where you clone GitHub projects - git clone https://cosysgit.uantwerpen.be/sensorsimulation/airsim.git + git clone https://github.com/Cosys-Lab/Cosys-AirSim.git cd AirSim ./setup.sh ./build.sh diff --git a/docs/install_windows.md b/docs/install_windows.md index 3697a1d74..78e4c4fb1 100644 --- a/docs/install_windows.md +++ b/docs/install_windows.md @@ -10,7 +10,7 @@ Click on the `Install` button on the top right, which should show the option to ## Build AirSim * Install Visual Studio 2022. Make sure to select Desktop Development with C++ and Windows 10/11 SDK **10.0.X (choose latest)** and select the latest .NET Framework SDK under the 'Individual Components' tab while installing VS 2022. More info [here](https://dev.epicgames.com/documentation/en-us/unreal-engine/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine?application_version=5.3). * Start `Developer Command Prompt for VS 2022`. -* Clone the repo: `git clone https://cosysgit.uantwerpen.be/sensorsimulation/airsim.git`, and go the AirSim directory by `cd AirSim`. +* Clone the repo: `git clone https://github.com/Cosys-Lab/Cosys-AirSim.git`, and go the AirSim directory by `cd AirSim`. * Run `build.cmd` from the command line. This will create ready to use plugin bits in the `Unreal\Plugins` folder that can be dropped into any Unreal project. ## Build Unreal Project diff --git a/docs/lidar.md b/docs/lidar.md index f7ff0945f..564d22735 100644 --- a/docs/lidar.md +++ b/docs/lidar.md @@ -45,8 +45,8 @@ External | Uncouple the sensor from the vehicle. If enabled, th ExternalLocal | When in external mode, if this is enabled the retrieved pose of the sensor will be in Local NED coordinates(from starting position from vehicle) and not converted Unreal NED coordinates which is default ``` { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/mastermaster/docs/settings_json.md", - "SettingsVersion": 1.2, + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 2.0, "SimMode": "Multirotor", diff --git a/docs/log_viewer.md b/docs/log_viewer.md index 2934413f7..48cabc9de 100644 --- a/docs/log_viewer.md +++ b/docs/log_viewer.md @@ -27,7 +27,7 @@ You can also get a realtime view if you connect the LogViewer `before` you run t For this to work you need to configure the `settings.json` with the following settings: ``` { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "Vehicles": { "PX4": { diff --git a/docs/modify_recording_data.md b/docs/modify_recording_data.md index c12ff5311..ed0468897 100644 --- a/docs/modify_recording_data.md +++ b/docs/modify_recording_data.md @@ -24,7 +24,7 @@ Note that this requires building and using Cosys-AirSim from source. You can com The primary method which fills the data to be stored is [`PawnSimApi::getRecordFileLine`](https://github.com/microsoft/AirSim/blob/880c5541fd4824ee2cd9bb82ca5f611eb1ab236a/Unreal/Plugins/AirSim/Source/PawnSimApi.cpp#L544), it's the base method for all the vehicles, and Car overrides it to log additional data, as can be seen in [`CarPawnSimApi::getRecordFileLine`](https://github.com/microsoft/AirSim/blob/880c5541fd4824ee2cd9bb82ca5f611eb1ab236a/Unreal/Plugins/AirSim/Source/Vehicles/Car/CarPawnSimApi.cpp#L34). -To record additional data for multirotor, you can add a similar method in [MultirotorPawnSimApi.cpp/h](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Plugins/AirSim/Source/Vehicles/Multirotor) files which overrides the base class implementation and append other data. The currently logged data can also be modified and removed as needed. +To record additional data for multirotor, you can add a similar method in [MultirotorPawnSimApi.cpp/h](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Plugins/AirSim/Source/Vehicles/Multirotor) files which overrides the base class implementation and append other data. The currently logged data can also be modified and removed as needed. E.g. recording GPS, IMU and Barometer data also for multirotor - diff --git a/docs/multi_vehicle.md b/docs/multi_vehicle.md index a4adc9a55..bf466b61f 100644 --- a/docs/multi_vehicle.md +++ b/docs/multi_vehicle.md @@ -10,7 +10,7 @@ It's as easy as specifying them in [settings.json](settings.md). The `Vehicles` ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Car", "Vehicles": { @@ -31,7 +31,7 @@ It's as easy as specifying them in [settings.json](settings.md). The `Vehicles` ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "Vehicles": { @@ -53,9 +53,9 @@ It's as easy as specifying them in [settings.json](settings.md). The `Vehicles` The new APIs since AirSim 1.2 allows you to specify `vehicle_name`. This name corresponds to keys in json settings (for example, Car1 or Drone2 above). -[Example code for cars](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/car/multi_agent_car.py) +[Example code for cars](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/car/multi_agent_car.py) -[Example code for multirotors](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/multirotor/multi_agent_drone.py) +[Example code for multirotors](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/multirotor/multi_agent_drone.py) Using APIs for multi-vehicles requires specifying the `vehicle_name`, which needs to be hardcoded in the script or requires parsing of the settings file. There's also a simple API `listVehicles()` which returns a list (vector in C++) of strings containing names of the current vehicles. For example, with the above settings for 2 Cars - @@ -84,10 +84,10 @@ Returns: `bool` Whether vehicle was created The usual APIs can be used to control and interact with the vehicle once created, with the `vehicle_name` parameter. Specifying other settings such as additional cameras, etc. isn't possible currently, a future enhancement could be passing JSON string of settings for the vehicle. It also works with the `listVehicles()` API described above, so the vehicles spawned would be included in the list. -For some examples, check out [HelloSpawnedDrones.cpp](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/HelloSpawnedDrones/HelloSpawnedDrones.cpp) - +For some examples, check out [HelloSpawnedDrones.cpp](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/HelloSpawnedDrones/HelloSpawnedDrones.cpp) - ![HelloSpawnedDrones](images/HelloSpawnedDrones.gif) -And [runtime_car.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/car/runtime_car.py) - +And [runtime_car.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/car/runtime_car.py) - ![runtime_car](images/simAddVehicle_Car.gif) diff --git a/docs/object_detection.md b/docs/object_detection.md index 5c8bb2599..f681eb48c 100644 --- a/docs/object_detection.md +++ b/docs/object_detection.md @@ -31,7 +31,7 @@ DetectionInfo relative_pose = Pose() ``` ## Usage example -Python script [detection.py](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PythonClient/detection/detection.py) shows how to set detection parameters and shows the result in OpenCV capture. +Python script [detection.py](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PythonClient/detection/detection.py) shows how to set detection parameters and shows the result in OpenCV capture. A minimal example using API with Blocks environment to detect Cylinder objects: ```python diff --git a/docs/pfm.md b/docs/pfm.md index cf3100622..ee02ef9f7 100644 --- a/docs/pfm.md +++ b/docs/pfm.md @@ -4,4 +4,4 @@ Pfm (or Portable FloatMap) image format stores image as floating point pixels an One of the good viewer to view this file format is [PfmPad](https://sourceforge.net/projects/pfmpad/). We don't recommend Maverick photo viewer because it doesn't seem to show depth images properly. -AirSim has code to write pfm file for [C++](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/AirLib/include/common/common_utils/Utils.hpp#L637) and read as well as write for [Python](https://github.com/Microsoft/AirSim/tree/master/PythonClient//airsim/utils.py#L122). +AirSim has code to write pfm file for [C++](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/AirLib/include/common/common_utils/Utils.hpp#L637) and read as well as write for [Python](https://github.com/Cosys-Lab/Cosys-AirSim/tree/main/PythonClient/airsim/utils.py#L122). diff --git a/docs/px4_lockstep.md b/docs/px4_lockstep.md index 04ebc06bc..685665ef3 100644 --- a/docs/px4_lockstep.md +++ b/docs/px4_lockstep.md @@ -11,7 +11,7 @@ tell AirSim to use a `SteppableClock`, and set `UseTcp` to `true` and `LockStep` ``` { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "ClockType": "SteppableClock", "Vehicles": { diff --git a/docs/px4_logging.md b/docs/px4_logging.md index 68a81e7c3..1e0de3a20 100644 --- a/docs/px4_logging.md +++ b/docs/px4_logging.md @@ -8,7 +8,7 @@ AirSim can capture mavlink log files if you add the following to the PX4 section ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "Vehicles": { "PX4": { diff --git a/docs/px4_multi_vehicle.md b/docs/px4_multi_vehicle.md index da8954c52..797e0ac4e 100644 --- a/docs/px4_multi_vehicle.md +++ b/docs/px4_multi_vehicle.md @@ -25,7 +25,7 @@ However, the provided script does not let us view the PX4 console. If you want t For example, these settings would spawn two PX4Multirotors where one of them would try to connect to PX4 SITL at port `4560` and the other at port `4561`. It also makes sure the vehicles spawn at `0,1,0` and `0,-1,0` to avoid collision: ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "Vehicles": { "Drone1": { @@ -70,7 +70,7 @@ API does not require RC, see [`No Remote Control`](px4_sitl.md#No-Remote-Control ## Starting SITL instances with PX4 console -If you want to start your SITL instances while being able to view the PX4 console, you will need to run the shell scripts found [here](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/PX4Scripts) rather than `sitl_multiple_run.sh`. +If you want to start your SITL instances while being able to view the PX4 console, you will need to run the shell scripts found [here](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/PX4Scripts) rather than `sitl_multiple_run.sh`. Here is how you would do so: **Note** This script also assumes PX4 is built with `make px4_sitl_default none_iris` as shown [here](px4_sitl.md#setting-up-px4-software-in-loop) before trying to run multiple PX4 instances. @@ -80,8 +80,8 @@ Here is how you would do so: cd PX4 mkdir -p Scripts cd Scripts - wget https://github.com/microsoft/AirSim/raw/main/PX4Scripts/sitl_kill.sh - wget https://github.com/microsoft/AirSim/raw/main/PX4Scripts/run_airsim_sitl.sh + wget https://github.com/Cosys-Lab/Cosys-AirSim/raw/main/PX4Scripts/sitl_kill.sh + wget https://github.com/Cosys-Lab/Cosys-AirSim/raw/main/PX4Scripts/run_airsim_sitl.sh ``` **Note** the shell scripts expect the `Scripts` and `Firmware` directories to be within the same parent directory. Also, you may need to make the scripts executable by running `chmod +x sitl_kill.sh` and `chmod +x run_airsim_sitl.sh`. 2. Run the `sitl_kill.sh` script to kill all active PX4 SITL instances diff --git a/docs/px4_setup.md b/docs/px4_setup.md index 7826accbe..26234d2cf 100644 --- a/docs/px4_setup.md +++ b/docs/px4_setup.md @@ -32,7 +32,7 @@ See also [initial firmware setup video](https://docs.px4.io/master/en/config/). 8. In [AirSim settings](settings.md) file, specify PX4 for your vehicle config like this: ``` { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "ClockType": "SteppableClock", "Vehicles": { diff --git a/docs/px4_sitl.md b/docs/px4_sitl.md index 2c9fc7a17..5af7ccd77 100644 --- a/docs/px4_sitl.md +++ b/docs/px4_sitl.md @@ -54,7 +54,7 @@ The default ports have changed recently, so check them closely to make sure Cosy 5. Now edit [Cosys-AirSim settings](settings.md) file to make sure you have matching UDP and TCP port settings: ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "ClockType": "SteppableClock", "Vehicles": { diff --git a/docs/px4_sitl_wsl2.md b/docs/px4_sitl_wsl2.md index ad0f909ee..793b3c5eb 100644 --- a/docs/px4_sitl_wsl2.md +++ b/docs/px4_sitl_wsl2.md @@ -46,7 +46,7 @@ This resolves to the WSL 2 remote ip address found in the TCP socket. ```json { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "ClockType": "SteppableClock", "Vehicles": { diff --git a/docs/remote_control.md b/docs/remote_control.md index 2cece9333..04fb271d1 100644 --- a/docs/remote_control.md +++ b/docs/remote_control.md @@ -10,14 +10,14 @@ You can either use XBox controller or [FrSky Taranis X9D Plus](https://hobbyking ### Other Devices -AirSim can detect large variety of devices however devices other than above *might* need extra configuration. In future we will add ability to set this config through settings.json. For now, if things are not working then you might want to try workarounds such as [x360ce](http://www.x360ce.com/) or change code in [SimJoystick.cpp file](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Plugins/AirSim/Source/SimJoyStick/SimJoyStick.cpp#L50). +AirSim can detect large variety of devices however devices other than above *might* need extra configuration. In future we will add ability to set this config through settings.json. For now, if things are not working then you might want to try workarounds such as [x360ce](http://www.x360ce.com/) or change code in [SimJoystick.cpp file](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Plugins/AirSim/Source/SimJoyStick/SimJoyStick.cpp#L50). ### Note on FrSky Taranis X9D Plus [FrSky Taranis X9D Plus](https://hobbyking.com/en_us/frsky-2-4ghz-accst-taranis-x9d-plus-and-x8r-combo-digital-telemetry-radio-system-mode-2.html) is real UAV remote control with an advantage that it has USB port so it can be directly connected to PC. You can [download AirSim config file](misc/AirSim_FrSkyTaranis.bin) and [follow this tutorial](https://www.youtube.com/watch?v=qe-13Gyb0sw) to import it in your RC. You should then see "sim" model in RC with all channels configured properly. ### Note on Linux -Currently default config on Linux is for using Xbox controller. This means other devices might not work properly. In future we will add ability to configure RC in settings.json but for now you *might* have to change code in [SimJoystick.cpp file](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Plugins/AirSim/Source/SimJoyStick/SimJoyStick.cpp#L340) to use other devices. +Currently default config on Linux is for using Xbox controller. This means other devices might not work properly. In future we will add ability to configure RC in settings.json but for now you *might* have to change code in [SimJoystick.cpp file](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Plugins/AirSim/Source/SimJoyStick/SimJoyStick.cpp#L340) to use other devices. ## RC Setup for PX4 @@ -49,7 +49,7 @@ Nils Tijtgat wrote an excellent blog on how to get the [DJI controller working w This typically happens if you have multiple RCs and or XBox/Playstation gamepads etc connected. In Windows, hit Windows+S key and search for "Set up USB Game controllers" (in older versions of Windows try "joystick"). This will show you all game controllers connected to your PC. If you don't see yours than Windows haven't detected it and so you need to first solve that issue. If you do see yours but not at the top of the list (i.e. index 0) than you need to tell AirSim because AirSim by default tries to use RC at index 0. To do this, navigate to your `~/Documents/AirSim` folder, open up `settings.json` and add/modify following setting. Below tells AirSim to use RC at index = 2. ``` { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Multirotor", "Vehicles": { "SimpleFlight": { diff --git a/docs/ros_cplusplus.md b/docs/ros_cplusplus.md index baee5aaf6..6561a9d17 100644 --- a/docs/ros_cplusplus.md +++ b/docs/ros_cplusplus.md @@ -45,13 +45,13 @@ Let's look at the ROS API for both nodes: #### Publishers: The publishers will be automatically created based on the settings in the `settings.json` file for all vehicles and the sensors. -- `/airsim_node/VEHICLE-NAME/car_state` [airsim_interfaces::CarState](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/CarState.msg) +- `/airsim_node/VEHICLE-NAME/car_state` [airsim_interfaces::CarState](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/CarState.msg) The state of the car if the vehicle is of this sim-mode type. -- `/airsim_node/VEHICLE-NAME/computervision_state` [airsim_interfaces::ComputerVisionState](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/ComputerVisionState.msg) +- `/airsim_node/VEHICLE-NAME/computervision_state` [airsim_interfaces::ComputerVisionState](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/ComputerVisionState.msg) The state of the computer vision actor if the vehicle is of this sim-mode type. -- `/airsim_node/origin_geo_point` [airsim_interfaces::GPSYaw](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/GPSYaw.msg) +- `/airsim_node/origin_geo_point` [airsim_interfaces::GPSYaw](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/GPSYaw.msg) GPS coordinates corresponding to global frame. This is set in the airsim's [settings.json](https://cosys-lab.github.io/settings/) file under the `OriginGeopoint` key. - `/airsim_node/VEHICLE-NAME/global_gps` [sensor_msgs::NavSatFix](https://docs.ros.org/api/sensor_msgs/html/msg/NavSatFix.html) @@ -70,7 +70,7 @@ The publishers will be automatically created based on the settings in the `setti - `/tf` [tf2_msgs::TFMessage](https://docs.ros.org/api/tf2_msgs/html/msg/TFMessage.html) -- `/airsim_node/VEHICLE-NAME/altimeter/SENSOR_NAME` [airsim_interfaces::Altimeter](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/Altimeter.msg) +- `/airsim_node/VEHICLE-NAME/altimeter/SENSOR_NAME` [airsim_interfaces::Altimeter](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/Altimeter.msg) This the current altimeter reading for altitude, pressure, and [QNH](https://en.wikipedia.org/wiki/QNH) - `/airsim_node/VEHICLE-NAME/imu/SENSOR_NAME` [sensor_msgs::Imu](http://docs.ros.org/api/sensor_msgs/html/msg/Imu.html) @@ -85,7 +85,7 @@ The publishers will be automatically created based on the settings in the `setti - `/airsim_node/VEHICLE-NAME/lidar/points/SENSOR_NAME/` [sensor_msgs::PointCloud2](http://docs.ros.org/api/sensor_msgs/html/msg/PointCloud2.html) LIDAR pointcloud -- `/airsim_node/VEHICLE-NAME/lidar/labels/SENSOR_NAME/` [airsim_interfaces::StringArray](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/StringArray.msg) +- `/airsim_node/VEHICLE-NAME/lidar/labels/SENSOR_NAME/` [airsim_interfaces::StringArray](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/StringArray.msg) Custom message type with an array of string that are the labels for each point in the pointcloud of the lidar sensor - `/airsim_node/VEHICLE-NAME/gpulidar/points/SENSOR_NAME/` [sensor_msgs::PointCloud2](http://docs.ros.org/api/sensor_msgs/html/msg/PointCloud2.html) @@ -97,69 +97,69 @@ The publishers will be automatically created based on the settings in the `setti - `/airsim_node/VEHICLE-NAME/echo/passive/points/SENSOR_NAME/` [sensor_msgs::PointCloud2](http://docs.ros.org/api/sensor_msgs/html/msg/PointCloud2.html) Echo sensor pointcloud for passive sensing -- `/airsim_node/VEHICLE-NAME/echo/active/labels/SENSOR_NAME/` [airsim_interfaces::StringArray](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/StringArray.msg) +- `/airsim_node/VEHICLE-NAME/echo/active/labels/SENSOR_NAME/` [airsim_interfaces::StringArray](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/StringArray.msg) Custom message type with an array of string that are the labels for each point in the pointcloud for the active echo pointcloud -- `/airsim_node/VEHICLE-NAME/echo/passive/labels/SENSOR_NAME/` [airsim_interfaces::StringArray](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/StringArray.msg) +- `/airsim_node/VEHICLE-NAME/echo/passive/labels/SENSOR_NAME/` [airsim_interfaces::StringArray](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/StringArray.msg) Custom message type with an array of string that are the labels for each point in the pointcloud for the passive echo pointcloud -- `/airsim_node/instance_segmentation_labels` [airsim_interfaces::InstanceSegmentationList](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/InstanceSegmentationList.msg) +- `/airsim_node/instance_segmentation_labels` [airsim_interfaces::InstanceSegmentationList](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/InstanceSegmentationList.msg) Custom message type with an array of a custom messages that are the names, color and index of the instance segmentation system for each object in the world. -- `/airsim_node/object_transforms` [airsim_interfaces::ObjectTransformsList](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/ObjectTransformsList.msg) +- `/airsim_node/object_transforms` [airsim_interfaces::ObjectTransformsList](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/ObjectTransformsList.msg) Custom message type with an array of [geometry_msgs::TransformStamped](http://docs.ros.org/api/geometry_msgs/html/msg/TransformStamped.html) that are the transforms of all objects in the world, each child frame ID is the object name. #### Subscribers: -- `/airsim_node/VEHICLE-NAME/vel_cmd_body_frame` [airsim_interfaces::VelCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmd.msg) +- `/airsim_node/VEHICLE-NAME/vel_cmd_body_frame` [airsim_interfaces::VelCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmd.msg) -- `/airsim_node/VEHICLE-NAME/vel_cmd_world_frame` [airsim_interfaces::VelCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmd.msg) +- `/airsim_node/VEHICLE-NAME/vel_cmd_world_frame` [airsim_interfaces::VelCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmd.msg) -- `/airsim_node/all_robots/vel_cmd_body_frame` [airsim_interfaces::VelCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmd.msg) +- `/airsim_node/all_robots/vel_cmd_body_frame` [airsim_interfaces::VelCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmd.msg) Set velocity command for all drones. -- `/airsim_node/all_robots/vel_cmd_world_frame` [airsim_interfaces::VelCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmd.msg) +- `/airsim_node/all_robots/vel_cmd_world_frame` [airsim_interfaces::VelCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmd.msg) -- `/airsim_node/group_of_robots/vel_cmd_body_frame` [airsim_interfaces::VelCmdGroup](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmdGroup.msg) +- `/airsim_node/group_of_robots/vel_cmd_body_frame` [airsim_interfaces::VelCmdGroup](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmdGroup.msg) Set velocity command for a specific set of drones. - -- `/airsim_node/group_of_robots/vel_cmd_world_frame` [airsim_interfaces::VelCmdGroup](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmdGroup.msg) +- `/airsim_node/group_of_robots/vel_cmd_world_frame` [airsim_interfaces::VelCmdGroup](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmdGroup.msg) Set velocity command for a specific set of drones. -- `/gimbal_angle_euler_cmd` [airsim_interfaces::GimbalAngleEulerCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/GimbalAngleEulerCmd.msg) +- `/gimbal_angle_euler_cmd` [airsim_interfaces::GimbalAngleEulerCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/GimbalAngleEulerCmd.msg) Gimbal set point in euler angles. -- `/gimbal_angle_quat_cmd` [airsim_interfaces::GimbalAngleQuatCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/GimbalAngleQuatCmd.msg) +- `/gimbal_angle_quat_cmd` [airsim_interfaces::GimbalAngleQuatCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/GimbalAngleQuatCmd.msg) Gimbal set point in quaternion. -- `/airsim_node/VEHICLE-NAME/car_cmd` [airsim_interfaces::CarControls](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/CarControls.msg) -Throttle, brake, steering and gear selections for control. Both automatic and manual transmission control possible, see the [`car_joy.py`](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros/src/airsim_ros_pkgs/scripts/car_joy) script for use. +- `/airsim_node/VEHICLE-NAME/car_cmd` [airsim_interfaces::CarControls](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/CarControls.msg) +Throttle, brake, steering and gear selections for control. Both automatic and manual transmission control possible, see the [`car_joy.py`](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros/src/airsim_ros_pkgs/scripts/car_joy) script for use. #### Services: -- `/airsim_node/VEHICLE-NAME/land` [airsim_interfaces::Land](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/Land.html) +- `/airsim_node/VEHICLE-NAME/land` [airsim_interfaces::Land](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/Land.html) -- `/airsim_node/VEHICLE-NAME/takeoff` [airsim_interfaces::Takeoff](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/Takeoff.html) +- `/airsim_node/VEHICLE-NAME/takeoff` [airsim_interfaces::Takeoff](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/Takeoff.html) -- `/airsim_node/all_robots/land` [airsim_interfaces::Land](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/Land.html) +- `/airsim_node/all_robots/land` [airsim_interfaces::Land](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/Land.html) land all drones -- `/airsim_node/all_robots/takeoff` [airsim_interfaces::Takeoff](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/Takeoff.html) +- `/airsim_node/all_robots/takeoff` [airsim_interfaces::Takeoff](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/Takeoff.html) take-off all drones -- `/airsim_node/group_of_robots/land` [airsim_interfaces::LandGroup](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/LandGroup.html) +- `/airsim_node/group_of_robots/land` [airsim_interfaces::LandGroup](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/LandGroup.html) land a specific set of drones -- `/airsim_node/group_of_robots/takeoff` [airsim_interfaces::TakeoffGroup](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/TakeoffGroup.html) +- `/airsim_node/group_of_robots/takeoff` [airsim_interfaces::TakeoffGroup](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/TakeoffGroup.html) take-off a specific set of drones -- `/airsim_node/reset` [airsim_interfaces::Reset](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/Reset.html) +- `/airsim_node/reset` [airsim_interfaces::Reset](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/Reset.html) Resets *all* vehicles -- `/airsim_node/instance_segmentation_refresh` [airsim_interfaces::RefreshInstanceSegmentation](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/RefreshInstanceSegmentation.html) +- `/airsim_node/instance_segmentation_refresh` [airsim_interfaces::RefreshInstanceSegmentation](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/RefreshInstanceSegmentation.html) Refresh the instance segmentation list -- `/airsim_node/object_transforms_refresh` [airsim_interfaces::RefreshObjectTransforms](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/srv/RefreshObjectTransforms.html) +- `/airsim_node/object_transforms_refresh` [airsim_interfaces::RefreshObjectTransforms](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/srv/RefreshObjectTransforms.html) Refresh the object transforms list @@ -270,16 +270,16 @@ Throttle, brake, steering and gear selections for control. Both automatic and ma #### Services: -- `/airsim_node/VEHICLE-NAME/gps_goal` [Request: [airsim_interfaces::SetGPSPosition](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros/src/airsim_ros_pkgs/srv/SetGPSPosition.srv)] +- `/airsim_node/VEHICLE-NAME/gps_goal` [Request: [airsim_interfaces::SetGPSPosition](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros/src/airsim_ros_pkgs/srv/SetGPSPosition.srv)] Target gps position + yaw. In **absolute** altitude. -- `/airsim_node/VEHICLE-NAME/local_position_goal` [Request: [airsim_interfaces::SetLocalPosition](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros/src/airsim_ros_pkgs/srv/SetLocalPosition.srv)] +- `/airsim_node/VEHICLE-NAME/local_position_goal` [Request: [airsim_interfaces::SetLocalPosition](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros/src/airsim_ros_pkgs/srv/SetLocalPosition.srv)] Target local position + yaw in global frame. #### Subscribers: -- `/airsim_node/origin_geo_point` [airsim_interfaces::GPSYaw](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/GPSYaw.msg) +- `/airsim_node/origin_geo_point` [airsim_interfaces::GPSYaw](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/GPSYaw.msg) Listens to home geo coordinates published by `airsim_node`. - `/airsim_node/VEHICLE-NAME/odom_local` [nav_msgs::Odometry](https://docs.ros.org/api/nav_msgs/html/msg/Odometry.html) @@ -287,10 +287,10 @@ Throttle, brake, steering and gear selections for control. Both automatic and ma #### Publishers: -- `/vel_cmd_world_frame` [airsim_interfaces::VelCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmd.msg) +- `/vel_cmd_world_frame` [airsim_interfaces::VelCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmd.msg) Sends velocity command to `airsim_node` -- `/vel_cmd_body_frame` [airsim_interfaces::VelCmd](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/ros2/src/airsim_interfaces/msg/VelCmd.msg) +- `/vel_cmd_body_frame` [airsim_interfaces::VelCmd](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/ros2/src/airsim_interfaces/msg/VelCmd.msg) Sends velocity command to `airsim_node` #### Global params diff --git a/docs/sensors.md b/docs/sensors.md index ac834d295..92bdb4203 100644 --- a/docs/sensors.md +++ b/docs/sensors.md @@ -33,7 +33,7 @@ If no sensors are specified in the `settings.json`, then the following sensors a ### ComputerVision * None -Behind the scenes, 'createDefaultSensorSettings' method in [AirSimSettings.hpp](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/AirLib/include/common/AirSimSettings.hpp) which sets up the above sensors with their default parameters, depending on the sim mode specified in the `settings.json` file. +Behind the scenes, 'createDefaultSensorSettings' method in [AirSimSettings.hpp](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/AirLib/include/common/AirSimSettings.hpp) which sets up the above sensors with their default parameters, depending on the sim mode specified in the `settings.json` file. ## Configuring the default sensor list diff --git a/docs/settings.md b/docs/settings.md index 4eaf75ed5..66425f3fe 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -33,7 +33,7 @@ The default is to use multirotor. To use car simple set `"SimMode": "Car"` like ``` { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Car" } ``` @@ -335,7 +335,7 @@ For explanation of other settings, please see [this article](https://docs.unreal ### NoiseSettings -The `NoiseSettings` allows to add noise to the specified image type with a goal of simulating camera sensor noise, interference and other artifacts. By default no noise is added, i.e., `Enabled: false`. If you set `Enabled: true` then following different types of noise and interference artifacts are enabled, each can be further tuned using setting. The noise effects are implemented as shader created as post processing material in Unreal Engine called [CameraSensorNoise](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Plugins/AirSim/Content/HUDAssets/CameraSensorNoise.uasset). +The `NoiseSettings` allows to add noise to the specified image type with a goal of simulating camera sensor noise, interference and other artifacts. By default no noise is added, i.e., `Enabled: false`. If you set `Enabled: true` then following different types of noise and interference artifacts are enabled, each can be further tuned using setting. The noise effects are implemented as shader created as post processing material in Unreal Engine called [CameraSensorNoise](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Plugins/AirSim/Content/HUDAssets/CameraSensorNoise.uasset). Demo of camera noise and interference simulation: diff --git a/docs/settings_example.json b/docs/settings_example.json index e10eb78cc..bae3769f5 100644 --- a/docs/settings_example.json +++ b/docs/settings_example.json @@ -1,6 +1,6 @@ { - "SeeDocsAt": "https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/docs/settings.md", - "SettingsVersion": 2, + "SeeDocsAt": "https://cosys-lab.github.io/settings/", + "SettingsVersion": 2.0, "ClockSpeed": 1, "LocalHostIp": "127.0.0.1", "ApiServerPort": 41451, diff --git a/docs/unreal_blocks.md b/docs/unreal_blocks.md index b8f5608cb..2c21a7ee1 100644 --- a/docs/unreal_blocks.md +++ b/docs/unreal_blocks.md @@ -11,7 +11,7 @@ Here are quick steps to get Blocks environment up and running: 2. Navigate to folder `AirSim\Unreal\Environments\Blocks` and run `update_from_git.bat`. 3. Double click on generated .sln file to open in Visual Studio. 4. Make sure `Blocks` project is the startup project, build configuration is set to `DebugGame_Editor` and `Win64`. Hit F5 to run. -5. Press the Play button in Unreal Editor and you will see something like in below video. Also see [how to use AirSim](https://github.com/Microsoft/AirSim/#how-to-use-it). +5. Press the Play button in Unreal Editor and you will see something like in below video. Also see the other documentation for how to use it. ### Changing Code and Rebuilding For Windows, you can just change the code in Visual Studio, press F5 and re-run. There are few batch files available in folder `AirSim\Unreal\Environments\Blocks` that lets you sync code, clean etc. @@ -23,7 +23,7 @@ For Windows, you can just change the code in Visual Studio, press F5 and re-run. 4. On first start you might not see any projects in UE4 editor. Click on Projects tab, Browse button and then navigate to `AirSim/Unreal/Environments/Blocks/Blocks.uproject`. 5. If you get prompted for incompatible version and conversion, select In-place conversion which is usually under "More" options. If you get prompted for missing modules, make sure to select No so you don't exit. 6. Finally, when prompted with building AirSim, select Yes. Now it might take a while so go get some coffee :). -7. Press the Play button in Unreal Editor and you will see something like in below video. Also see [how to use AirSim](https://github.com/microsoft/AirSim/#how-to-use-it). +7. Press the Play button in Unreal Editor and you will see something like in below video. Also see the other documentation for how to use it. [![Blocks Demo Video](images/blocks_video.png)](https://www.youtube.com/watch?v=-r_QGaxMT4A) diff --git a/docs/unreal_custenv.md b/docs/unreal_custenv.md index 7f6f1bdc3..455c5d24e 100644 --- a/docs/unreal_custenv.md +++ b/docs/unreal_custenv.md @@ -98,7 +98,7 @@ There is no `Epic Games Launcher` for Linux which means that if you need to crea 1. Go to 'Edit->Editor Preferences' in Unreal Editor, in the 'Search' box type 'CPU' and ensure that the 'Use Less CPU when in Background' is unchecked. If you don't do this then UE will be slowed down dramatically when UE window loses focus. -1. Be sure to `Save` these edits. Hit the Play button in the Unreal Editor. See [how to use AirSim](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/#how-to-use-it). +1. Be sure to `Save` these edits. Hit the Play button in the Unreal Editor. See the other documentation pages for how to use it. Congratulations! You are now running AirSim in your own Unreal environment. @@ -108,7 +108,7 @@ By default AirSim prompts user for which vehicle to use. You can easily change t ## Updating Your Environment to Latest Version of AirSim Once you have your environment using above instructions, you should frequently update your local AirSim code to latest version from GitHub. Below are the instructions to do this: -1. First put [clean.bat](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Environments/Blocks/clean.bat) (or [clean.sh](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/tree/master/Unreal/Environments/Blocks/clean.sh) for Linux users) in the root folder of your environment. Run this file to clean up all intermediate files in your Unreal project. +1. First put [clean.bat](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Environments/Blocks/clean.bat) (or [clean.sh](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/Unreal/Environments/Blocks/clean.sh) for Linux users) in the root folder of your environment. Run this file to clean up all intermediate files in your Unreal project. 2. Do `git pull` in your AirSim repo followed by `build.cmd` (or `./build.sh` for Linux users). 3. Replace [your project]/Plugins folder with AirSim/Unreal/Plugins folder. 4. Right click on your .uproject file and chose "Generate Visual Studio project files" option. This is not required for Linux. diff --git a/docs/using_car.md b/docs/using_car.md index 7fa6a79bb..fbd610669 100644 --- a/docs/using_car.md +++ b/docs/using_car.md @@ -4,7 +4,7 @@ By default Cosys-AirSim prompts user for which vehicle to use. You can easily ch ``` { - "SettingsVersion": 1.2, + "SettingsVersion": 2.0, "SimMode": "Car" } ``` diff --git a/ros2/src/airsim_ros_pkgs/README.md b/ros2/src/airsim_ros_pkgs/README.md index 8f28f0071..8fa1a623c 100755 --- a/ros2/src/airsim_ros_pkgs/README.md +++ b/ros2/src/airsim_ros_pkgs/README.md @@ -1,3 +1,3 @@ # airsim_ros_pkgs -This page has moved [here](https://cosysgit.uantwerpen.be/sensorsimulation/airsim/-/blob/master/docs/ros_cplusplus.md). \ No newline at end of file +This page has moved [here](https://github.com/Cosys-Lab/Cosys-AirSim/blob/main/docs/ros_cplusplus.md). \ No newline at end of file