Skip to content

Commit 07d0203

Browse files
authored
Include attitude reference in setpoints (#172)
Add support for publishing attitude setpoints
1 parent 393242d commit 07d0203

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

geometric_controller/include/geometric_controller/geometric_controller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ class geometricCtrl {
145145
int posehistory_window_;
146146

147147
void pubMotorCommands();
148-
void pubRateCommands(const Eigen::Vector4d &cmd);
148+
void pubRateCommands(const Eigen::Vector4d &cmd, const Eigen::Vector4d &target_attitude);
149149
void pubReferencePose(const Eigen::Vector3d &target_position, const Eigen::Vector4d &target_attitude);
150150
void pubPoseHistory();
151151
void pubSystemStatus();

geometric_controller/src/geometric_controller.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ void geometricCtrl::cmdloopCallback(const ros::TimerEvent &event) {
233233
case MISSION_EXECUTION:
234234
if (!feedthrough_enable_) computeBodyRateCmd(cmdBodyRate_, targetPos_, targetVel_, targetAcc_);
235235
pubReferencePose(targetPos_, q_des);
236-
pubRateCommands(cmdBodyRate_);
236+
pubRateCommands(cmdBodyRate_, q_des);
237237
appendPoseHistory();
238238
pubPoseHistory();
239239
break;
@@ -295,7 +295,7 @@ void geometricCtrl::pubReferencePose(const Eigen::Vector3d &target_position, con
295295
referencePosePub_.publish(msg);
296296
}
297297

298-
void geometricCtrl::pubRateCommands(const Eigen::Vector4d &cmd) {
298+
void geometricCtrl::pubRateCommands(const Eigen::Vector4d &cmd, const Eigen::Vector4d &target_attitude) {
299299
mavros_msgs::AttitudeTarget msg;
300300

301301
msg.header.stamp = ros::Time::now();
@@ -304,6 +304,10 @@ void geometricCtrl::pubRateCommands(const Eigen::Vector4d &cmd) {
304304
msg.body_rate.y = cmd(1);
305305
msg.body_rate.z = cmd(2);
306306
msg.type_mask = 128; // Ignore orientation messages
307+
msg.orientation.w = target_attitude(0);
308+
msg.orientation.x = target_attitude(1);
309+
msg.orientation.y = target_attitude(2);
310+
msg.orientation.z = target_attitude(3);
307311
msg.thrust = cmd(3);
308312

309313
angularVelPub_.publish(msg);

0 commit comments

Comments
 (0)