Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pick-n-Place Functionality for PhantomX Pincher Robotic Arm #2

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 40 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,47 @@
Phantomx pincher robot arm repository
IMPORTANT: This Library was developed as part of a Masters Thesis on Inverse Reinforcement Learning for Multi-Robot coordination in an Ad-Hoc setting. The Machine Learning part of the code, as well the experimental setup for this research is not publicly available.

Need to install ROS arduino onto the arbotix board using arduino 1.05
phantomx_arm turtlebot Library
(Launch files marked by * (and the subsequent source files) are not uploaded due to privacy issues)

Install arbotix_ros package
ROS GAZEBO SIMULATOR EXPERIMENT LAUNCH:
In order to launch the experiments in Gazebo, go to the terminal and start the following launch files (in separate terminals)..
NOTE: To understand code structure and program flow, FOLLOW THE LAUNCH FILES

Configure phantomx_arm_moveit_controller_manager.launch file
Single Robot Experiment Launch:
roslaunch phantomx_arm_turtlebot_moveit_config gazeboPhantomX.launch
roslaunch phantomx_arm_turtlebot_moveit_config gazeboArmController.launch
roslaunch phantomx_arm_turtlebot_moveit_config amcl_robots_robot1.launch/roslaunch phantomx_arm_turtlebot_moveit_config amcl_robots_robot2.launch
(Robot 1 is the Expert and Robot 2 is the Learner)
*roslaunch phantomx_arm_turtlebot_moveit_config gazebo_expert_mdp.launch/roslaunch phantomx_arm_turtlebot_moveit_config gazebo_learner_mdp.launch

*Multi-Robot Experiment Launch:
roslaunch phantomx_arm_turtlebot_moveit_config gazeboMultiPhantomX.launch
roslaunch phantomx_arm_turtlebot_moveit_config amcl_robots_robot1.launch
roslaunch phantomx_arm_turtlebot_moveit_config amcl_robots_robot2.launch
(Robot 1 is the Expert and Robot 2 is the Learner)
*roslaunch phantomx_arm_turtlebot_moveit_config gazebo_expert_mdp.launch
*roslaunch phantomx_arm_turtlebot_moveit_config gazebo_two_robot_learner_mdp.launch

-- Create gazebo files to include multiple turtlebots with distinct controller namespaces
Testing IK and Motion Planning (Single Robot):
roslaunch phantomx_arm_turtlebot_moveit_config gazeboPhantomX.launch
roslaunch phantomx_arm_turtlebot_moveit_config gazeboArmController.launch
roslaunch phantomx_arm_turtlebot_moveit_config kinematicSolver.launch/roslaunch phantomx_arm_turtlebot_moveit_config pickANDplace.launch

-- Incorporate AMCL + move_base for the system and get it rolling for multiple turtlebots inside gazebo
IMPORTANT NOTES:
Make sure the namespaces in the Launch files match the ones in the respective .cpp files
Any timeout errors resulting from tf transforms can be traced back by generating the tf tree (rosrun tf view_frames/rosrun tf tf_monitor)

PHYSICAL ROBOT EXPERIMENT LAUNCH:
In order to launch the experiments on the physical robot, go to the terminal and start the following launch files (in separate terminals)..
NOTE: To understand code structure and program flow, FOLLOW THE LAUNCH FILES

-- Program an effective pick-n-place functionality for multiple phantomx turtlebots in gazebo
Physical Robot Experiment Launch:
roslaunch phantomx_arm_turtlebot_moveit_config arm.launch
roslaunch phantomx_arm_turtlebot_moveit_config test.launch

Testing IK and Motion Planning (Single Robot):
roslaunch phantomx_arm_turtlebot_moveit_config kinematicSolver.launch/roslaunch phantomx_arm_turtlebot_moveit_config pickANDplace.launch

