Skip to content

Commit b99a0f2

Browse files
Lu, Bethany(Data61, Pullenvale)Lu, Bethany(Data61, Pullenvale)
authored andcommitted
Fixed code formart
1 parent d2e83cb commit b99a0f2

File tree

9 files changed

+216
-163
lines changed

9 files changed

+216
-163
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
*.pyc
4141
*.idea
4242
*.sublime*
43+
*.vscode
4344

4445
# Others
4546
*~

include/syropod_highlevel_controller/parameters_and_states.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ struct AdjustableParameter : public Parameter<std::map<std::string, double>>
270270
typedef std::map<ParameterSelection, AdjustableParameter*> AdjustableMapType;
271271
struct Parameters
272272
{
273-
AdjustableMapType adjustable_map; ///< Map between adjustable parameter designations and associated Parameter object
273+
AdjustableMapType adjustable_map; ///< Map between adjustable parameter designations and associated Parameter object
274274

275275
// Control parameters
276276
Parameter<double> time_delta; ///< The period of time between successive ros cycles

include/syropod_highlevel_controller/standard_includes.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ inline Eigen::Vector3d cubicBezierCurveThroughControlPoint(const T *points, cons
389389
}
390390
else
391391
{
392-
ROS_INFO("Something terribly wrong is happening. New Control points for the Cubic Bezier is NOT being generated as expected.");
392+
ROS_WARN("Something terribly wrong is happening. New Control points for the Cubic Bezier is NOT being generated as expected.");
393393
return Eigen::Vector3d(0, 0, 0);
394394
}
395395
}
@@ -453,7 +453,7 @@ inline Eigen::Vector3d quarticBezierCurveThroughControlPoint(const T *points, co
453453
}
454454
else
455455
{
456-
ROS_INFO("Something terribly wrong. New Control points for the Quartic Bezier is NOT being generated as expected.");
456+
ROS_WARN("Something terribly wrong. New Control points for the Quartic Bezier is NOT being generated as expected.");
457457
return Eigen::Vector3d(0, 0, 0);
458458
}
459459
}

include/syropod_highlevel_controller/state_controller.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,12 @@ class StateController
220220
/// Callback for the input manual tip position (in cartesian space) for the AR leg (front right leg)
221221
/// @param[in] input The Pose geometry message provided by the subscribed topic "/syropod_manipulation/AR/Pose"
222222
/// @see (https://confluence.csiro.au/display/CPS/Weaver+Diagrams)
223-
void arTipPoseInputCallback(const geometry_msgs::Pose &msg);
223+
void primaryTipPoseInputCallback(const geometry_msgs::Pose &msg);
224224

225225
/// Callback for the input manual tip position (in cartesian space) for the AL leg (front left leg).
226226
/// @param[in] input The Pose geometry message provided by the subscribed topic "/syropod_manipulation/AL/Pose"
227227
/// @see (https://confluence.csiro.au/display/CPS/Weaver+Diagrams)
228-
void alTipPoseInputCallback(const geometry_msgs::Pose &msg);
228+
void secondaryTipPoseInputCallback(const geometry_msgs::Pose &msg);
229229

230230
/// Callback handling the desired parameter selection and sending state messages to user interface.
231231
/// @param[in] input The Int8 standard message provided by the subscribed topic "syropod_remote/parameter_selection"
@@ -291,8 +291,8 @@ class StateController
291291
ros::Subscriber parameter_selection_subscriber_; ///< Subscriber for topic /syropod_remote/parameter_selection
292292
ros::Subscriber parameter_adjustment_subscriber_; ///< Subscriber for topic /syropod_remote/parameter_adjustment
293293

294-
ros::Subscriber ar_tip_pose_subscriber_; ///< Subscriber for topic /syropod_manipulation/AR/Pose
295-
ros::Subscriber al_tip_pose_subscriber_; ///< Subscriber for topic /syropod_manipulation/AL/Pose
294+
ros::Subscriber primary_tip_pose_subscriber_; ///< Subscriber for topic /syropod_manipulation/AR/Pose
295+
ros::Subscriber secondary_tip_pose_subscriber_; ///< Subscriber for topic /syropod_manipulation/AL/Pose
296296

297297
ros::Subscriber target_configuration_subscriber_; ///< Subscriber for topic /target_configuration
298298
ros::Subscriber target_body_pose_subscriber_; ///< Subscriber for topic /target_body_pose
@@ -373,8 +373,8 @@ class StateController
373373
LegContainer::iterator leg_it_; ///< Leg iteration member variable used to minimise code
374374
JointContainer::iterator joint_it_; ///< Joint iteration member variable used to minimise code
375375

