ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

vincent's profile - activity

2021-10-06 01:35:20 -0500 received badge  Famous Question (source)
2016-03-02 19:19:51 -0500 received badge  Nice Question (source)
2014-06-27 07:52:06 -0500 received badge  Good Question (source)
2014-04-20 06:53:33 -0500 marked best answer how to calculate the odometry for irobot create robot

Hi,

I'm trying to understand how the odometry is calculated in irobot_create_2_1 driver. I spent lots of time trying to figure out where the minus sign comes from in y=-sin(th)*d, on the 53th line in driver.py. I've included the code snippet. I also included the odometry calculation part in turtlebot_node.py from turtlebot stack, which does the same thing but easier for me to understand.

Can anyone give me a hint or let me know where I can find good resource on mobile robot odometry/kinematics in order to understand the whole scenario. Thanks

From driver.py

00046                 d = self.create.d_distance / 1000.
00047                 th = self.create.d_angle*pi/180
00048                 dx = d / elapsed
00049                 dth = th / elapsed
00050 
00051                 if (d != 0):
00052                         x = cos(th)*d
00053                         y = -sin(th)*d
00054                         self.x = self.x + (cos(self.th)*x - sin(self.th)*y)
00055                         self.y = self.y + (sin(self.th)*x + cos(self.th)*y)
00056 
00057                 if (th != 0):
00058                         self.th = self.th + th

From turtlebot_node.py

    # this is really delta_distance, delta_angle
    d  = sensor_state.distance * self.odom_linear_scale_correction #correction factor from calibration
    angle = sensor_state.angle * self.odom_angular_scale_correction #correction factor from calibration

    x = cos(angle) * d
    y = -sin(angle) * d

    last_angle = self._pos2d.theta
    self._pos2d.x += cos(last_angle)*x - sin(last_angle)*y
    self._pos2d.y += sin(last_angle)*x + cos(last_angle)*y
    self._pos2d.theta += angle

I've attached my calculation as below, can someone point out where went wrong? image description

2014-04-20 06:53:29 -0500 marked best answer communication between winros and ubuntu didn't work

Hi there,

I was testing the ROS communication between a windows vista laptop running winros, and a ubuntu desktop, based on instructions on this wiki page.

I run the talker.py node on one machine and listener.py node on the other. I can see the node and topic list on the listener side in command line. It seems fine. But the listener node is not picking up the message on /talker topic.

I tried the network communication tutorial on ubuntu machines and had no problems. So I suspect that the problem is on the windows side.(It works if I run talker and listener nodes both on winros).

Does anyone know what went wrong here?

Thanks

2014-04-20 06:52:36 -0500 marked best answer roscpp failure to call service written in rospy

Is it ok to write a Ros node in cpp to call a ros service written in python? I'm able to use "rosservice call /service" to do that, but using cpp to call the same service just didn't work. Just want to know is it some problem with my code or just simply cannot call rospy service in roscpp.

Thanks,

2014-04-20 06:52:35 -0500 marked best answer Wrap Microsoft Robotics Developer Studio Driver as a ROS node

We have a RobuCAR in our lab, whose driver was originally written under Microsoft Robotics Developer Studio(MRDS), provided by RoboSoft company. We want to switch the platform to ROS. But as the API of the controller board of RobuCAR is not given by Robosoft, we could not write the ROS driver for it. We are considering wrapping the driver under MRDS as a ROS node, but not sure if it is feasible or how to do it.

Does anyone have experience with this type of work? eg., low-level control with MRDS and high-level with ROS. Any suggestion is highly appreciated.

Vincent

Edited: I have to correct something that i said in the comment. Robosoft didn't provide ROS support for the RobuCAR. But they were very kind in providing the protocol for communication with the control board, for free, which is quite nice for us. So it is possible to develop a ROS driver for it now. Robosoft rocks! :)

2014-04-20 06:48:39 -0500 marked best answer how to generate documentation for msg/srv files using rosdoc

Hi

I want to generate Msg/Srv API documentation for my local ROS package. I run

$./rosdoc -o docPATH <package>

But I only see documentation for autogenerated code from srv.

Thank you in advance.

2014-04-20 06:48:08 -0500 marked best answer AddingSensorsToPR2 tutorial errors

Hi guys,

I am going through the urdf/Tutorials/AddingSensorsToPR2 tutorial. This tutorial basically shows how to add new links and attach sensors to a link in gazebo. Although the new links and joints can be added and viewed properly:

image description

I can find the ROS topic for the added camera. Here is a part of my xacro file, slightly modified from the original file on the tutorial page.

 <gazebo reference="finger_tip_camera_link">
  <sensor:camera name="finger_tip_camera_sensor">
    <imageSize>640 480</imageSize>
    <imageFormat>BAYER_BGGR8</imageFormat>
    <hfov>90</hfov>
    <nearClip>0.01</nearClip>
    <farClip>100</farClip>
    <updateRate>25.0</updateRate>
    <controller:gazebo_ros_camera name="finger_tip_camera_controller" plugin="libgazebo_ros_camera.so">
      <alwaysOn>true</alwaysOn>
      <updateRate>25.0</updateRate>
      <imageTopicName>finger_tip_cam/image</imageTopicName>
      <cameraInfoTopicName>finger_tip_cam/camera_info</cameraInfoTopicName>
      <frameName>finger_tip_camera_link</frameName>
      <interface:camera name="finger_tip_camera_iface" />
    </controller:gazebo_ros_camera>
  </sensor:camera>
  <turnGravityOff>true</turnGravityOff>
  <material>PR2/Blue</material>
  </gazebo>

