SailSim is an on-water simulation which simulated a boat of sailing physics, sensors etc. SailSim is built by Unity URP, water system is from unity sample project. https://github.com/Unity-Technologies/BoatAttack
Web sample, https://sailsim.web.app/
Try your keyboard WSAD ** First load is slow, about 1 minute depending on you network status.
- Simulate boat on the water including: Steering wheel, throttle, GeoLocation, Camera, On water physics.
- Data synchronized to cloud, remotely control by Firebase. Will add a remote control repo.
- Webrtc stream simulated camera.
- Lidar, there is no URP lidar simulator, will try HDRP with better water system.
- Perception, including 3D reconstructin, object detection.
- More models, including wind tower, animals, boats etc.
- Multiple cameras.
- Add adjustable parameters like speed, mass, initial location.
- Create a Firebase project and enable Auth and Realtime database.
- Install unity 2022 or later, https://unity.com/download
- git clone https://github.com/Marinethinking/sailsim.git You probably need to install https://git-lfs.com/
- From Assets/Nami/ open NamiScene
- Download google-service.json from your firebase project, and copy to the Assets folder.
- Download firebase unity package and import to your unity project, only auth and database is enough.
- In Firebase Auth, create an email account. [email protected]/123456 user name and password are hardcoded in code for now, you can change it in NamiCloud.cs
- Run in editor. Default vehicle id is simboat, you can change it by input and enter.
Under construction...
Depends on UnitySensorshttps://github.com/Field-Robotics-Japan/UnitySensors/tree/master
- Setup ROS connector: https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/main/tutorials/ros_unity_integration/setup.md
- Install UnitySensorsROS, just follow the README on https://github.com/Field-Robotics-Japan/UnitySensors
- In your Unity Editor Hierarchy, Open NamiScene/Acadia/VLP-16/VelodyneSensor, change it to ROS sensor.
Lets say you are on ros2 humble, (or change to your version name)
- In unity editor, install package by git url : https://github.com/Field-Robotics-Japan/UnitySensors.git?path=/Assets/UnitySensorsROS#v1.0b
- Setup Unity Ros connector: https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/main/tutorials/ros_unity_integration/setup.md
- apt install ros-humble-pointcloud-to-laserscan
- ros2 run pointcloud_to_laserscan pointcloud_to_laserscan_node
- Start ros_tcp_endpoint: ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=192.168.20.104
- Install unity package https://github.com/ossrs/srs-unity
- Run RSR container on your local media server
docker run --name srs -it -p 1935:1935 -p 1985:1985 -p 8080:8080
--env CANDIDATE=192.168.20.104 -p 8000:8000/udp
ossrs/srs:5 ./objs/srs -c conf/docker.conf - HTTPS for remote media server
docker run --name srs -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088
--env CANDIDATE=192.168.20.104 -p 8000:8000/udp
ossrs/srs:5 ./objs/srs -c conf/https.docker.conf
https://www.meetecho.com/blog/data-channels-broadcasting-with-janus/