Acwok

MoveIt octomap not displayed in rviz (ROS indigo)

Recommended Posts

Hello,

 
I installed MoveIt for Sawyer using the tutorial on your website (http://sdk.rethinkrobotics.com/intera/MoveIt_Tutorial).
Everything works well, except that the PlanningScene (octomap) isn't displayed.
 
I just modified the default camera transform (in sawyer_moveit.launch) to:
 
<arg name="camera_link_pose" default="1.63370914  0.18878118  0.83806239 -2.458593673374903 0.33172728805592044 -0.0750022861088028"/>

 

Then to launch MoveIt, I just:
rosrun intera_interface joint_trajectory_action_server.py in a SDK terminal session
- roslaunch sawyer_moveit_config sawyer_moveit.launch electric_gripper:=true kinect:=true in another SDK terminal session
 
Here is a capture of Rviz (Nothing is published on the Planning Scene Topic):
Images intégrées 1
 
Here is what I have in the terminal:
~/ros_ws$ roslaunch sawyer_moveit_config sawyer_moveit.launch electric_gripper:=true kinect:=true

... logging to /home/sawyer/.ros/log/33db5810-3ace-11e7-860e-1866da494b18/roslaunch-sawyer-HP-Compaq-Pro-6300-SFF-20862.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://169.254.5.155:38982/

SUMMARY
========

PARAMETERS
 * /move_group/allow_trajectory_execution: True
 * /move_group/allowed_execution_duration_scaling: 1.2
 * /move_group/allowed_goal_duration_margin: 0.5
 * /move_group/camera/camera_nodelet_manager/num_worker_threads: 4
 * /move_group/camera/depth_rectify_depth/interpolation: 0
 * /move_group/camera/depth_registered_rectify_depth/interpolation: 0
 * /move_group/camera/disparity_depth/max_range: 4.0
 * /move_group/camera/disparity_depth/min_range: 0.5
 * /move_group/camera/disparity_registered_hw/max_range: 4.0
 * /move_group/camera/disparity_registered_hw/min_range: 0.5
 * /move_group/camera/disparity_registered_sw/max_range: 4.0
 * /move_group/camera/disparity_registered_sw/min_range: 0.5
 * /move_group/camera/driver/data_skip: 0
 * /move_group/camera/driver/debug: False
 * /move_group/camera/driver/depth_camera_info_url: 
 * /move_group/camera/driver/depth_frame_id: camera_depth_opti...
 * /move_group/camera/driver/depth_registration: False
 * /move_group/camera/driver/device_id: #1
 * /move_group/camera/driver/diagnostics_max_frequency: 30.0
 * /move_group/camera/driver/diagnostics_min_frequency: 30.0
 * /move_group/camera/driver/diagnostics_tolerance: 0.05
 * /move_group/camera/driver/diagnostics_window_time: 5.0
 * /move_group/camera/driver/enable_depth_diagnostics: False
 * /move_group/camera/driver/enable_ir_diagnostics: False
 * /move_group/camera/driver/enable_rgb_diagnostics: False
 * /move_group/camera/driver/rgb_camera_info_url: 
 * /move_group/camera/driver/rgb_frame_id: camera_rgb_optica...
 * /move_group/capabilities: move_group/MoveGr...
 * /move_group/controller_list: [{'default': True...
 * /move_group/controller_manager_name: simple_controller...
 * /move_group/head/planner_configs: ['SBLkConfigDefau...
 * /move_group/jiggle_fraction: 0.05
 * /move_group/max_range: 5.0
 * /move_group/max_safe_path_cost: 1
 * /move_group/move_group/octomap_frame: camera_link
 * /move_group/move_group/octomap_resolution: 0.02
 * /move_group/move_group/point_subsample: 1
 * /move_group/move_group/sensors: [{'max_range': 5....
 * /move_group/moveit_controller_manager: moveit_simple_con...
 * /move_group/moveit_manage_controllers: True
 * /move_group/octomap_resolution: 0.025
 * /move_group/planner_configs/BKPIECEkConfigDefault/border_fraction: 0.9
 * /move_group/planner_configs/BKPIECEkConfigDefault/failed_expansion_score_factor: 0.5
 * /move_group/planner_configs/BKPIECEkConfigDefault/min_valid_path_fraction: 0.5
 * /move_group/planner_configs/BKPIECEkConfigDefault/range: 0.0
 * /move_group/planner_configs/BKPIECEkConfigDefault/type: geometric::BKPIECE
 * /move_group/planner_configs/ESTkConfigDefault/goal_bias: 0.05
 * /move_group/planner_configs/ESTkConfigDefault/range: 0.0
 * /move_group/planner_configs/ESTkConfigDefault/type: geometric::EST
 * /move_group/planner_configs/KPIECEkConfigDefault/border_fraction: 0.9
 * /move_group/planner_configs/KPIECEkConfigDefault/failed_expansion_score_factor: 0.5
 * /move_group/planner_configs/KPIECEkConfigDefault/goal_bias: 0.05
 * /move_group/planner_configs/KPIECEkConfigDefault/min_valid_path_fraction: 0.5
 * /move_group/planner_configs/KPIECEkConfigDefault/range: 0.0
 * /move_group/planner_configs/KPIECEkConfigDefault/type: geometric::KPIECE
 * /move_group/planner_configs/LBKPIECEkConfigDefault/border_fraction: 0.9
 * /move_group/planner_configs/LBKPIECEkConfigDefault/min_valid_path_fraction: 0.5
 * /move_group/planner_configs/LBKPIECEkConfigDefault/range: 0.0
 * /move_group/planner_configs/LBKPIECEkConfigDefault/type: geometric::LBKPIECE
 * /move_group/planner_configs/PRMkConfigDefault/max_nearest_neighbors: 10
 * /move_group/planner_configs/PRMkConfigDefault/type: geometric::PRM
 * /move_group/planner_configs/PRMstarkConfigDefault/type: geometric::PRMstar
 * /move_group/planner_configs/RRTConnectkConfigDefault/range: 0.0
 * /move_group/planner_configs/RRTConnectkConfigDefault/type: geometric::RRTCon...
 * /move_group/planner_configs/RRTkConfigDefault/goal_bias: 0.05
 * /move_group/planner_configs/RRTkConfigDefault/range: 0.0
 * /move_group/planner_configs/RRTkConfigDefault/type: geometric::RRT
 * /move_group/planner_configs/RRTstarkConfigDefault/delay_collision_checking: 1
 * /move_group/planner_configs/RRTstarkConfigDefault/goal_bias: 0.05
 * /move_group/planner_configs/RRTstarkConfigDefault/range: 0.0
 * /move_group/planner_configs/RRTstarkConfigDefault/type: geometric::RRTstar
 * /move_group/planner_configs/SBLkConfigDefault/range: 0.0
 * /move_group/planner_configs/SBLkConfigDefault/type: geometric::SBL
 * /move_group/planner_configs/TRRTkConfigDefault/frountierNodeRatio: 0.1
 * /move_group/planner_configs/TRRTkConfigDefault/frountier_threshold: 0.0
 * /move_group/planner_configs/TRRTkConfigDefault/goal_bias: 0.05
 * /move_group/planner_configs/TRRTkConfigDefault/init_temperature: 10e-6
 * /move_group/planner_configs/TRRTkConfigDefault/k_constant: 0.0
 * /move_group/planner_configs/TRRTkConfigDefault/max_states_failed: 10
 * /move_group/planner_configs/TRRTkConfigDefault/min_temperature: 10e-10
 * /move_group/planner_configs/TRRTkConfigDefault/range: 0.0
 * /move_group/planner_configs/TRRTkConfigDefault/temp_change_factor: 2.0
 * /move_group/planner_configs/TRRTkConfigDefault/type: geometric::TRRT
 * /move_group/planning_plugin: ompl_interface/OM...
 * /move_group/planning_scene_monitor/publish_geometry_updates: True
 * /move_group/planning_scene_monitor/publish_planning_scene: True
 * /move_group/planning_scene_monitor/publish_state_updates: True
 * /move_group/planning_scene_monitor/publish_transforms_updates: True
 * /move_group/request_adapters: default_planner_r...
 * /move_group/right_arm/planner_configs: ['SBLkConfigDefau...
 * /move_group/start_state_max_bounds_error: 0.1
 * /move_group/use_controller_manager: True
 * /robot_description_kinematics/head/kinematics_solver: kdl_kinematics_pl...
 * /robot_description_kinematics/head/kinematics_solver_attempts: 3
 * /robot_description_kinematics/head/kinematics_solver_search_resolution: 0.005
 * /robot_description_kinematics/head/kinematics_solver_timeout: 0.005
 * /robot_description_kinematics/right_arm/kinematics_solver: kdl_kinematics_pl...
 * /robot_description_kinematics/right_arm/kinematics_solver_attempts: 10
 * /robot_description_kinematics/right_arm/kinematics_solver_search_resolution: 0.005
 * /robot_description_kinematics/right_arm/kinematics_solver_timeout: 0.005
 * /robot_description_planning/joint_limits/right_j0/has_acceleration_limits: True
 * /robot_description_planning/joint_limits/right_j0/has_velocity_limits: True
 * /robot_description_planning/joint_limits/right_j0/max_acceleration: 3.5
 * /robot_description_planning/joint_limits/right_j0/max_velocity: 0.88
 * /robot_description_planning/joint_limits/right_j1/has_acceleration_limits: True
 * /robot_description_planning/joint_limits/right_j1/has_velocity_limits: True
 * /robot_description_planning/joint_limits/right_j1/max_acceleration: 2.5
 * /robot_description_planning/joint_limits/right_j1/max_velocity: 0.678
 * /robot_description_planning/joint_limits/right_j2/has_acceleration_limits: True
 * /robot_description_planning/joint_limits/right_j2/has_velocity_limits: True
 * /robot_description_planning/joint_limits/right_j2/max_acceleration: 5.0
 * /robot_description_planning/joint_limits/right_j2/max_velocity: 0.996
 * /robot_description_planning/joint_limits/right_j3/has_acceleration_limits: True
 * /robot_description_planning/joint_limits/right_j3/has_velocity_limits: True
 * /robot_description_planning/joint_limits/right_j3/max_acceleration: 5.0
 * /robot_description_planning/joint_limits/right_j3/max_velocity: 0.996
 * /robot_description_planning/joint_limits/right_j4/has_acceleration_limits: True
 * /robot_description_planning/joint_limits/right_j4/has_velocity_limits: True
 * /robot_description_planning/joint_limits/right_j4/max_acceleration: 5.0
 * /robot_description_planning/joint_limits/right_j4/max_velocity: 1.776
 * /robot_description_planning/joint_limits/right_j5/has_acceleration_limits: True
 * /robot_description_planning/joint_limits/right_j5/has_velocity_limits: True
 * /robot_description_planning/joint_limits/right_j5/max_acceleration: 5.0
 * /robot_description_planning/joint_limits/right_j5/max_velocity: 1.776
 * /robot_description_planning/joint_limits/right_j6/has_acceleration_limits: True
 * /robot_description_planning/joint_limits/right_j6/has_velocity_limits: True
 * /robot_description_planning/joint_limits/right_j6/max_acceleration: 5.0
 * /robot_description_planning/joint_limits/right_j6/max_velocity: 2.316
 * /robot_description_semantic: <?xml version="1....
 * /rosdistro: indigo
 * /rosversion: 1.11.21
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/head/kinematics_solver: kdl_kinematics_pl...
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/head/kinematics_solver_attempts: 3
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/head/kinematics_solver_search_resolution: 0.005
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/head/kinematics_solver_timeout: 0.005
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/right_arm/kinematics_solver: kdl_kinematics_pl...
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/right_arm/kinematics_solver_attempts: 10
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/right_arm/kinematics_solver_search_resolution: 0.005
 * /rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334/right_arm/kinematics_solver_timeout: 0.005

NODES
  /move_group/camera/
    camera_nodelet_manager (nodelet/nodelet)
    depth_metric (nodelet/nodelet)
    depth_metric_rect (nodelet/nodelet)
    depth_points (nodelet/nodelet)
    depth_rectify_depth (nodelet/nodelet)
    depth_registered_hw_metric_rect (nodelet/nodelet)
    depth_registered_metric (nodelet/nodelet)
    depth_registered_rectify_depth (nodelet/nodelet)
    depth_registered_sw_metric_rect (nodelet/nodelet)
    disparity_depth (nodelet/nodelet)
    disparity_registered_hw (nodelet/nodelet)
    disparity_registered_sw (nodelet/nodelet)
    driver (nodelet/nodelet)
    ir_rectify_ir (nodelet/nodelet)
    points_xyzrgb_hw_registered (nodelet/nodelet)
    points_xyzrgb_sw_registered (nodelet/nodelet)
    register_depth_rgb (nodelet/nodelet)
    rgb_debayer (nodelet/nodelet)
    rgb_rectify_color (nodelet/nodelet)
    rgb_rectify_mono (nodelet/nodelet)
  /move_group/
    camera_base_link (tf/static_transform_publisher)
    camera_base_link1 (tf/static_transform_publisher)
    camera_base_link2 (tf/static_transform_publisher)
    camera_base_link3 (tf/static_transform_publisher)
    camera_link_broadcaster (tf/static_transform_publisher)
  /
    move_group (moveit_ros_move_group/move_group)
    rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334 (rviz/rviz)

ROS_MASTER_URI=http://021611CP00073.local:11311

core service [/rosout] found
process[move_group/camera/camera_nodelet_manager-1]: started with pid [20874]
process[move_group/camera/driver-2]: started with pid [20875]
process[move_group/camera/rgb_debayer-3]: started with pid [20876]
process[move_group/camera/rgb_rectify_mono-4]: started with pid [20877]
process[move_group/camera/rgb_rectify_color-5]: started with pid [20878]
process[move_group/camera/ir_rectify_ir-6]: started with pid [20879]
process[move_group/camera/depth_rectify_depth-7]: started with pid [20883]
process[move_group/camera/depth_metric_rect-8]: started with pid [20890]
process[move_group/camera/depth_metric-9]: started with pid [20891]
process[move_group/camera/depth_points-10]: started with pid [20902]
process[move_group/camera/register_depth_rgb-11]: started with pid [20906]
process[move_group/camera/points_xyzrgb_sw_registered-12]: started with pid [20907]
process[move_group/camera/depth_registered_sw_metric_rect-13]: started with pid [20919]
process[move_group/camera/depth_registered_rectify_depth-14]: started with pid [20923]
process[move_group/camera/points_xyzrgb_hw_registered-15]: started with pid [20926]
[ INFO] [1495016462.598547792]: Initializing nodelet with 4 worker threads.
process[move_group/camera/depth_registered_hw_metric_rect-16]: started with pid [20927]
process[move_group/camera/depth_registered_metric-17]: started with pid [20941]
process[move_group/camera/disparity_depth-18]: started with pid [20946]
process[move_group/camera/disparity_registered_sw-19]: started with pid [20948]
process[move_group/camera/disparity_registered_hw-20]: started with pid [20952]
process[move_group/camera_base_link-21]: started with pid [20953]
process[move_group/camera_base_link1-22]: started with pid [20965]
process[move_group/camera_base_link2-23]: started with pid [20969]
process[move_group/camera_base_link3-24]: started with pid [20980]
process[move_group/camera_link_broadcaster-25]: started with pid [20984]
process[move_group-26]: started with pid [20986]
process[rviz_sawyer_HP_Compaq_Pro_6300_SFF_20862_7403073962417655334-27]: started with pid [20993]
[ INFO] [1495016462.693509168]: Number devices connected: 1
[ INFO] [1495016462.693602953]: 1. device on bus 000:00 is a Xbox NUI Camera (2ae) from Microsoft (45e) with serial id 'A00366907653103A'
[ INFO] [1495016462.694673734]: Searching for device with index = 1

(rviz:20993): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
[ INFO] [1495016462.750378327]: rviz version 1.11.15
[ INFO] [1495016462.750424452]: compiled against Qt version 4.8.6
[ INFO] [1495016462.750436423]: compiled against OGRE version 1.8.1 (Byatis)
[ INFO] [1495016462.778280205]: Starting a 3s RGB and Depth stream flush.
[ INFO] [1495016462.778359537]: Opened 'Xbox NUI Camera' on bus 0:0 with serial number 'A00366907653103A'
[ INFO] [1495016462.779418408]: Loading robot model 'sawyer'...
[ INFO] [1495016462.859296395]: Stereo is NOT SUPPORTED
[ INFO] [1495016462.859370647]: OpenGl version: 3 (GLSL 1.3).
[ WARN] [1495016462.895187551]: Could not find any compatible depth output mode for 1. Falling back to default depth output mode 1.
[ INFO] [1495016462.938451761]: Loading robot model 'sawyer'...
[ INFO] [1495016462.996939730]: Publishing maintained planning scene on 'monitored_planning_scene'
[ INFO] [1495016463.005977717]: MoveGroup debug mode is ON
Starting context monitors...
[ INFO] [1495016463.006036440]: Starting scene monitor
[ INFO] [1495016463.016688848]: Listening to '/planning_scene'
[ INFO] [1495016463.016734632]: Starting world geometry monitor
[ INFO] [1495016463.025046719]: Listening to '/collision_object' using message notifier with target frame '/base '
[ INFO] [1495016463.033351917]: Listening to '/planning_scene_world' for planning scene world geometry
[ INFO] [1495016463.062230866]: Listening to '/attached_collision_object' for attached collision objects
Context monitors started.
[ INFO] [1495016463.110704157]: Initializing OMPL interface using ROS parameters
[ INFO] [1495016463.159454318]: Using planning interface 'OMPL'
[ INFO] [1495016463.189799983]: Param 'default_workspace_bounds' was not set. Using default value: 10
[ INFO] [1495016463.192609516]: Param 'start_state_max_bounds_error' was set to 0.1
[ INFO] [1495016463.195020096]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1495016463.197465266]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1495016463.201089427]: Param 'jiggle_fraction' was set to 0.05
[ INFO] [1495016463.203597709]: Param 'max_sampling_attempts' was not set. Using default value: 100
[ INFO] [1495016463.203654817]: Using planning request adapter 'Add Time Parameterization'
[ INFO] [1495016463.203682529]: Using planning request adapter 'Fix Workspace Bounds'
[ INFO] [1495016463.203711417]: Using planning request adapter 'Fix Start State Bounds'
[ INFO] [1495016463.203723132]: Using planning request adapter 'Fix Start State In Collision'
[ INFO] [1495016463.203761613]: Using planning request adapter 'Fix Start State Path Constraints'
[ WARN] [1495016463.215644770]: 
Deprecation warning: parameter 'allowed_execution_duration_scaling' moved into namespace 'trajectory_execution'.
Please, adjust file trajectory_execution.launch.xml!
[ WARN] [1495016463.217830741]: 
Deprecation warning: parameter 'allowed_goal_duration_margin' moved into namespace 'trajectory_execution'.
Please, adjust file trajectory_execution.launch.xml!
[ INFO] [1495016463.481330910]: Added FollowJointTrajectory controller for /robot/limb/right
[ INFO] [1495016463.481450028]: Returned 1 controllers in list
[ INFO] [1495016463.516304840]: Trajectory execution is managing controllers
Loading 'move_group/ApplyPlanningSceneService'...
Loading 'move_group/ClearOctomapService'...
Loading 'move_group/MoveGroupCartesianPathService'...
Loading 'move_group/MoveGroupExecuteService'...
Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
Loading 'move_group/MoveGroupGetPlanningSceneService'...
Loading 'move_group/MoveGroupKinematicsService'...
Loading 'move_group/MoveGroupMoveAction'...
Loading 'move_group/MoveGroupPickPlaceAction'...
Loading 'move_group/MoveGroupPlanService'...
Loading 'move_group/MoveGroupQueryPlannersService'...
Loading 'move_group/MoveGroupStateValidationService'...
[ INFO] [1495016463.767432287]: 

********************************************************
* MoveGroup using: 
*     - ApplyPlanningSceneService
*     - ClearOctomapService
*     - CartesianPathService
*     - ExecuteTrajectoryService
*     - ExecuteTrajectoryAction
*     - GetPlanningSceneService
*     - KinematicsService
*     - MoveAction
*     - PickPlaceAction
*     - MotionPlanService
*     - QueryPlannersService
*     - StateValidationService
********************************************************

[ INFO] [1495016463.767507058]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
[ INFO] [1495016463.767531704]: MoveGroup context initialization complete

All is well! Everyone is happy! You can start planning now!

[ INFO] [1495016463.848688873]: rgb_frame_id = 'camera_rgb_optical_frame' 
[ INFO] [1495016463.848798099]: depth_frame_id = 'camera_depth_optical_frame' 
[ WARN] [1495016463.876687681]: Camera calibration file /home/sawyer/.ros/camera_info/rgb_A00366907653103A.yaml not found.
[ WARN] [1495016463.876777590]: Using default parameters for RGB camera calibration.
[ WARN] [1495016463.876814517]: Camera calibration file /home/sawyer/.ros/camera_info/depth_A00366907653103A.yaml not found.
[ WARN] [1495016463.876862956]: Using default parameters for IR camera calibration.
[ INFO] [1495016465.779364068]: Stopping device RGB and Depth stream flush.
[ INFO] [1495016466.428636329]: Loading robot model 'sawyer'...
[ INFO] [1495016466.532779604]: Loading robot model 'sawyer'...
[ INFO] [1495016466.585212741]: Starting scene monitor
[ INFO] [1495016466.592453780]: Listening to '/move_group/monitored_planning_scene'
[ INFO] [1495016467.461837577]: No active joints or end effectors found for group ''. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace.
[ INFO] [1495016467.469390902]: Constructing new MoveGroup connection for group 'right_arm' in namespace ''
[ INFO] [1495016468.301998541]: TrajectoryExecution will use old service capability.
[ INFO] [1495016468.302066666]: Ready to take MoveGroup commands for group right_arm.
[ INFO] [1495016468.302105415]: Looking around: no
[ INFO] [1495016468.302133111]: Replanning: no

 

I suspect this line to cause a problem with the self filtering:
[ INFO] [1495016467.461837577]: No active joints or end effectors found for group ''. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace.

 

Did you ever succeed using a Kinect with Sawyer and MoveIt before ?
Could you help me with this problem ?
 
Thanks in advance !

Share this post


Link to post
Share on other sites

Hi Acwok, 

I have the same issue that octomap does not display in Rviz. I also stumbled across the solution you linked. However, it did not solve my problem, when I launch the sawyer_moveit.launch, with Kinect and gripper, I get the following warning: 

[ WARN ] [1499805321.709597996]: Unable to transform object from frame ‘camera_link’ to planning frame ‘/base’ (Lookup would require extrapolation into the past. Requested time 1499805321.720482463 but the earliest data is at time 1499805348.802233425, when looking up transform from frame [camera_link] to frame [base])

couple other forums on the Baxter Robot Research Community are suggesting that this problem might be related to the time synchronization issue https://groups.google.com/a/rethinkrobotics.com/forum/#!searchin/brr-users/lookup$20would$20require/brr-users/9z3h8etJkp0/Pkn4p-J0t3gJ

Just wondering if you had similar warnings in your case. Any other ideas or suggestions as to how to fix this problem will be helpful. 

Bruce

 

Share this post


Link to post
Share on other sites

Hi Bruce,

Maybe the octomap doesn't display because of this bad transform between camera_link and base.

On the link I posted, there was a guy with the same problem as yours. You should check if your robot and PC clock are synchronized. To do that I recommend you to run sawyer_moveit.launch, and in another terminal run: rosrun tf view_frames. This will generate a pdf file (in the folder from which you ran the command) with all the "tree of transforms" known by ROS. If you see for one of them that the "Most recent transform" is really old (like in the picture I attached), it means your robot time is not the same as your PC clock. If they are 0.2sec old or something close to that, it shouldn't be a problem.

In the case of a bad clock synchronisation, you have two solutions:

1) connect Sawyer to internet so that it updates its clock automatically

pros: quick and easy

cons: don't like the idea of letting a robot connected to internet, if you disconnect it from internet the clock will drift with time and problem will come back

2) set a NTP server on your PC and configure Sawyer so that it uses this server to update its time

pros: everything is local, sync for life

cons: takes 10 minutes to set :) (I can make a quick tuto here if you want)

Clément

 

 

preuve_decalage_horloge_1.png

Share this post


Link to post
Share on other sites

Hi Acwok, 

Thank you for the response. I looked at the tf tree, and the "Most recent transform" is around -32 sec old. It's not too bad, but I remember reading somewhere that tf only keeps 10 seconds of data, so that might be an issue. And it would be great if you can guide me through the process of setting up NTP server and configuring Sawyer's clock. Just to be clear, currently, the PC is connected to the robot using a Ethernet cable, if that changes anything. 

Again, thanks for the quick response.

Bruce

Share this post


Link to post
Share on other sites

Hi Bruce,

I have the same configuration. To make the synchronisation of the clocks, you have to follow the following steps:

run sudo gedit /etc/ntp.conf on your computer

under the “# Use servers from the NTP Pool Project” section, you can specify to use ntp server addresses close to your location. Just add the keyword iburst at the end of each server line to force our computer ntp server to synchronize its current time with these servers as soon as it is launched. You should have something like:

server 0.ubuntu.pool.ntp.org iburst

server 1.ubuntu.pool.ntp.org iburst

server 2.ubuntu.pool.ntp.org iburst

server 3.ubuntu.pool.ntp.org iburst

 

under the ”# Use Ubuntu's ntp server as a fallback. ” section, add the following lines:

server 127.127.1.0

fudge 127.127.1.0 stratum 8

 

At the end of the file add the following lines:

# Allow LAN machines to synchronize with this ntp server

restrict 169.254.0.0 mask 255.255.0.0 nomodify notrap

This will allow machines present on the network 169.254.0.0 to get the current time this computer. You have to put your network address (you can find it with ifconfig eth0).

 

The server should now be operational just run sudo /etc/init.d/ntp restart to restart it.

The next step is to tell Sawyer to connect to this server to synchronize with the computer's clock.

To do this:

  • enter Sawyer's FSM menu. To enter the FSM menu, reboot the robot and only start hitting Ctrl+F when Sawyer face appear. Continue until a menu appears (it is very very long like 1 or 2 min)

  • click on “Configuration” button

  • in the NTP server list, add the static ip of the computer in first position.

    Note: don't forget to put a comma to separate servers' addresses.

  • Set the current location as needed.

  • click “save” button and reboot Sawyer.

 

Everything should work.

Clément

 

 

  • Upvote 1

Share this post


Link to post
Share on other sites

Hi clement, 

Thank you for the tutorial. In adding NTP server list to the robot, do I have to put my computer's IP as the first item in the list? I'm quite confused as how to add it to the list. Currently the list has "0.ubuntu.pool.ntp.org, 1.ubuntu.pool.ntp.org, 2.ubuntu.pool.ntp.org, 3.ubuntu.pool.ntp.org, ntp.ubuntu.com", I simply added my computer's local IP to the list  "0.ubuntu.pool.ntp.org, 1.ubuntu.pool.ntp.org, 2.ubuntu.pool.ntp.org, 3.ubuntu.pool.ntp.org, ntp.ubuntu.com, 196.254.0.0". However, when I run the launch file again, I'm still getting time offset of around 30 seconds. Also,  when looking up local IP using "ifconfig eth0", I realize that eth0 is not configured. I assume that I need to assign static IP first before setting up the NTP server? 

Bruce

Share this post


Link to post
Share on other sites

Hi Bruce, 

6 hours ago, Bruce said:

do I have to put my computer's IP as the first item in the list?

I put mine at the beginning of the list to be sure it tries to connect to it first as it cannot connect to the other ones (because no internet).

6 hours ago, Bruce said:

I'm quite confused as how to add it to the list

You have done it well :)

6 hours ago, Bruce said:

I simply added my computer's local IP to the list

You are connected to your robot via ethernet cable, so you certainly have edited intera.sh when installing ROS and Sawyer SDK: http://sdk.rethinkrobotics.com/intera/Workstation_Setup#Configure_Robot_Communication.2FROS_Workspace

The tutorial asks to fulfill  your_ip="192.168.XXX.XXX" in this ./intera.sh. It is this same address that you should give to Sawyer.

In my configuration, this address is static.

6 hours ago, Bruce said:

I realize that eth0 is not configured.

That's weird... Maybe it is not eth0 if you have multiple ethernet port or a switch. Try ifconfig and look for eth something, there should be the same address as the one you set in intera.sh

Clément

  • Upvote 1

Share this post


Link to post
Share on other sites

Hi Clement, 

Thank you so much for the help, now the time on the robot is synced with my PC and octomap does display in Rviz. Your solution on the google forum works great. One last question, somewhat unrelated, the octomap updates very slowly, do you experience the similar behavior? Also the point cloud generated by the Kinect has very poor quality, this might be an issue when doing object detection. Our goal is to identify blocks using the Kinect, send the block locations to the robot and for it to pick them up. Do you have any idea as to how to accomplish that? I noticed that "/MoveGroupPickPlaceAction" is a capability of MoveIt, but haven't found any useful resource on how to use it. 

Bruce  

Share this post


Link to post
Share on other sites

Hi Bruce,

I am glad it worked :). Hope Rethink Robotics will see this post and correct the launch files.

Yes the octomap updates very slowly. The only solution I found was to reduce the resolution and the max_range in the .launch and .yaml files. I set the resolution to 10cm, I know it is huge but I can grab objects ^^.

I haven't made object detection but you should check out the ROS VISP package. Otherwise, to grab an object you can just use the SDK Limb.close(). I haven't spent time on /MoveGroupPickPlaceAction.

Let me know if you find a way of speeding up the octomap update without loosing accuracy.

Clément

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now