376-
Pose ar_pose_input_; ///< Input for the desired pose of the leg tip AR
377-
Pose al_pose_input_; ///< Input for the desired pose of the leg tip AR
376+
Pose primary_pose_input_; ///< Input for the desired pose of the leg tip AR
377+
Pose secondary_pose_input_; ///< Input for the desired pose of the leg tip AR
378378

379379
public:
380380
EIGEN_MAKE_ALIGNED_OPERATOR_NEW

include/syropod_highlevel_controller/walk_controller.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,8 @@ class WalkController : public std::enable_shared_from_this<WalkController>
220220
/// @param[in] secondary_leg_selection_ID The designation of a leg selected (in the secondary role) for manipulation.
221221
/// @param[in] secondary_tip_pose_input The cartesian input to move the secondary leg tip to a desired pose.
222222
/// @todo add orientation tip control and update the comment. WIP
223-
void controlManualPose(const int &primary_leg_selection_ID, const Pose &primary_tip_pose_input,
224-
const int &secondary_leg_selection_ID, const Pose &secondary_tip_pose_input);
223+
void updateManual(const int &primary_leg_selection_ID, const Pose &primary_tip_pose_input,
224+
const int &secondary_leg_selection_ID, const Pose &secondary_tip_pose_input);
225225

226226
/// Calculates a estimated walk plane which best fits the default tip positions of legs in model.
227227
/// Walk plane vector in form: [a, b, c] where plane equation equals: ax + by + c = z.
@@ -456,7 +456,7 @@ class LegStepper
456456
/// Calculates the lateral change in distance from identity tip position to new default tip position for a leg.
457457
/// @return The change from identity tip position to the new default tip position
458458
Eigen::Vector3d calculateStanceSpanChange(void);
459-
459+
460460
/// Update Default Tip Position based on external definitions, stance span or tip position at beginning of stance.
461461
void updateDefaultTipPosition(void);
462462

@@ -512,8 +512,8 @@ class LegStepper
512512
Eigen::Vector3d stride_vector_; ///< The desired stride vector
513513
Eigen::Vector3d swing_clearance_; ///< Position relative to the default tip position to achieve during swing period
514514

515-
double swing_delta_t_ = 0.0;
516-
double stance_delta_t_ = 0.0;
515+
double swing_delta_t_ = 0.0;
516+
double stance_delta_t_ = 0.0;
517517

518518
Pose identity_tip_pose_; ///< The user defined tip pose assuming a identity walk plane
519519
Pose default_tip_pose_; ///< The default tip pose per the walk controller, updated with walk plane

src/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1818
int main(int argc, char* argv[])
1919
{
20-
ros::init(argc, argv, "shc");
20+
ros::init(argc, argv, "shc");
2121
ros::NodeHandle n;
2222

2323
StateController state;
@@ -51,7 +51,7 @@ int main(int argc, char* argv[])
5151
ros::console::notifyLoggerLevelsChanged();
5252
}
5353

54-
// Set ros rate from params
54+
// Set ros rate from params
5555
ros::Rate r(roundToInt(1.0 / params.time_delta.data));
5656

5757
// Wait specified time to aquire all published joint positions via callback

src/model.cpp

Lines changed: 62 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@
1414
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1515