I didn't see any error message, just couldn't find the ROS image topic, which should be finger_tip_cam/image in this case.

Any idea what goes wrong and where can I find the documentation on the syntax of gazebo_plugin. The Ros Camera Plugin XML Reference and Example here is fairly limited, not detailed enough for me to understand...

2014-04-20 06:48:04 -0500 marked best answer error installing openni_kinect from source code

I was trying to do the source-based installation of openni_kinect following the instructions here.

But when I typed make, it stopped with some errors:

g++ -MD -MP -MT "./Release/XnSensorImageGenerator.d Release/XnSensorImageGenerator.o" -c -malign-double -O2 -DNDEBUG -I/usr/include/openni -I../../../../Include -I../../../../Source -I../../../../Source/XnCommon -DXN_DEVICE_EXPORTS -fPIC -fvisibility=hidden -o Release/XnSensorImageGenerator.o ../../../../Source/XnDeviceSensorV2/XnSensorImageGenerator.cpp
../../../../Source/XnDeviceSensorV2/XnSensorImageGenerator.cpp: In member function ‘virtual XnStatus XnExportedSensorImageGenerator::EnumerateProductionTrees(xn::Context&, xn::NodeInfoList&, xn::EnumerationErrors*)’:
../../../../Source/XnDeviceSensorV2/XnSensorImageGenerator.cpp:397: error: no matching function for call to ‘xn::Context::CreateProductionTree(xn::NodeInfo&, xn::Device&)’
/usr/include/openni/XnCppWrapper.h:4827: note: candidates are: XnStatus xn::Context::CreateProductionTree(xn::NodeInfo&)
make[3]: *** [Release/XnSensorImageGenerator.o] Error 1
make[3]: Leaving directory `/home/vincent/drivers/ps_engine/build/ps_engine/Platform/Linux-x86/Build/XnDeviceSensorV2'
make[2]: *** [XnDeviceSensorV2] Error 2

make[2]: Leaving directory `/home/vincent/drivers/ps_engine/build/ps_engine/Platform/Linux-x86/Build'
make[1]: *** [installed] Error 2
make[1]: Leaving directory `/home/vincent/drivers/ps_engine'
make: *** [ps_engine_lib] Error 2

Has someone had the same problems before?

2014-04-20 06:48:02 -0500 marked best answer how to rebuild/update graspit-simulator package

Hi all,

I downloaded graspit simulator from debs.

sudo apt-get install ros-diamondback-graspit-simulator

It runs well.

Now I changed part of the source code and want to rebuild the package graspit. I added the patch file "new.patch" to the Makefile.graspit.tarball in the root directory of graspit package:

TARBALL_PATCH=graspit/graspit_project.patch graspit/graspit_dbase.patch

to

TARBALL_PATCH=graspit/graspit_project.patch graspit/graspit_dbase.patch graspit/new.patch

I thought i can just rebuild the package by typing rosmake graspit. But it didn't build saying there is a ROS_BUILD there. So I removed this file to allow rosmake to take effect. But then it goes:

[rosmake-0] Starting >>> graspit [ make ]                                       
[ rosmake ] All 2 linesgraspit: 0.0 sec ]            [ 1 Active 45/46 Complete ]
{-------------------------------------------------------------------------------
  mkdir: cannot create directory `build': Permission denied
-------------------------------------------------------------------------------}
[ rosmake ] Output from build of package graspit written to:
[ rosmake ]    /home/vincent/.ros/rosmake/rosmake_output-20110820-164256/graspit/build_output.log
[rosmake-0] Finished <<< graspit [FAIL] [ 0.05 seconds ]

Can someone help me out with this and tell me what's the standard procedure of patching and rebuilding a ROS package? Thanks.

2014-04-20 06:48:01 -0500 marked best answer The Pick and Place Autonomous Demo, grasping error

Hi all

I was going through the pr2_pick_and_place_demos/Tutorials/The Pick and Place Autonomous Demo. A simulated pr2 was running. The robot always succeed to find the table, move the arm but finally failed to grasp the object, the gripper always stopped nearby the object and reported an error(I have tried different simple objects from gazebo_worlds/objects).

Here is the output from rviz, gazebo, PR2 Dashboard(/rosout) and terminal. Can someone tell me what could possibly go wrong? Thanks. BTW, I was using Diamondback. In the terminal with pr2_tabletop_manipulation.launch, it shows

[ WARN] [1313335466.622271285, 3307.596000000]: waiting for rgbd assembler at /rgbd_assembly
[ INFO] [1313335466.632494052, 3307.596000000]: waitForService: Service [/rgbd_assembly] has not been advertised, waiting...

Don't know if that affects anything.

rviz

gazebo

PR2 Dashboard, Rosout message:

header: 
  seq: 13383
  stamp: 3451.653000000
  frame_id: 
level: 8
name: /object_manipulator
msg: Hand posture controller timed out on goal (1)
file: /tmp/buildd/ros-diamondback-object-manipulation-0.4.4/debian/ros-diamondback-object-manipulation/opt/ros/diamondback/stacks/object_manipulation/object_manipulator/src/tools/mechanism_interface.cpp
function: MechanismInterface::handPostureGraspAction
line: 975
topics[]
  topics[0]: /rosout
  topics[1]: /object_manipulator/grasp_execution_markers
  topics[2]: /object_manipulator/object_manipulator_pickup/result
  topics[3]: /object_manipulator/object_manipulator_pickup/feedback
  topics[4]: /object_manipulator/object_manipulator_pickup/status
  topics[5]: /object_manipulator/object_manipulator_place/result
  topics[6]: /object_manipulator/object_manipulator_place/feedback
  topics[7]: /object_manipulator/object_manipulator_place/status
  topics[8]: /head_traj_controller/point_head_action/goal
  topics[9]: /head_traj_controller/point_head_action/cancel
  topics[10]: /attached_collision_object
  topics[11]: /r_cart/command_pose
  topics[12]: /l_cart/command_pose
  topics[13]: /move_left_arm/goal
  topics[14]: /move_left_arm/cancel
  topics[15]: /l_gripper_grasp_posture_controller/goal
  topics[16]: /l_gripper_grasp_posture_controller/cancel
  topics[17]: /move_right_arm/goal
  topics[18]: /move_right_arm/cancel
  topics[19]: /r_gripper_grasp_posture_controller/goal
  topics[20]: /r_gripper_grasp_posture_controller/cancel


