Hi All,
Simon, thank you for introducing
the simulated sailing idea! The ideas brought together here are very
interesting :) Some thoughts from me:
Regarding
the timing, I don't think a continuous / several times per year
competition is a good idea, at least not for now. I would expect this to
need a significant amount of continuous maintenance, and I believe a
shorter period will also make it easier to give teams a feeling that
they are competing. I agree with the idea of running a simulation
competition in Winter, when many teams are not able to go on the water -
it would also help with recruiting and familiarizing new team members
with sailing robots. Maybe we can start in 2019 with an informal
competition, but I would plan for December2019/January/February 2020.
This time slot also has the advantage that teams have time to write
papers about their simulation and submit to IRSC :)
It
sounds like ROS/gazebo would be the best approach, even if teams don't
implement their entire work in ROS, they should easily manage to output a
ROS message to interface with the competition side. In previous
simulator based competitions, OSRF has used docker containers, which
also makes it very easy for teams to get started. From personal
conversation it sounds like they are willing to share their experience
and advice to get started.
The biggest
question that I still see open is what form of challenge we want to run.
I would not combine AIS data and a full sailing robot simulation
immediately, but would instead approach the problem in multiple steps, e.g.:
A) Wind variation during triangle race.
All
teams use the same simplified model, they have to make tack decisions
etc. to route their boat around a triangle course with changing wind
conditions. The ROS output they generate is a rudder and a sail angle.
As a final, all boat paths can be shown at the same time. As training
data, some wind patterns are given, a secret wind pattern is used as the
final.
B) Simulation verification. Control
signals of a (simple) given boat, some boat data, and an example
recording of wind direction and boat path on a lake are the start point
for the teams. Ideally the simulated boat coincides with the class we
suggest as a boat for beginners. For the scoring a previously secret
boat path and set of rudder/sail setpoints is used. Here not the
fastest, but the most realistic boat wins.
C) Obstacle avoidance. The most successful previously achieved boat model, combined
with real AIS and wind data. All teams get the same boat, the teams can
set a goal heading, aiming to pass through the AIS data without
getting too close/colliding with other boats.
This
can be escalated further, adding in simulated vehicle component
failures, additional boat designs, wave simulation, wind shadow and
wakes of boats on AIS, etc.
For the first
simulation event we would 'only' need a docker container with ROS, a
gazebo simulation of a simplified sail boat, some buoys and a wind
pattern - as well a scoring system.
I would suggest splitting the discussion, talking about everything sailing robot specific here, and figuring out the competition implementation on
discourse.ros.org (not sure where there exactly), since this will be interesting for other people running simulation based competitions.
Looking forwards to hear your thoughts on this,
Sophia
PS: John, you might get some answers, or pointers towards helpful tutorials, in this group by opening a discussion specifically on your question(s) - e.g. i am fairly sure the Southampton team will have some good advice to get you started with ROS on Linux on a raspberry pi. Generally, people will try to stay 'on topic', so everyone responding to the topic Simon opened here will focus on the simulation league in their responses.