Quantcast
Channel: Gazebo: Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 7017

How to detach a joint or remove it dynamically

$
0
0
Hey I'm trying to adapt Vacuum Gripper plugin for sdf. I got the Vacuum Gripper plugin from gazebo-ros-pkgs and I modified it in order to create a joint between the manipulator's link and the link from the object I wanna grasp. Furthermore, I apply force to the object so that it will not fall while moving the manipulator. So, to create the joint I used Joint Gazebo class function Attach(), as shown below. *link_* is the parent link and *links* is the child link. void GazeboRosVacuumGripper::AttachJoint(physics::LinkPtr link_,physics::LinkPtr links){ cube_joint_ = this->world_->GetPhysicsEngine()->CreateJoint("revolute",parent_); cube_joint_->Load(link_,links,ignition::math::Pose3d(link_->GetWorldPose().Ign())); cube_joint_->Attach(link_,links); cube_joint_->SetAxis(0,math::Vector3(0,0,1)); cube_joint_->SetEffortLimit(0,300); cube_joint_->SetVelocityLimit(0,4.15); cube_joint_->SetVelocity(0,0); cube_joint_->SetVelocityLimit(1,4.15); cube_joint_->SetVelocity(1,0); cube_joint_->SetVelocityLimit(2,4.15); cube_joint_->SetVelocity(2,0); cube_joint_->SetUpperLimit(0,3.14); cube_joint_->SetLowerLimit(0,-3.14); cube_joint_->SetUpperLimit(1,3.14); cube_joint_->SetLowerLimit(1,-3.14); cube_joint_->SetUpperLimit(2,3.14); cube_joint_->SetLowerLimit(2,-3.14); } The problem is when I try to detach the joint. void GazeboRosVacuumGripper::DetachJoint(){ cube_joint_->Detach(); } It returns this error and gazebo crashes right after. gzserver: /usr/include/boost/smart_ptr/shared_ptr.hpp:648: typename boost::detail::sp_member_access::type boost::shared_ptr::operator->() const [with T = gazebo::physics::Joint; typename boost::detail::sp_member_access::type = gazebo::physics::Joint*]: Assertion `px != 0' failed. Aborted (core dumped) [gazebo-2] process has died [pid 7604, exit code 134, cmd /home/tamires/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/gzserver -e ode worlds/empty.world __name:=gazebo __log:=/home/tamires/.ros/log/24fe5070-bfa8-11e9-84c5-080027e717b6/gazebo-2.log]. log file: /home/tamires/.ros/log/24fe5070-bfa8-11e9-84c5-080027e717b6/gazebo-2*.log I'm running Gazebo 7.15 on Ubuntu 16.04 and ROS Kinetic. I also tried to remove the joint but it didn't work. Does anyone know how to solve it? Thanks!

Viewing all articles
Browse latest Browse all 7017

Latest Images

Trending Articles



Latest Images