header: 
  seq: 13384
  stamp: 3451.653000000
  frame_id: 
level: 8
name: /object_manipulator
msg: Grasp error; exception: grasp execution:mechanism:Hand posture controller timed out
file: /tmp/buildd/ros-diamondback-object-manipulation-0.4.4/debian/ros-diamondback-object-manipulation/opt/ros/diamondback/stacks/object_manipulation/object_manipulator/src/object_manipulator.cpp
function: ObjectManipulator::pickup
line: 240
topics[]
  topics[0]: /rosout
  topics[1]: /object_manipulator/grasp_execution_markers
  topics[2]: /object_manipulator/object_manipulator_pickup/result
  topics[3]: /object_manipulator/object_manipulator_pickup/feedback
  topics[4]: /object_manipulator/object_manipulator_pickup/status
  topics[5]: /object_manipulator/object_manipulator_place/result
  topics[6]: /object_manipulator/object_manipulator_place/feedback
  topics[7]: /object_manipulator/object_manipulator_place/status
  topics[8]: /head_traj_controller/point_head_action/goal
  topics[9]: /head_traj_controller/point_head_action/cancel
  topics[10]: /attached_collision_object
  topics[11]: /r_cart/command_pose
  topics[12]: /l_cart/command_pose
  topics[13]: /move_left_arm/goal
  topics[14]: /move_left_arm/cancel
  topics[15]: /l_gripper_grasp_posture_controller/goal
  topics[16]: /l_gripper_grasp_posture_controller/cancel
  topics[17]: /move_right_arm/goal
  topics[18]: /move_right_arm/cancel
  topics[19]: /r_gripper_grasp_posture_controller/goal
  topics[20]: /r_gripper_grasp_posture_controller/cancel

Terminal with pick_and_place_demo.py

[INFO] [WallTime: 1313333951.928096] [0.000000] grasp_executive: waiting for object_manipulator_pickup action
[INFO] [WallTime: 1313333952.319281] [3134.483000] grasp_executive: object_manipulator_pickup action found
[INFO] [WallTime: 1313333952.405726] [3134.490000] grasp_executive: waiting for object_manipulator_place action
[INFO] [WallTime: 1313333953.660155] [3134.612000] grasp_executive: object_manipulator_place action found
[INFO] [WallTime: 1313333953.780220] [3134.621000] grasp_executive: waiting for point_head_action client
[INFO] [WallTime: 1313333955.345885] [3134.802000] grasp_executive: point_head_action client found
[INFO] [WallTime: 1313333955.620685] [3134.824000] grasp_executive: waiting for reactive place clients
[INFO] [WallTime: 1313333956.402844] [3134.915000] grasp_executive: reactive place clients found
[INFO] [WallTime: 1313333956.404042] [3134.915000] initializing controller managers for both arms ...
(more)
2014-04-20 06:48:01 -0500 marked best answer displaying point cloud in rviz from .bag files, error

I am trying to read .bag files, display the point cloud data in rviz.

rosbag play -l refined_point_clouds.bag 
[ INFO] [1313454488.757094980]: Opening refined_point_clouds.bag

Waiting 0.2 seconds after advertising topics... done.

Hit space to toggle paused, or 's' to step.
 [RUNNING]  Bag Time: 1284056763.769318   Duration: 1.105802 / 4.917923

But I got the following error, image description

saying that

For frame [narrow_stereo_optical_frame]: No transform to fixed frame [/base_link]. TF error: [You requested a transform that is -1284043982668.005 miliseconds in the past, but the most recent transform in the tf buffer is -1284043980431.589 miliseconds old. ]

The coordinate frame in rviz was set as

image description

The point cloud would appear correctly if i changed the fixed frame to /narrow_stereo_optical_frame.

The error seems related with the tf conversion time longer than the buffer can take.Confused... Could someone explain it to me? How can I avoid this problem, 'cuz I always stuck in this kind of problem... Thanks~

2014-04-20 06:48:01 -0500 marked best answer visualizing 3D objects from household_objects_database and grasp playpen dataset

Hi there,

As said in the subject line, I want to find a way to visualize the objects from household_objects_database, and from grasp playpen dataset (which is in .bag format).

I looked up the threads in ROS community and there exists one solution on the household database. From this thread, http://answers.ros.org/question/706/household_database-visualization, it appears that someone had made a 'urdf' copy of the household_objects_database, then we could try spawning the objects in gazebo from those urdf files.

Is there some other ways of doing that? And for objects in .bag format, how to visualize that, or say how to import that to gazebo or rviz?(all I know now is I can use rosbag to play back the data and put it in rviz). Is there any existing tool to do that, or I need to do some programming by myself. Any suggestion would help me in getting an idea of where to start. I think this should be helpful to those who want to make use of those two datasets. Thanks.

2014-04-20 06:48:01 -0500 marked best answer Does 'Battery' matter to simulated pr2 robot

