Skip to content
Snippets Groups Projects
Commit 1f8fd5d1 authored by Thomas Gubler's avatar Thomas Gubler
Browse files

new dummy attitude estimator skeleton

parent b632d128
No related branches found
No related tags found
No related merge requests found
......@@ -177,10 +177,10 @@ target_link_libraries(mc_att_control
)
## Attitude Estimator dummy
add_executable(att_estimator
src/platforms/ros/nodes/att_estimator/att_estimator.cpp)
add_dependencies(att_estimator px4_generate_messages_cpp)
target_link_libraries(att_estimator
add_executable(attitude_estimator
src/platforms/ros/nodes/attitude_estimator/attitude_estimator.cpp)
add_dependencies(attitude_estimator px4_generate_messages_cpp)
target_link_libraries(attitude_estimator
${catkin_LIBRARIES}
px4
)
......
......@@ -2,7 +2,7 @@
<group ns="px4_example">
<node pkg="px4" name="manual_input" type="manual_input"/>
<node pkg="px4" name="att_estimator" type="att_estimator"/>
<node pkg="px4" name="attitude_estimator" type="attitude_estimator"/>
<node pkg="px4" name="mc_att_control" type="mc_att_control"/>
</group>
......
/****************************************************************************
*
* Copyright (c) 2014 PX4 Development Team. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file att_estimator.cpp
* Dummy attitude estimator that forwards attitude from gazebo to px4 topic
*
* @author Thomas Gubler <thomasgubler@gmail.com>
*/
#include "attitude_estimator.h"
#include <px4/vehicle_attitude.h>
AttitudeEstimator::AttitudeEstimator() :
_n(),
_sub_modelstates(_n.subscribe("joy", 10, &AttitudeEstimator::ModelStatesCallback, this)),
_vehicle_attitude_pub(_n.advertise<px4::vehicle_attitude>("vehicle_attitude", 10))
{
}
void AttitudeEstimator::ModelStatesCallback(const gazebo_msgs::ModelStatesConstPtr& msg)
{
px4::vehicle_attitude msg_out;
/* Fill px4 attitude topic with contents from modelstates topic */
//XXX
_vehicle_attitude_pub.publish(msg_out);
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "attitude_estimator");
AttitudeEstimator m;
ros::spin();
return 0;
}
......@@ -32,7 +32,7 @@
****************************************************************************/
/**
* @file att_estimator.cpp
* @file att_estimator.h
* Dummy attitude estimator that forwards attitude from gazebo to px4 topic
*
* @author Thomas Gubler <thomasgubler@gmail.com>
......@@ -40,23 +40,22 @@
#include "ros/ros.h"
#include <gazebo_msgs/ModelStates.h>
//#include "std_msgs/String.h"
/**
* This tutorial demonstrates simple receipt of messages over the ROS system.
*/
void chatterCallback(const gazebo_msgs::ModelStates &msg)
{
// try to read out message here
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "att_estimator");
ros::NodeHandle n;
ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);
ros::spin();
return 0;
}
class AttitudeEstimator {
public:
AttitudeEstimator();
~AttitudeEstimator() {}
protected:
/**
* Takes ROS joystick message and converts/publishes to px4 manual control setpoint topic
*/
void ModelStatesCallback(const gazebo_msgs::ModelStatesConstPtr& msg);
ros::NodeHandle _n;
ros::Subscriber _sub_modelstates;
ros::Publisher _vehicle_attitude_pub;
};
......@@ -45,11 +45,10 @@
ManualInput::ManualInput() :
_n(),
_sub_joy(_n.subscribe("joy", 10, &ManualInput::JoyCallback, this)),
_man_ctrl_sp_pub(_n.advertise<px4::manual_control_setpoint>("manual_control_setpoint", 1000))
_man_ctrl_sp_pub(_n.advertise<px4::manual_control_setpoint>("manual_control_setpoint", 10))
{
}
void ManualInput::JoyCallback(const sensor_msgs::JoyConstPtr& msg)
{
px4::manual_control_setpoint msg_out;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment