I am still in the process of implementing our logic into the Gazebo/RotorS system, but I have made steady advances this week. Previously, I mentioned analyzing the codes are used by the RotorS system and re-configuring certain section to implement in my script. With the help of the C++ course I am taking, I created a function that takes the motor speeds calculated by our logic and publishes them to a specific ROS topic. I also made our quad_mocap_rates_controller and keyboard_control nodes executable for the RotorS system to use. After starting all of the necessary nodes, I observed that the drone in the simulation was not moving. I used rqt to see if all of the nodes were running and found that quad_mocap_rates_controller was not communicating with the rest of the system. I then used the rostopic echo command on the motor speeds topic and found that no values were being published to the topic. From there I noticed that the rates controller never started in the terminal because it was “waiting for the MocapEstimator to start”.
Rqt Graph Using New Nodes
I ran our simulator to look at the differences in the rqt graphs, and examined the code to see what functions are necessary for the estimator to work. I found that my code is not publishing to the mocap_output and telemetry topics, so the estimator will not start.
Example of Variables Needed
Currently, I am creating a function in my node that converts the messages from Gazebo (i.e. position and attitude) into the variables used by our estimator. This seems straightforward and I believe Mark and I have discussed needing to do this in the past; it is now becoming clear to me how that conversation applies. Once I get this to work I will learn how to create/import new drone models and sensors.