I noticed that, when running pr2 in simulation for a long time, the battery will go down eventually to 0. Does that matter when there's no battery, if so, how to charge it? Thanks

2014-04-20 06:48:00 -0500 marked best answer Is there a more advanced keyboard teleop controller for pr2

There is a keyboard teleoperation program in pr2_teleop package. But it only provides very basic movement on the base. I am writing a more advanced keyboard controller, just like the Joystick teleoperation controller did, but I was wondering if there is already some similar keyboard controller there to save my work~ Anyone knows this? Thank you

2014-04-20 06:48:00 -0500 marked best answer `Frame id /base_link does not exist` in pr2 simulation

I had pr2 robot running in gazebo.

I want to get the pose of r_wrist_roll_link with respect to base_link but got an error here.

$ rosrun tf tf_echo base_link r_wrist_roll_link
Failure at 146370.940000000
Exception thrown:Frame id /base_link does not exist! When trying to transform between   /r_wrist_roll_link and /base_link.
The current list of frames is:

At time 146371.172
- Translation: [0.590, -0.360, 0.930]
- Rotation: in Quaternion [0.651, -0.211, 0.381, 0.621]
        in RPY [1.475, -0.860, 0.310]
At time 146371.202
- Translation: [0.590, -0.360, 0.930]
- Rotation: in Quaternion [0.652, -0.210, 0.381, 0.621]
        in RPY [1.475, -0.860, 0.310]

Any idea what's the problem?

[UPDATE] It seems that it just can't find tf from base_link to r_wrist_roll_link at first, but then it gives the correct transform. I wrote some code to check the transform,

// get the position of r_wrist_roll_link
ros::Duration(0.1).sleep(); 
tf::StampedTransform transform;
try{
  listener.lookupTransform("base_link", "r_wrist_roll_link",
                           ros::Time(0), transform);
}   
catch (tf::TransformException ex){
  ROS_ERROR("%s",ex.what());
}

It works fine but if I comment out the line ros::Duration(0.1).sleep(), it gives same error as in tf_echo. Maybe it's because transform listener needs some time to get some frames. Not sure if that's the problem of tf_echo.

Here is the output of roswtf and view_frames shows both base_link and r_wrist_roll_link.

Loaded plugin tf.tfwtf
Package: supercontroller_keyboard
================================================================================
Static checks summary:

Found 1 warning(s).
Warnings are things that may be just fine, but are sometimes at fault

WARNING The following packages have msg/srv-related cflags exports that are no longer necessary
    <export>
        <cpp cflags="..."
    </export>:
 * motion_planning_msgs: -I${prefix}/msg/cpp -I${prefix}/srv/cpp
 * kinematics_msgs: -I${prefix}/msg/cpp -I${prefix}/srv/cpp
 * geometric_shapes_msgs: -I${prefix}/msg/cpp
 * mapping_msgs: -I${prefix}/msg/cpp


================================================================================
Beginning tests of your ROS graph. These may take awhile...
analyzing graph...
... done analyzing graph
running graph rules...
... done running graph rules
running tf checks, this will take a second...
... tf checks complete

Online checks summary:

Found 3 warning(s).
Warnings are things that may be just fine, but are sometimes at fault

WARNING The following node subscriptions are unconnected:
 * /head_traj_controller/point_head_action:
   * /head_traj_controller/point_head_action/cancel
   * /head_traj_controller/point_head_action/goal
 * /l_gripper_controller/gripper_action_node:
   * /l_gripper_controller/gripper_action/cancel
   * /l_gripper_controller/gripper_action/goal
 * /gazebo:
   * /head_traj_controller/joint_trajectory_action/cancel
   * /r_arm_controller/joint_trajectory_action/goal
   * /gazebo/set_link_state
   * /l_arm_controller/command
   * /projector_wg6802418_controller/image
   * /set_hfov
   * /torso_controller/joint_trajectory_action/cancel
   * /torso_controller/joint_trajectory_action/goal
   * /plugged_in    ================================================================================
Beginning tests of your ROS graph. These may take awhile...
analyzing graph...
... done analyzing graph
running graph rules...
... done running graph rules
running tf checks, this will take a second...
... tf checks complete

Online checks summary:

Found 3 warning(s).
Warnings are things that may be just fine, but are sometimes at fault

WARNING The following node subscriptions are unconnected:
 * /head_traj_controller/point_head_action:
   * /head_traj_controller/point_head_action/cancel
   * /head_traj_controller/point_head_action/goal
 * /l_gripper_controller/gripper_action_node:
   * /l_gripper_controller/gripper_action/cancel
   * /l_gripper_controller/gripper_action/goal
 * /gazebo:
   * /head_traj_controller/joint_trajectory_action/cancel
   * /r_arm_controller/joint_trajectory_action/goal
   * /gazebo/set_link_state
   * /l_arm_controller/command
   * /projector_wg6802418_controller/image
   * /set_hfov
   * /torso_controller/joint_trajectory_action ...
(more)
2014-04-20 06:48:00 -0500 marked best answer pr2controller tutorial, quaternion not the same for same program in python and cpp

I just went through pr2_controllers/Tutorials/Moving the arm through a Cartesian pose trajectory.

I tried to rewrite the client program from python to cpp. The program worked but got different quaternion vector(x,y,z,w) with the result from the original program.

The original code snippet from the tutorial:

#pretty-print list to string
def pplist(list):
  return ' '.join(['%2.3f'%x for x in list])

