commit: 8e1c93101a3d9f946c1278da7e69da3eaa7bf139 Author: Alexis Ballier <aballier <AT> gentoo <DOT> org> AuthorDate: Thu Jan 28 20:23:08 2016 +0000 Commit: Alexis Ballier <aballier <AT> gentoo <DOT> org> CommitDate: Thu Jan 28 20:25:43 2016 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8e1c9310
dev-ros/gazebo_ros_control: fix build with gazebo7 Package-Manager: portage-2.2.27 Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org> dev-ros/gazebo_ros_control/files/gazebo7.patch | 61 ++++++++++++++++++++++ .../gazebo_ros_control-2.5.1.ebuild | 1 + 2 files changed, 62 insertions(+) diff --git a/dev-ros/gazebo_ros_control/files/gazebo7.patch b/dev-ros/gazebo_ros_control/files/gazebo7.patch new file mode 100644 index 0000000..190756d --- /dev/null +++ b/dev-ros/gazebo_ros_control/files/gazebo7.patch @@ -0,0 +1,61 @@ +commit b5303e692bb5dd2e4f4fc7932c7ec2c7e0b2e907 +Author: Steven Peters <[email protected]> +Date: Tue Apr 14 18:10:36 2015 -0700 + + Use Joint::SetParam for joint velocity motors + + Before gazebo5, Joint::SetVelocity and SetMaxForce + were used to set joint velocity motors. + The API has changed in gazebo5, to use Joint::SetParam + instead. + The functionality is still available through the SetParam API. + + cherry-picked from indigo-devel + + Add ifdefs to fix build with gazebo2 + + It was broken by #315. + Fixes #321. + +diff --git a/gazebo_ros_control/src/default_robot_hw_sim.cpp b/gazebo_ros_control/src/default_robot_hw_sim.cpp +index 249c8d3..1d9418d 100644 +--- a/gazebo_ros_control/src/default_robot_hw_sim.cpp ++++ b/gazebo_ros_control/src/default_robot_hw_sim.cpp +@@ -199,7 +199,7 @@ bool DefaultRobotHWSim::initSim( + if (joint_control_methods_[j] != EFFORT) + { + // Initialize the PID controller. If no PID gain values are found, use joint->SetAngle() or +- // joint->SetVelocity() to control the joint. ++ // joint->SetParam("vel") to control the joint. + const ros::NodeHandle nh(model_nh, "/gazebo_ros_control/pid_gains/" + + joint_names_[j]); + if (pid_controllers_[j].init(nh, true)) +@@ -216,10 +216,14 @@ bool DefaultRobotHWSim::initSim( + } + else + { +- // joint->SetMaxForce() must be called if joint->SetAngle() or joint->SetVelocity() are +- // going to be called. joint->SetMaxForce() must *not* be called if joint->SetForce() is ++ // joint->SetParam("fmax") must be called if joint->SetAngle() or joint->SetParam("vel") are ++ // going to be called. joint->SetParam("fmax") must *not* be called if joint->SetForce() is + // going to be called. ++#if GAZEBO_MAJOR_VERSION > 2 ++ joint->SetParam("fmax", 0, joint_effort_limits_[j]); ++#else + joint->SetMaxForce(0, joint_effort_limits_[j]); ++#endif + } + } + } +@@ -327,7 +331,11 @@ void DefaultRobotHWSim::writeSim(ros::Time time, ros::Duration period) + break; + + case VELOCITY: ++#if GAZEBO_MAJOR_VERSION > 2 ++ sim_joints_[j]->SetParam("vel", 0, e_stop_active_ ? 0 : joint_velocity_command_[j]); ++#else + sim_joints_[j]->SetVelocity(0, e_stop_active_ ? 0 : joint_velocity_command_[j]); ++#endif + break; + + case VELOCITY_PID: diff --git a/dev-ros/gazebo_ros_control/gazebo_ros_control-2.5.1.ebuild b/dev-ros/gazebo_ros_control/gazebo_ros_control-2.5.1.ebuild index a8ee997..65b2ca7 100644 --- a/dev-ros/gazebo_ros_control/gazebo_ros_control-2.5.1.ebuild +++ b/dev-ros/gazebo_ros_control/gazebo_ros_control-2.5.1.ebuild @@ -27,3 +27,4 @@ RDEPEND=" sci-electronics/gazebo " DEPEND="${RDEPEND}" +PATCHES=( "${FILESDIR}/gazebo7.patch" )
