1: The proposal
As we all know, the easiest method for installing some software in Ubuntu is through
apt-get. This is utilised to a great extent by the packages available through the ROS build farm. These packages, with the standard of
ros-<distro>-<packagename> are easy to install and use. These are also managed through a continuous integration service called Jenkins.
What I propose (atleast for the drone exercises) is that the GUI is made as one package in
rqt, the required assets (models and worlds) are available in the JdeRobot-assets repository,
drone_wrapper is distributed as a seperate ROS package and lastly, only the my_solution.py file is available in the JdeRobot-RoboticsAcademy.
rqt_drone_teleopPackage containing the GUI for all drone exercises. This is to be distributed as a ros package from the build farm as
drone_wrapperPackage containing the helper class that abstracts MAVROS and PX4 for simplicity in usage. This is to be distributed as a ros package from the build farm as
The particular files and folders specified here are all that matter for the follow road exercise. Similar to it, all exercises shall have their own world file and launch file and will use the same
iris_dual_cammodel. This directory shall also be distributed as a ros package.
- follow_road.world The particular files and folders specified here are all that matter for the follow road exercise. Similar to it, all exercises shall have their own world file and launch file and will use the same
- follow_road.launch The my_solution.py shall contain the students code that is envisioned to be run. The readme provides instructions for the exercise which is launched by the launch file.
Assuming ROS and Gazebo is installed and source is added,
sudo apt-get install ros-kinetic-jderobot-drones(This automatically installs the assets)
git clone email@example.com:JdeRobot/RoboticsAcademy.git
Now that everything is installed, from the follow_road directory,
And thats it. This shall fire up Gazebo, MAVROS, PX4, rqt GUI and the code.
The same can also be extended to the other exercises not involving drones i.e. A package for the GUI, a package for the interfacing, the appropriately named assets and the my_solution.py in the RoboticsAcademy.
2: The Prototype
We have a prototype!! Thats exactly what it is. A prototype.
This is the base package for all drone exercises and contains:
- The DroneWrapper class (to be imported into my_solution.py)
- The launch file for MAVROS, PX4 SITL and Gazebo (iris is expected to be present in the world file)
- A simple bash script to run the my_solution.py file wherever it is (when its complete path is given as a parameter to the launch file)
This package is the logic for the GUI of the exercise and also contains the launch file.
Note: *The launch file is to be moved to the assets directory as soon as I figure out how to roslaunch it safely from there.
Note: I am trying to implement the 2D slider as is but incase that does not work out, I shall use two sliders instead (as is suggested in rqt_robot_steering)*
This file is expected to be distributed in the Robotics Academy. This instantiates a Drone and provides the student a simple method to call the requisite functions.