#print out the positions, velocities, and efforts of the right arm joints
if __name__ == "__main__":
rospy.init_node("test_cartesian_ik_trajectory_executer")
tf_listener = tf.TransformListener()
time.sleep(.5) #give the transform listener time to get some frames

# not needed, fix tutorial
joint_names = ["r_shoulder_pan_joint",
               "r_shoulder_lift_joint",
               "r_upper_arm_roll_joint",
               "r_elbow_flex_joint",
               "r_forearm_roll_joint",
               "r_wrist_flex_joint",
               "r_wrist_roll_joint"]

positions = [[.76, -.19, .83], [0.59, -0.36, 0.93]]
orientations = [[.02, -.09, 0.0, 1.0], [0.65, -0.21, .38, .62]]

success = call_execute_cartesian_ik_trajectory("/base_link", \
        positions, orientations)

#check the final pose
(trans, rot) = tf_listener.lookupTransform('base_link', 'r_wrist_roll_link', rospy.Time(0))
print "end Cartesian pose: trans", pplist(trans), "rot", pplist(rot)

The result pose is

 end Cartesian pose: trans 0.590 -0.360 0.930 rot 0.651 -0.211 0.381 0.621

which agrees with the result by doing rosrun tf tf_echo base_link r_wrist_roll_link

But the result of my program is

 end Cartesian pose: trans,0.59,-0.36,0.93,rol,0.83,-0.27,0.49,0.00

Here is the code snippet:

   tf::TransformListener listener;
   ros::NodeHandle node;

   ROS_INFO("Now calling the client function...");
   success = call_execute_cartesian_ik_trajectory(node, "base_link", position, orientations);

   ROS_INFO("Finished calling");
   tf::StampedTransform transform;
   try{
      listener.lookupTransform("base_link", "r_wrist_roll_link", 
                           ros::Time(0), transform);
   }   
   catch (tf::TransformException ex){
      ROS_ERROR("%s",ex.what());
   }   

   ROS_INFO("end Cartesian pose: trans,%3.2f,%3.2f,%3.2f,rol,%3.2f,%3.2f,%3.2f,%3.2f \n ", transform.getOrigin().x(),transform.getOrigin().y(),transform.getOrigin().z(),transform.getRotation().getAxis().x(),transform.getRotation().getAxis().y(),transform.getRotation().getAxis().z(),transform.getRotation().getAxis().w());

I guess the error lies in misuse of the function transform.getRotation().getAxis().x()

Can someone point out what went wrong? Thanks.

2014-04-20 06:48:00 -0500 marked best answer rewriting python program in cpp, how to fill in the header field in msg

Hi all,

I am reading the pr2_controllers/Tutorials/Moving the arm through a Cartesian pose trajectory.

At the end of this tutorial, there is a test client program written in python, which send Cartesian trajectories to the service. I got a problem when I was trying to rewrite it in c++.

  13 #execute a Cartesian trajpr2_controllersTutorialsMoving the arm through a Cartesian pose trajectoryectory defined by a root frame, a list of 
  14 #positions (x,y,z), and a list of orientations (quaternions: x,y,z,w)
  15 def call_execute_cartesian_ik_trajectory(frame, positions, orientations):
  16     rospy.wait_for_service("execute_cartesian_ik_trajectory")
  17 
  18     #fill in the header (don't need seq)
  19     header = roslib.msg.Header()
  20     header.frame_id = frame
  21     header.stamp = rospy.get_rostime()

Here the header was filled, I am not sure if I need to do the same thing in c++ and if so, what's the corresponding code that I should be using?

Maybe a very basic question, but I just couldn't find the answer and very confused.
Can someone help me with this? Thank you.

2014-04-20 06:47:52 -0500 marked best answer database for grasping include raw sensor data?

Hi all,

I am doing some research on robot grasping. Now I need a database with object models and the raw sensor data(point cloud). As far as I know, there are 3 databases that I can use, "cgdb", "household_objects_database", and "KIT ObjectModels Web Database". But for cgdb and household_objects_database, it seems that no raw sensor data are included. Is this the case? Where can i find corresponding sensor data for these objects.

I also need to use Graspit! simulator to test the grasp of a certain robot hand on the objects in the database. I think I would need an interface between Graspit! and these databases for the conversion of the object format . Anyone knows if there is an existing interface or do i have to write my own?

Not sure if it is a good place to ask. Please advise me if so. Thanks in advance.

2014-04-20 06:47:51 -0500 marked best answer openni_kinect lauching error

Hi

The openni_kinect driver worked well on my computer, with Diamondback and Ubuntu 10.04 x64. But now when I try to start it, it gives an error, which is the same as in this thread openni launching errors

None of the solutions could solve the problem for me.

Before the error appears, I cleaned and reinstalled perception_pcl stack and perception_pcl_addons stack. Not sure if this is related to the error.(I did rosmake openni_kinect and openni_camera)

Here is the output

... logging to /home/vincent/.ros/log/093add86-a0ee-11e0-93c2-d4856407c2d5/roslaunch-vincent-desktop-1308.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://vincent-desktop:43042/

SUMMARY
========

PARAMETERS
 * /rosdistro
 * /openni_node1/use_indices
 * /openni_node1/depth_registration
 * /openni_node1/image_time_offset
 * /openni_node1/depth_frame_id
 * /openni_node1/depth_mode
 * /openni_node1/debayering
 * /rosversion
 * /openni_node1/projector_depth_baseline
 * /openni_node1/rgb_frame_id
 * /openni_node1/depth_rgb_translation
 * /openni_node1/depth_time_offset
 * /openni_node1/image_mode
 * /openni_node1/shift_offset
 * /openni_node1/device_id
 * /openni_node1/depth_rgb_rotation