1616
Model::Model(const Parameters &params, std::shared_ptr<DebugVisualiser> debug_visualiser)
17-
: params_(params), debug_visualiser_(debug_visualiser), leg_count_(params_.leg_id.data.size()), time_delta_(params_.time_delta.data), current_pose_(Pose::Identity()), default_pose_(Pose::Identity())
17+
: params_(params)
18+
, debug_visualiser_(debug_visualiser)
19+
, leg_count_(params_.leg_id.data.size())
20+
, time_delta_(params_.time_delta.data)
21+
, current_pose_(Pose::Identity())
22+
, default_pose_(Pose::Identity())
1823
{
1924
imu_data_.orientation = UNDEFINED_ROTATION;
2025
imu_data_.linear_acceleration = Eigen::Vector3d::Zero();
@@ -24,7 +29,13 @@ Model::Model(const Parameters &params, std::shared_ptr<DebugVisualiser> debug_vi
2429
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2530

2631
Model::Model(std::shared_ptr<Model> model)
27-
: params_(model->params_), debug_visualiser_(model->debug_visualiser_), leg_count_(model->leg_count_), time_delta_(model->time_delta_), current_pose_(model->current_pose_), default_pose_(model->default_pose_), imu_data_(model->imu_data_)
32+
: params_(model->params_)
33+
, debug_visualiser_(model->debug_visualiser_)
34+
, leg_count_(model->leg_count_)
35+
, time_delta_(model->time_delta_)
36+
, current_pose_(model->current_pose_)
37+
, default_pose_(model->default_pose_)
38+
, imu_data_(model->imu_data_)
2839
{
2940
}
3041

@@ -156,7 +167,13 @@ Eigen::Vector3d Model::estimateGravity(void)
156167
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
157168

158169
Leg::Leg(std::shared_ptr<Model> model, const int &id_number, const Parameters &params)
159-
: model_(model), params_(params), id_number_(id_number), id_name_(params_.leg_id.data.at(id_number)), joint_count_(params_.leg_DOF.data.at(id_name_)), leg_state_(WALKING), admittance_delta_(Eigen::Vector3d::Zero()), admittance_state_(std::vector<double>(2))
170+
: model_(model), params_(params)
171+
, id_number_(id_number)
172+
, id_name_(params_.leg_id.data.at(id_number))
173+
, joint_count_(params_.leg_DOF.data.at(id_name_))
174+
, leg_state_(WALKING)
175+
, admittance_delta_(Eigen::Vector3d::Zero())
176+
, admittance_state_(std::vector<double>(2))
160177
{
161178
desired_tip_pose_ = Pose::Undefined();
162179
desired_tip_velocity_ = Eigen::Vector3d::Zero();
@@ -173,7 +190,12 @@ Leg::Leg(std::shared_ptr<Model> model, const int &id_number, const Parameters &p
173190
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
174191

175192
Leg::Leg(std::shared_ptr<Leg> leg, std::shared_ptr<Model> model)
176-
: params_(leg->params_), id_number_(leg->id_number_), id_name_(leg->id_name_), joint_count_(leg->joint_count_), leg_state_(leg->leg_state_), admittance_state_(leg->admittance_state_)
193+
: params_(leg->params_)
194+
, id_number_(leg->id_number_)
195+
, id_name_(leg->id_name_)
196+
, joint_count_(leg->joint_count_)
197+
, leg_state_(leg->leg_state_)
198+
, admittance_state_(leg->admittance_state_)
177199
{
178200
model_ = (model == NULL ? leg->model_ : model);
179201
leg_state_publisher_ = leg->leg_state_publisher_;
@@ -348,7 +370,6 @@ Workspace Leg::generateWorkspace(void)
348370
Eigen::Vector3d origin_tip_position, target_tip_position;
349371
double distance_from_origin;
350372
int number_iterations;
351-
double raw_number_iterations;
352373

353374
// Iterate through all legs and move legs along search bearings to kinematic limits
354375
while (true)
@@ -367,7 +388,6 @@ Workspace Leg::generateWorkspace(void)
367388
if (!found_lower_limit || !found_upper_limit)
368389
{
369390
number_iterations = roundToInt(MAX_WORKSPACE_RADIUS / MAX_POSITION_DELTA);
370-
raw_number_iterations = MAX_WORKSPACE_RADIUS / MAX_POSITION_DELTA;
371391
origin_tip_position = identity_tip_position;
372392
Eigen::Vector3d search_limit =
373393
(found_lower_limit ? MAX_WORKSPACE_RADIUS : -MAX_WORKSPACE_RADIUS) * Eigen::Vector3d::UnitZ();
@@ -379,7 +399,6 @@ Workspace Leg::generateWorkspace(void)
379399
number_iterations = roundToInt(search_height_delta / MAX_POSITION_DELTA);
380400
// Removes chance for zero iterations
381401
number_iterations = std::max(1, number_iterations);
382-
raw_number_iterations = search_height_delta / MAX_POSITION_DELTA;
383402
origin_tip_position = current_tip_pose_.position_;
384403
target_tip_position = identity_tip_position;
385404
}
@@ -470,7 +489,6 @@ Workspace Leg::generateWorkspace(void)
470489
else
471490
{
472491
workspace_generation_complete = true;
473-
;
474492
}
475493
}
476494
}
@@ -684,9 +702,9 @@ void Leg::calculateTipForce(void)
684702

685703
// Low pass filter and force gain applied to calculated raw tip force
686704
double s = 0.15; // Smoothing Factor
687-
tip_force_calculated_[0] = s * raw_tip_force[0] * params_.force_gain.current_value + (1 - s) * tip_force_calculated_[0];
688-
tip_force_calculated_[1] = s * raw_tip_force[1] * params_.force_gain.current_value + (1 - s) * tip_force_calculated_[1];
689-
tip_force_calculated_[2] = s * raw_tip_force[2] * params_.force_gain.current_value + (1 - s) * tip_force_calculated_[2];
705+
tip_force_calculated_[0] = s*raw_tip_force[0]*params_.force_gain.current_value + (1 - s)*tip_force_calculated_[0];
706+
tip_force_calculated_[1] = s*raw_tip_force[1]*params_.force_gain.current_value + (1 - s)*tip_force_calculated_[1];
707+
tip_force_calculated_[2] = s*raw_tip_force[2]*params_.force_gain.current_value + (1 - s)*tip_force_calculated_[2];
690708
}
691709

692710
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -973,7 +991,14 @@ Pose Leg::applyFK(const bool &set_current, const bool &use_actual)
973991

974992
Link::Link(std::shared_ptr<Leg> leg, std::shared_ptr<Joint> actuating_joint,
975993
const int &id_number, const Parameters &params)
976-
: parent_leg_(leg), actuating_joint_(actuating_joint), id_number_(id_number), id_name_(leg->getIDName() + "_" + params.link_id.data[id_number_] + "_link"), dh_parameter_r_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("r")), dh_parameter_theta_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("theta")), dh_parameter_d_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("d")), dh_parameter_alpha_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("alpha"))
994+
: parent_leg_(leg)
995+
, actuating_joint_(actuating_joint)
996+
, id_number_(id_number)
997+
, id_name_(leg->getIDName() + "_" + params.link_id.data[id_number_] + "_link")
998+
, dh_parameter_r_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("r"))
999+
, dh_parameter_theta_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("theta"))
1000+
, dh_parameter_d_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("d"))
1001+
, dh_parameter_alpha_(params.link_parameters[leg->getIDNumber()][id_number_].data.at("alpha"))
9771002
{
9781003
if (!params.link_parameters[leg->getIDNumber()][id_number_].initialised)
9791004
{
@@ -985,15 +1010,29 @@ Link::Link(std::shared_ptr<Leg> leg, std::shared_ptr<Joint> actuating_joint,
9851010
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9861011

9871012
Link::Link(std::shared_ptr<Link> link)
988-
: parent_leg_(link->parent_leg_), actuating_joint_(link->actuating_joint_), id_number_(link->id_number_), id_name_(link->id_name_), dh_parameter_r_(link->dh_parameter_r_), dh_parameter_theta_(link->dh_parameter_theta_), dh_parameter_d_(link->dh_parameter_d_), dh_parameter_alpha_(link->dh_parameter_alpha_)
1013+
: parent_leg_(link->parent_leg_)
1014+
, actuating_joint_(link->actuating_joint_)
1015+
, id_number_(link->id_number_)
1016+
, id_name_(link->id_name_)
1017+
, dh_parameter_r_(link->dh_parameter_r_)
1018+
, dh_parameter_theta_(link->dh_parameter_theta_)
1019+
, dh_parameter_d_(link->dh_parameter_d_)
1020+
, dh_parameter_alpha_(link->dh_parameter_alpha_)
9891021
{
9901022
}
9911023

9921024
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9931025

9941026
Joint::Joint(std::shared_ptr<Leg> leg, std::shared_ptr<Link> reference_link,
9951027
const int &id_number, const Parameters &params)
996-
: parent_leg_(leg), reference_link_(reference_link), id_number_(id_number), id_name_(leg->getIDName() + "_" + params.joint_id.data[id_number_ - 1] + "_joint"), min_position_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("min")), max_position_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("max")), unpacked_position_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("unpacked")), max_angular_speed_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("max_vel"))
1028+
: parent_leg_(leg)
1029+
, reference_link_(reference_link)
1030+
, id_number_(id_number)
1031+
, id_name_(leg->getIDName() + "_" + params.joint_id.data[id_number_ - 1] + "_joint")
1032+
, min_position_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("min"))
1033+
, max_position_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("max"))
1034+
, unpacked_position_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("unpacked"))
1035+
, max_angular_speed_(params.joint_parameters[leg->getIDNumber()][id_number_ - 1].data.at("max_vel"))
9971036
{
9981037
default_position_ = clamped(0.0, min_position_, max_position_);
9991038

@@ -1035,7 +1074,15 @@ Joint::Joint(std::shared_ptr<Leg> leg, std::shared_ptr<Link> reference_link,
10351074
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10361075

10371076
Joint::Joint(std::shared_ptr<Joint> joint)
1038-
: parent_leg_(joint->parent_leg_), reference_link_(joint->reference_link_), id_number_(joint->id_number_), id_name_(joint->id_name_), min_position_(joint->min_position_), max_position_(joint->max_position_), packed_positions_(joint->packed_positions_), unpacked_position_(joint->unpacked_position_), max_angular_speed_(joint->max_angular_speed_)
1077+
: parent_leg_(joint->parent_leg_)
1078+
, reference_link_(joint->reference_link_)
1079+
, id_number_(joint->id_number_)
1080+
, id_name_(joint->id_name_)
1081+
, min_position_(joint->min_position_)
1082+
, max_position_(joint->max_position_)
1083+
, packed_positions_(joint->packed_positions_)
1084+
, unpacked_position_(joint->unpacked_position_)
1085+
, max_angular_speed_(joint->max_angular_speed_)
10391086
{
10401087
current_transform_ = joint->current_transform_;
10411088
identity_transform_ = joint->identity_transform_;

0 commit comments

Comments
 (0)