Planning a predefined group state

As we commented during the configuration generation step, when initially integrating our robotic arm, MoveIt! provides the concept of predefined group states, which can later be used to position the robot with a predefined pose. Accessing predefined group states requires creating a robot state object as a target; in order to do so, the best approach is to start by obtaining the current state of the robotic arm from the planning group interface:

robot_state::RobotStatecurrent_state = 
*plan_group.getCurrentState();

Once we have obtained the current state, we can modify it by setting it to the predefined group state, with the following call, which takes the model group that needs to be modified and the name of the predefined group state:

current_state.setToDefaultValues(current_state.getJointModelGroup(
"arm"), "home");

Finally, we will use the new robot state of the robotic arm as our new goal and let MoveIt! take care of planning and execution as usual:

plan_group.setJointValueTarget(current_state); 

We can run this snippet of code with the following command, which should lead to the arm repositioning itself to achieve the predefined group state:

    $ rosrun rosbook_arm_snippets move_group_plan_group_state  
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.251.154