NODES
  /
    openni_node1 (openni_camera/openni_node)
    kinect_base_link (tf/static_transform_publisher)
    kinect_base_link1 (tf/static_transform_publisher)
    kinect_base_link2 (tf/static_transform_publisher)
    kinect_base_link3 (tf/static_transform_publisher)

auto-starting new master
process[master]: started with pid [1322]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 093add86-a0ee-11e0-93c2-d4856407c2d5
process[rosout-1]: started with pid [1335]
started core service [/rosout]
process[openni_node1-2]: started with pid [1347]
process[kinect_base_link-3]: started with pid [1348]
process[kinect_base_link1-4]: started with pid [1349]
process[kinect_base_link2-5]: started with pid [1350]
process[kinect_base_link3-6]: started with pid [1357]
[ INFO] [1309200506.146912253]: [/openni_node1] Number devices connected: 1
[ INFO] [1309200506.147098848]: [/openni_node1] 1. device on bus 001:19 is a Xbox NUI Camera (2ae) from Microsoft (45e) with serial id 'A00366A18480046A'
[ INFO] [1309200506.151439147]: [/openni_node1] searching for device with index = 1
[ INFO] [1309200506.225302725]: [/openni_node1] Opened 'Xbox NUI Camera' on bus 1:19 with serial number 'A00366A18480046A'
[ INFO] [1309200506.260280871]: rgb_frame_id = '/openni_rgb_optical_frame' 
[ INFO] [1309200506.265424478]: depth_frame_id = '/openni_depth_optical_frame' 
[openni_node1-2] process has died [pid 1347, exit code -11].
log files: /home/vincent/.ros/log/093add86-a0ee-11e0-93c2-d4856407c2d5/openni_node1-2*.log

The log file says

