Introduction
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:
rqt-drone-teleop
drone-wrapper
jderobot-assets
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:
Conclusion
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.