The Robotics Academy is a tool for the training of undergrads and grads in the basic concepts of Robotics without worrying about the complexities of the implementation in simulation. It contains several exercises on drones which are what I was most interested in. These exercises, similar to the others available, were based on the Internet Communications Engine (ICE) for their backend architecture. As Robot Operating System (ROS) has become the standard for robotics, there arose the need to port these exercises from ICE to ROS. In the porting to ROS, a selection had to be made on the base project for the flight controller. As the PX4 project is stable, well maintained and most importantly plays well with ROS through mavros, it was chosen to be part of the project.

Completed Work

After the familiarisation with the code, fixing installation issues (and writing posts about them here) and correcting the basic model of the drone to be used, I started with the ROSification fo the follow road exercise. Realising the possiblility of having everything modularised as compared to the way it was before, I spent the next 4 weeks developing the drone-wrapper and rqt-drone-teleop packages in the Jderobot/drones repository. Meanwhile I also added the few models and worlds required for the follow road exercise to the Jderobot/assets repository.

This was immediately followed by the ROSification of the labyrinth escape exercise and opening of a pull request for each here and here. However, as this was dependant on the pull requests #20 and #24 in Jderobot/assets, it was marked for not merging until the assets requests were merged. As the pace of the development was higher than the time available for proper review, it was decided to have me working on a seperate branch (kinetic-devel in assets and drone_mods in RoboticsAcademy) and have a single pull request that could be reviewed peacefully. To simplify the installation procedure for the students, I started the process of releasing the kinetic-devel branch of assets, rqt-drone-teleop and drone-wrapper onto the ROS build farm.

This was followed by the ROSification of the other exercises too that contained a single agent (quadrotor). The exercises with multiple agents/a dynamic world were also completed and supported by the creation of more models, world files and a ground-robots package.

At present, I have developed and released 4 packages onto the ROS build farm:

  1. rqt-drone-teleop
  2. drone-wrapper
  3. jderobot-assets
  4. rqt-ground-robot-teleop

and ported all exercises to use ROS, PX4 and mavros through these packages. These exercises are ready to be merged in this pull request.

This GSoC project has also helped in starting the process of moving away from the current master branch of Jderobot/assets to the ROS ready branch kinetic-devel. (Refer #23) and started the discussion of the ROSification of the Jderobot/base repository.

Additionally, videos of the exercises like the one below are forthcoming:

Follow roads


The ROSification of all exercises, as proposed in the proposal has been completed. Additional packages have also been released for the improvement of the structure.