IMPORTANT NOTES:
Make sure the namespaces in the Launch files match the ones in the respective .cpp files
Any timeout errors resulting from tf transforms can be traced back by generating the tf tree (rosrun tf view_frames/rosrun tf tf_monitor)
Binary file added boyd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added boydFloorplanClosedDoors.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions boyd_map.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
image: boyd.png
resolution: 0.040000
origin: [-25.000000, -25.000000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

2 changes: 1 addition & 1 deletion my_map.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
image: /home/michael/catkin_ws/src/phantomx_arm/my_map.pgm
image: /home/maulesht/indigo_workspace/src/phantomx_arm/my_map.pgm
resolution: 0.050000
origin: [-12.200000, -12.200000, 0.000000]
negate: 0
Expand Down
13 changes: 0 additions & 13 deletions phantomx_arm_controller/config/joints.yaml~

This file was deleted.

13 changes: 0 additions & 13 deletions phantomx_arm_controller/launch/arm.launch~

This file was deleted.

88 changes: 46 additions & 42 deletions phantomx_arm_controller/launch/frames.gv
Original file line number Diff line number Diff line change
@@ -1,44 +1,48 @@
digraph G {
"plate_top_link" -> "arm_base_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "plate_top_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_footprint" -> "base_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"odom" -> "base_footprint"[label="Broadcaster: /virtual_joint_broadcaster_0\nAverage rate: 10.199 Hz\nMost recent transform: 1426887226.924 \nBuffer length: 4.805 sec\n"];
"camera_rgb_frame" -> "camera_depth_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "camera_rgb_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"camera_depth_frame" -> "camera_depth_optical_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"camera_rgb_frame" -> "camera_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"camera_rgb_frame" -> "camera_rgb_optical_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "caster_back_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "caster_front_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "cliff_sensor_front_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "cliff_sensor_left_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "cliff_sensor_right_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "gyro_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"link_4" -> "link_5"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"link_3" -> "link_4"[label="Broadcaster: /robot_state_publisher\nAverage rate: 22.747 Hz\nMost recent transform: 1426887226.868 \nBuffer length: 4.880 sec\n"];
"link_5" -> "link_6"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"link_5" -> "link_7"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "plate_bottom_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "plate_middle_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_bottom_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_bottom_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_bottom_2_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_bottom_3_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_bottom_4_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_bottom_5_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_kinect_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_kinect_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_middle_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_middle_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_middle_2_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_middle_3_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_top_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_top_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_top_2_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"base_link" -> "pole_top_3_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.189 Hz\nMost recent transform: 1426887227.355 \nBuffer length: 4.882 sec\n"];
"arm_base_link" -> "link_1"[label="Broadcaster: /robot_state_publisher\nAverage rate: 22.747 Hz\nMost recent transform: 1426887226.868 \nBuffer length: 4.880 sec\n"];
"link_1" -> "link_2"[label="Broadcaster: /robot_state_publisher\nAverage rate: 22.747 Hz\nMost recent transform: 1426887226.868 \nBuffer length: 4.880 sec\n"];
"link_2" -> "link_3"[label="Broadcaster: /robot_state_publisher\nAverage rate: 22.747 Hz\nMost recent transform: 1426887226.868 \nBuffer length: 4.880 sec\n"];
"base_link" -> "wheel_left_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 10.208 Hz\nMost recent transform: 1426887226.865 \nBuffer length: 4.800 sec\n"];
"base_link" -> "wheel_right_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 10.208 Hz\nMost recent transform: 1426887226.865 \nBuffer length: 4.800 sec\n"];
"odom" -> "base_footprint"[label="Broadcaster: /gazebo\nAverage rate: 1005.445 Hz\nMost recent transform: 486.820 ( -0.018 sec old)\nBuffer length: 3.857 sec\n"];
"arm_base_link" -> "link_1"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.000 Hz\nMost recent transform: 486.786 ( 0.016 sec old)\nBuffer length: 3.820 sec\n"];
"plate_top_link" -> "arm_base_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"link_1" -> "link_2"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.000 Hz\nMost recent transform: 486.786 ( 0.016 sec old)\nBuffer length: 3.820 sec\n"];
"link_2" -> "link_3"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.000 Hz\nMost recent transform: 486.786 ( 0.016 sec old)\nBuffer length: 3.820 sec\n"];
"link_3" -> "link_4"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.000 Hz\nMost recent transform: 486.786 ( 0.016 sec old)\nBuffer length: 3.820 sec\n"];
"link_5" -> "link_6"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.000 Hz\nMost recent transform: 486.786 ( 0.016 sec old)\nBuffer length: 3.820 sec\n"];
"link_4" -> "link_5"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"link_5" -> "link_7"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.000 Hz\nMost recent transform: 486.786 ( 0.016 sec old)\nBuffer length: 3.820 sec\n"];
"base_link" -> "wheel_left_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.183 Hz\nMost recent transform: 486.795 ( 0.007 sec old)\nBuffer length: 3.826 sec\n"];
"base_footprint" -> "base_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "wheel_right_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.183 Hz\nMost recent transform: 486.795 ( 0.007 sec old)\nBuffer length: 3.826 sec\n"];
"base_link" -> "plate_top_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"camera_rgb_frame" -> "camera_depth_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "camera_rgb_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"camera_depth_frame" -> "camera_depth_optical_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"camera_rgb_frame" -> "camera_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"camera_rgb_frame" -> "camera_rgb_optical_frame"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "caster_back_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "caster_front_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "cliff_sensor_front_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "cliff_sensor_left_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "cliff_sensor_right_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "gyro_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "plate_bottom_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "plate_middle_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_bottom_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_bottom_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_bottom_2_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_bottom_3_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_bottom_4_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_bottom_5_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_kinect_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_kinect_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_middle_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_middle_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_middle_2_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_middle_3_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_top_0_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_top_1_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_top_2_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
"base_link" -> "pole_top_3_link"[label="Broadcaster: /robot_state_publisher\nAverage rate: 50.263 Hz\nMost recent transform: 487.283 ( -0.481 sec old)\nBuffer length: 3.800 sec\n"];
edge [style=invis];
subgraph cluster_legend { style=bold; color=black; label ="view_frames Result";
"Recorded at time: 486.802"[ shape=plaintext ] ;
}->"odom";
}
Binary file modified phantomx_arm_controller/launch/frames.pdf
Binary file not shown.
Loading