[roscpp_internal] [2011-06-27 15:48:24,344] [thread 0x7feb0e4e47c0]: [DEBUG] UDPROS server listening on port [45680]
[roscpp_internal] [2011-06-27 15:48:24,354] [thread 0x7feb0e4e47c0]: [DEBUG] Started node [/openni_node1], pid [1347], bound on [vincent-desktop], xmlrpc port [59629], tcpros port [46407], logging to [/home/vincent/.ros/log/093add86-a0ee-11e0-93c2-d4856407c2d5/openni_node1-2.log], using [real] time
[roscpp_internal] [2011-06-27 15:48:24,364] [thread 0x7feb0e4e47c0]: [DEBUG] XML-RPC call [getParam] returned an error (-1): [Parameter [/openni_node1/num_worker_threads] is not set]
[roscpp_internal] [2011-06-27 15:48:24,596] [thread 0x7feb017e9700]: [DEBUG] Accepted connection on socket [7], new socket [16]
[roscpp_internal] [2011-06-27 15:48:24,597] [thread 0x7feb017e9700]: [DEBUG] TCPROS received a connection from [127.0.1.1:51450]
[roscpp_internal] [2011-06-27 15:48:24,597] [thread 0x7feb017e9700]: [DEBUG] Connection: Creating TransportSubscriberLink for topic [/rosout] connected to [callerid=[/rosout] address=[TCPROS connection to [127.0.1.1:51450 on socket 16]]]
[ros.openni_camera./openni_node1] [2011-06-27 15:48:26,146] [thread 0x7feb0e4e47c0]: [INFO] [/openni_node1] Number devices connected: 1
[ros.openni_camera./openni_node1] [2011-06-27 15:48:26,147] [thread 0x7feb0e4e47c0]: [INFO] [/openni_node1] 1. device on bus 001:19 is a Xbox NUI Camera (2ae) from Microsoft (45e) with serial id 'A00366A18480046A'
[ros ...
(more)
2014-04-20 06:47:42 -0500 marked best answer Kinect with openni_kinect driver not working after installing PrimeSensor Module

Hi,

I am using Ubuntu 10.04 x64 and ROS diamond. My Kinect worked well with openni_kinect driver. Following instructions on this link, I could view the data from kinect.

However, after i installed PrimeSensor Module Stable Build for Ubuntu 10.10 x64 (64-bit) v5.0.1.31(There is no module for Ubuntu 10.04), when I tried to view the data using openni_camera package,

roslaunch openni_camera openni_node.launch

It shows no device connected...

vincent@vincent-desktop:~$ roslaunch openni_camera openni_node.launch 
... logging to /home/vincent/.ros/log/adc93df0-9164-11e0-a0f9-d4856407c2d5/roslaunch-vincent-desktop-6608.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://vincent-desktop:36150/

SUMMARY
========

PARAMETERS
 * /rosdistro
 * /openni_node1/use_indices
 * /openni_node1/depth_registration
 * /openni_node1/image_time_offset
 * /openni_node1/depth_frame_id
 * /openni_node1/depth_mode
 * /openni_node1/debayering
 * /rosversion
 * /openni_node1/projector_depth_baseline
 * /openni_node1/rgb_frame_id
 * /openni_node1/depth_rgb_translation
 * /openni_node1/depth_time_offset
 * /openni_node1/image_mode
 * /openni_node1/shift_offset
 * /openni_node1/device_id
 * /openni_node1/depth_rgb_rotation

NODES
  /
    openni_node1 (openni_camera/openni_node)
    kinect_base_link (tf/static_transform_publisher)
    kinect_base_link1 (tf/static_transform_publisher)
    kinect_base_link2 (tf/static_transform_publisher)
    kinect_base_link3 (tf/static_transform_publisher)

auto-starting new master
process[master]: started with pid [6622]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to adc93df0-9164-11e0-a0f9-d4856407c2d5
process[rosout-1]: started with pid [6635]
started core service [/rosout]
process[openni_node1-2]: started with pid [6643]
process[kinect_base_link-3]: started with pid [6646]
process[kinect_base_link1-4]: started with pid [6649]
process[kinect_base_link2-5]: started with pid [6656]
process[kinect_base_link3-6]: started with pid [6659]
[ INFO] [1307492242.533491680]: [/openni_node1] No devices connected.... waiting for devices to be connected
[ INFO] [1307492243.539974658]: [/openni_node1] No devices connected.... waiting for devices to be connected
[ INFO] [1307492244.546529572]: [/openni_node1] No devices connected.... waiting for devices to be connected

I guess this is a conflict between openni_kinect driver and PrimeSensor Module. Can someone help me fix this?

Output of lsusb:

vincent@vincent-desktop:~$ lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 093a:2510 Pixart Imaging, Inc. Hama Optical Mouse
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 04f2:0841 Chicony Electronics Co., Ltd 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 011: ID 045e:02ae Microsoft Corp. 
Bus 002 Device 010: ID 045e:02ad Microsoft Corp. 
Bus 002 Device 009: ID 045e:02b0 Microsoft Corp. 
Bus 002 Device 008: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 002 Device 003: ID 058f:6362 Alcor Micro Corp. Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
2014-04-20 06:47:23 -0500 marked best answer Errors in setting up ROS tutorial workspace in "tf tutorials"

Hi everyone,

I am learning ROS (ROS cturtle) from the tutorials. I got an error when setting up the ROS tutorial workspace in "tf/tutorials".

It asked me to:

Create a file named ~/tutorials.rosinstall with the following content:

- other: local-name: workspace

To overlay on cturtle:

rosinstall ~/tutorials /opt/ros/cturtle ~/tutorials.rosinstall

I got confused with the term "workspace". I assume i gotta replace it with my working directory. I put it like

 - other: local-name: ~/tutorials.

Then I run

 rosinstall ~/tutorials /opt/ros/cturtle ~/tutorials.rosinstall

It prompts me an error:

rosinstall operating on /home/vincent/tutorials from specifications in rosinstall files  /home/vincent/tutorials/.rosinstall, /opt/ros/cturtle, /home/vincent/tutorials.rosinstall processing config_uri /opt/ros/cturtle ahhhhhhhh, yaml parse error: mapping values are not allowed here   in "/home/vincent/tutorials.rosinstall", line 3, column 19 Usage: rosinstall PATH [<options> ...] [URI]... 

rosinstall: error: None

Deleting the space between "local-name" and "~/tutorials" in that command-line solved this error. But got another error:

rosinstall operating on /home/vincent/tutorials from specifications in rosinstall files  /home/vincent/tutorials/.rosinstall, /opt/ros/cturtle, /home/vincent/tutorials.rosinstall
processing config_uri /opt/ros/cturtle
Traceback (most recent call last):
  File "/usr/local/bin/rosinstall", line 5, in <module>
    pkg_resources.run_script('rosinstall==0.5.16', 'rosinstall')
  File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 461, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 1194, in run_script
    execfile(script_filename, namespace, namespace)
  File "/usr/local/lib/python2.6/dist-packages/rosinstall-0.5.16-py2.6.egg/EGG-INFO/scripts/rosinstall", line 556, in <module>
    sys.exit(not rosinstall_main(sys.argv))
  File "/usr/local/lib/python2.6/dist-packages/rosinstall-0.5.16-py2.6.egg/EGG-INFO/scripts/rosinstall", line 506, in rosinstall_main
    result = insert_source_yaml(source_yaml, a, observed_paths, aggregate_source_yaml)
  File "/usr/local/lib/python2.6/dist-packages/rosinstall-0.5.16-py2.6.egg/EGG-INFO/scripts/rosinstall", line 386, in insert_source_yaml
    path = element[k]['local-name']
TypeError: string indices must be integers, not str

And I also tried replacing "workspace" with "/opt/ros/cturtle/stack" or "/opt/ros/cturtle/ros" or "/opt/ros/cturtle". They gave basically the same errors.

Can someone help me out? Probably obvious to everyone else, please excuse my dumbness.-_-

2014-04-20 06:47:23 -0500 marked best answer gazebo window blinking

Hi,

When I was trying to run Gazebo on Lucid 64bit, but the graphic window inside "Gazebo" window kept blinking.

Some information on my hardware: My graphics card is ATI Integrated Radeon HD4200, which is listed as a working card in this link http://www.ros.org/wiki/simulator_gaz...

I thought it was related to the graphic card driver. So I tried two ways to install the driver:

  1. manually installed the latest driver ati-driver-installer-11-2-x86.x86_64
  2. use "system"-"Administration"-"Hardware Drivers" and "activate" the default driver listed there.

But the problem still exist, still blinking. Any idea on this?

Thank you in advance.

Vincent

2014-04-20 06:47:23 -0500 marked best answer Failure in reproducing the result from the paper "ICRA2010_Marder-Eppstein"

Hello,

I just started to use ROS. I am trying to reproduce the result from a paper following instructions in this link,
link: [http://www.ros.org/wiki/Papers/ICRA2010_Marder-Eppstein]

I got some errors when I was running this command: rosmake icra_navigation_gazebo

I am using Ubuntu 10.04 and ROS Diamondback.

I've noticed that since the code from the paper was written in some older versions of Ubuntu(before 9.10), there were some dependency errors at first. I solved them by adding a few lines in rosdep.yaml files to specify the libs for Ubuntu10.04. But still, I got some errors.

The output in the terminal is shown here:

[ rosmake ] Packages requested are: ['icra_navigation_gazebo']
[ rosmake ] Logging to directory
[ rosmake ] /home/vincent/.ros/rosmake/rosmake_output-20110311-202122
[ rosmake ] Expanded args ['icra_navigation_gazebo'] to:
['icra_navigation_gazebo']
[ rosmake ] Checking rosdeps compliance for packages icra_navigation_gazebo.  This may take a few seconds.
[ rosmake ] rosdep check passed all system dependencies in packages
[ rosmake ] Prebuilding rospack
[ rosmake ] Prebuilding gtest
[ rosmake ] Prebuilding genmsg_cpp
[ rosmake ] [ 2 of 130  Completed ]
[rosmake-0] >>> opende >>> [ make ]
[ rosmake ] [ 2 of 130  Completed ]
[rosmake-1] >>> ogre >>> [ make ]
[ rosmake ] [ 2 of 130  Completed ]
[rosmake-2] >>> roslib >>> [ make ]
[rosmake-0] <<< opende <<< [PASS] [ 0.03 seconds ]
[ rosmake ] [ 2 of 130  Completed ]
[rosmake-3] >>> roslang >>> [ make ]
[rosmake-3] <<< roslang <<<  No Makefile in package roslang

[rosmake-1] <<< ogre <<< [PASS] [ 0.03 seconds ]
[ rosmake ] [ 3 of 130  Completed ]
[rosmake-0] >>> pycrypto >>> [ make ]
[rosmake-0] <<< pycrypto <<< [PASS] [ 0.01 seconds ]
[ rosmake ] [ 5 of 130  Completed ]
[rosmake-3] >>> xmlrpcpp >>> [ make ]
[ rosmake ][ rosmake ] [ 6 of 130  Completed ]
 [rosmake-0] >>> paramiko >>> [ make ]
[ 5 of 130  Completed ]
[rosmake-1] >>> angles >>> [ make ]
[rosmake-0] <<< paramiko <<< [PASS] [ 0.02 seconds ]
[ rosmake ] [ 7 of 130  Completed ]
[rosmake-0] >>> tinyxml >>> [ make ]
[rosmake-1] <<< angles <<< [PASS] [ 0.47 seconds ]
[rosmake-3] <<< xmlrpcpp <<< [PASS] [ 0.55 seconds ]
[ rosmake ] [ 8 of 130  Completed ]
[rosmake-1] >>> actionlib_msgs >>> [ make ]
[rosmake-0] <<< tinyxml <<< [PASS] [ 0.57 seconds ]
[ rosmake ] [ 9 of 130  Completed ]
[rosmake-3] >>> std_srvs >>> [ make ]
[rosmake-2] <<< roslib <<< [PASS] [ 1.14 seconds ]
[ rosmake ] [ 10 of 130  Completed ]
[rosmake-0] >>> yaml_cpp >>> [ make ]
[ rosmake ] [ 11 of 130  Completed ]
[rosmake-2] >>> rospy >>> [ make ]
[rosmake-3] <<< std_srvs <<< [PASS] [ 0.78 seconds ]
[ rosmake ] [ 12 of 130  Completed ]
[rosmake-3] >>> rosconsole >>> [ make ]
[rosmake-0] <<< yaml_cpp <<< [PASS] [ 0.01 seconds ]
[ rosmake ] [ 13 of 130  Completed ]
[rosmake-0] >>> std_msgs >>> [ make ]
[rosmake-1] <<< actionlib_msgs <<< [PASS] [ 0.93 seconds ]
[ rosmake ] [ 14 of 130  Completed ]
[rosmake-1] >>> rosnode >>> [ make ]
[rosmake-2] <<< rospy <<< [PASS] [ 0.49 seconds ]
[ rosmake ] [ 15 of 130  Completed ]
[rosmake-2] >>> rosmsg >>> [ make ]
[rosmake-2] <<< rosmsg <<<  No Makefile in package rosmsg

[ rosmake ] [ 16 of 130  Completed ]
[rosmake-2] >>> rosservice >>> [ make ]
[rosmake-1] <<< rosnode <<< [PASS] [ 0.49 seconds ]
[ rosmake ] [ 17 of 130  Completed ]
[rosmake-1] >>> eigen >>> [ make ]
[rosmake-1] <<< eigen <<< [PASS] [ 0.01 seconds ]
[ rosmake ] [ 18 of 130  Completed ]
[rosmake-1] >>> kdl >>> [ make ]
[rosmake-3] <<< rosconsole <<< [PASS] [ 0.68 seconds ]
[ rosmake ] [ 19 of 130  Completed ]
[rosmake-3] >>> roscpp >>> [ make ]
[rosmake-1] <<< kdl <<< [PASS] [ 0.32 seconds ]
[ rosmake ] [ 20 of 130  Completed ]
[rosmake-1] >>> pluginlib >>> [ make ]
[rosmake-2] <<< rosservice <<< [PASS] [ 0.53 seconds ]
[ rosmake ] [ 21 of 130  Completed ]
[rosmake-2] >>> rosparam >>> [ make ]
[rosmake-2] <<< rosparam <<< [PASS] [ 0.57 seconds ]
[ rosmake ] [ 22 of 130  Completed ]
[rosmake-2] >>> pr2_machine >>> [ make ]
[rosmake-2] <<< pr2_machine <<<  No Makefile in package pr2_machine

[ rosmake ] [ 23 of 130  Completed ]
[rosmake-2] >>> pr2_controller_configuration >>> [ make ]
[rosmake-2] <<< pr2_controller_configuration <<<  No Makefile in package pr2_controller_configuration ...
(more)