Assuming you have a working simulation installation (see link below)
Obviously these are not the only compatible versions. In the near (?) future we will be tagging compatible versions. These are versions which are known to work
| repo | version | commit |
|---|---|---|
| ardupilot-ros-utils | main | 3edcda0 |
| ardupilot | add-shim-dep | 74005b8928 |
| ardupilot_gazebo | ros2 | 3791592 |
| ardupilot_gz | main | 58f4726 |
| asdl-blueboat | main | 4c14201 |
| asdl-blueboat-oceans25 | main | 0634595 |
| asdl-oak | main | 345e70a |
| micro-xrce-dds-gen | 93b118a | |
| ucrt-ros | main | 4989951 |
| ardupilot_sitl_models | main | d5d6017 |
| asdl-blueboat-ext | main | 4810938 |
| asdl-livox | main | 4c78505 |
| asdl-ros-dev | 6e2d69e | |
| lyoko | main | b4ac451 |
| micro_ros_agent | jazzy | 52abdf5 |
| greenhorn | 2.y | 4c7829e |
Try launching the default experiment
cd ~/.local/ros/asdl-ros/
colcon build --merge-install
source install/setup.bash
ros2 launch lyoko_gz_bringup spawn_experiment.launch.py experiment_name:=example_experiment_config
This should launch the sydney_regatta world with several asdl-blueboats in it (if you are on the add-sydney-regatta branch OR my PR has been approved). It may take some time to boot.
The software stack uses a multi-repo structure because Sean said/says it is best practice. This means that not only are functions split across ROS packages, but also across repositories. Running the full stack involves combining the packages from multiple repositories.
Starting simulations with robots in them is handled by packages in the lyoko repository. lyoko_gz_bringup contains launch utilities, lyoko_gz_worlds contains world descriptions, and lyoko_gz_maritime does I’m not sure what. Robot definitions are NOT contained in lyoko.
Read the lyoko_gz_bringup README to learn about starting simulations!
In order to ensure compatibility between Lyoko and the robots it spawns, all UCRT robots must have a bringup package, and a description package.
The bringup package must provide a bringup.launch.py script which starts all relevant nodes. The asdl-blueboat bringup is a good example of this. The package should also provide a hardware.launch.py script which starts hardware relevant nodes and calls the bringup launch.
The robot description package must provide a urdf description of the robot. This package must also include a config directory with a vehicle_gz_bridge.yaml file which specifies ROS-to-GZ (or GZ-to-ROS) information transfer. The asdl-blueboat urdf and gz_bridge are good examples of this.