This package uses MoveIt to control Interbotix PX100 robot arm (in Simulation as well as in real world).
- User may use services listed below individually to reset robot, execute a step or make the robot follow a pre-loaded series of waypoints
- User may use services in combination by:
- Resetting robot to a
Goal_Pose
pre-defined position, set-upbox_position
andbox_orientation
of the box obstacle to scene and optionally setclear_waypoints
to delete previously collected waypoints - Execute step service multiple times with different
goal_position
,goal_orientation
andGripper_state
as input as desired. User may choose torecord
the waypoint. The waypoint will only be recorded to rosparam server if plan succeeds and user setrecord
to true. - Once user collects multiple waypoints using step service, user may use follow service to execute entire sequence and
repeat
if desired. (Note:Follow service
calls step service in a loop but doesn'trecord
in each iteration)
- Resetting robot to a
- The user has an option to run the code on actual Interbotix PX100 robot arm or in Simulation. User may visualize the robot in RVIZ optionally in both the cases.
Title | Link |
---|---|
MoveIt | ROS Wiki |
interbotix_ros_manipulators | Github |
- Create a catkin workspace
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src/
- Clone the repo into
catkin_ws/src
git clone https://github.com/ME495-EmbeddedSystems/homework-3-whomihirpatel.git
- Build the workspace and activate it
cd ~/catkin_ws/ catkin_make source ~/catkin_ws/devel/setup.zsh
-
To run the code on actual Interbotix PX100 robot arm:
roslaunch arm_move arm.launch actual:=true
-
This command also launches RVIZ to visualize actual robot in action.
-
Note: By default, all
args
inroslaunch arm_move arm.launch
are set toFalse
. Set only onearg
toTrue
. Check below for all configurations options availabe. -
The waypoints are pre-loaded to
rosparam
server. To make the robot follow these series of waypoints use service below (Note: service inputrepeat: 0
will make the robot follow series of waypoints once, i.e. repeat0
times)rosservice call /px100/follow "repeat: 2"
-
Check services below to plan, execute, record step sequence or reset robot as well as add box to planning scene
-
-
To run the code in RViz:
roslaunch arm_move arm.launch use_fake:=true
-
Services:
- Reset
box_position
andbox_orientation
sets box at desired pose in planning scene.clear_waypoints
clears collected waypoints from node's array as well as from rosparamGoal_Pose
resets robot to predefined position. options:Home
,Sleep
,Upright
(CaseSensitive)
rosservice call /px100/reset "box_position: x: 0.2 y: 0.0 z: 0.01 box_orientation: x: 0.0 y: 0.0 z: 1.0 w: 1.0 Goal_Pose: 'Home' clear_waypoints: true"
- Step
goal_position
andgoal_orientation
sets arm's goal poseGripper_state
sets end-effector's desired state options:Open
,Closed
,Home
(CaseSensitive)record
option to record the goal pose to rosparam [note: The waypoint will only be recorded to rosparam server if plan succeeds and user setrecord
to true.]
rosservice call /px100/step "goal_position: x: 0.2 y: 0.0 z: 0.1 goal_orientation: x: 0.0 y: 0.0 z: 0.0 w: 1.0 Gripper_state: 'Closed' record: true"
- Follow
repeat
takes interger input for repeating the loop (following a series of waypoints in each loop) for user defined number times. [eg: For input 0, loop executes once (i.e. repeats 0 times)]
rosservice call /px100/follow "repeat: 2"
- Reset
-
Waypoints structure:
-
use_actual:=true
option to run the code on actual Interbotix PX100 robot arm -
use_fake:=true
option to run the code in RViz -
use_gazebo:=true
option to run the code in Gazebo -
rvizconfig
option to load custom rviz configuration -
user may alter
waypoints
,gripper_state
, as well asfrequency
parameters, fromconfig/waypoints.yaml
Set only one of the above mentioned
args
to toTrue
in launch file. -
Demo: Click on the image below to view video: Interbotix px100: Motion Planning using MoveIt!