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

Wouter van Teijlingen's profile - activity

2012-12-17 06:47:38 -0500 received badge  Nice Answer (source)
2012-10-28 23:43:49 -0500 received badge  Famous Question (source)
2012-10-28 23:43:49 -0500 received badge  Popular Question (source)
2012-10-28 23:43:49 -0500 received badge  Notable Question (source)
2012-08-30 04:23:19 -0500 received badge  Notable Question (source)
2012-08-30 04:23:19 -0500 received badge  Famous Question (source)
2012-08-30 04:23:19 -0500 received badge  Popular Question (source)
2011-09-26 04:36:29 -0500 received badge  Self-Learner (source)
2011-09-26 04:36:29 -0500 received badge  Teacher (source)
2011-06-17 11:18:06 -0500 marked best answer Hardware communication fails after ros::init

You're going to need to find the very first point at which execution diverges from the working and nonworking versions. At this point you could ask, "why does ros::init change this specific behavior", but with what is here it is hard to say.

2011-05-13 03:51:26 -0500 received badge  Student (source)
2011-05-13 02:10:11 -0500 asked a question Hardware communication fails after ros::init

Dear list,

I've a couple of packages for communicating with our delta robot. This is sample code, it's ugly, but it's for demonstration purposes only:

....
std::cout << "par_trajectory_planning." << std::endl;
ros::init(argc, argv, "par_trajectory_planning");
//ros::NodeHandle n;
modbus_t* ctx = modbus_new_rtu("/dev/ttyS0", 115200, 'N', 8, 1); 
//init_communication(ctx);
//configure_PTP_motion(ctx);
par_trajectory_planning::commands cmd;
cmd.xyz_pos.clear();
stepperMotor = new StepperMotor(ctx);
stepperMotor->initCom();
cmd.xyz_pos.push_back(-41.5733);
cmd.xyz_pos.push_back(-41.5733);
cmd.xyz_pos.push_back(-41.5733);
stepperMotor->confPTPMotion(cmd);
...

If i run this program with the following command:

rosrun par_trajectory_planning par_planning

It seems to block the hardware. I get messages like the following:

ANGLE: -41.5733
[03][10][04][02][00][02][04][00][00][02][A1][8B][D6]
Waiting for a confirmation...
<03><10><04><02><00><02><E0><DA>
errno: File exists

There errno is the problem. If i disable this line in the sample code:

ros::init(argc, argv, "par_trajectory_planning");

The program works as expected; we start it with the same command. Of course no ROS integration, but it communicates with the hardware as expected. What happens in ros::init that alters the behavior of our program? We make use of libmodbus ( www.libmodbus.org ) in this package and it works fine; but if we integrate it in ROS it doesn't work.

I tried to start everything as root, but that doesn't change errors. Thanks.

2011-02-28 23:44:02 -0500 marked best answer Problem with parameters with arm_kinematics

It's getting the root_name from the node parameter server, try to load the parameter like this (replace arm_kinematics by the arm_kinematics node name):

rosparam set arm_kinematics/robot_description /home/wouter/ros_packages/urdf_tools/urdf_tutorials/01-myfirst.urdf

By the way, you should have at least to links and 1 joint in your model. The root_name should be a link (e.g. "base_link") and the tip_name another link.

Hope this help

2011-02-28 23:44:02 -0500 received badge  Scholar (source)
2011-02-28 23:43:07 -0500 answered a question Problem with parameters with arm_kinematics

I fixed it, thanks for your pointers. This is the solution:

$ rosparam set urdf_xml robot_description
$ rosparam set robot_description /home/wouter/ros_packages/urdf_tools/urdf_tutorial/01-myfirst.urdf
$ rosparam set arm_kinematics/root_name base_link
$ rosparam set arm_kinematics/tip_name base_link
$ rosparam set maxIterations 1000

Before you start arm_kinematics run the following command, because it is necessary load the XML file in to robot_description.

roslaunch urdf_tutorial display.launch model:=01-myfirst.urdf

Thanks for the help.

2011-02-28 21:35:00 -0500 answered a question Using ROS for a Delta Robot

Thanks for your help :)

You wrote:

(a) add URDF support for parallel robots and give us a patch we can then integrate. This is going to be a little complicated though.

We think this is the best way. Could you elaborate on the complications?

We don't know for sure if we choose this path, because option b) or our own option c) (creating a new package) seem plausible as well.

// edit

We probably first try option b, because it seems easier than creating a new package or adding support for a parallel robot ROS wide. I come back when i have any more questions :-) Thanks!

Thanks

2011-02-28 21:29:34 -0500 received badge  Editor (source)
2011-02-28 21:04:48 -0500 asked a question Problem with parameters with arm_kinematics

Dear List,

First some specs:

os: ubuntu 10.10 ros version: ros-cturtle-base 1.0.0-s1297419884~maverick arm_kinematics version: wu-ros-pkg - Revision 40: /stacks/urdf_tools/trunk/arm_kinematics

URDF file i used:

<?xml version="1.0"?>
<robot name="myfirst">
  <link name="base_link">
    <visual>
      <geometry>
        <cylinder length="0.6" radius="0.2"/>
      </geometry>
    </visual>
  </link>
</robot>

Parameters i configured:

$ rosparam set urdf_xml robot_description
$ rosparam set robot_description /home/wouter/ros_packages/urdf_tools/urdf_tutorials/01-myfirst.urdf
$ rosparam set root_name myfirst
$ rosparam set tip_name base_link
$ rosparam set maxIterations 1000

Start command used:

$ wouter@wouter-MXC061:~/ros_packages/urdf_tools/urdf_tutorial$ rosrun arm_kinematics arm_kinematics

Error after starting the service:

$ [FATAL] [1298977044.887195523]: GenericIK: No root name found on parameter server

So i looked in arm_kinematics.cpp and i found the following code (line: 101/363):

// Get Root and Tip From Parameter Service
if (!nh_private.getParam("root_name", root_name)) {
    ROS_FATAL("GenericIK: No root name found on parameter server");
    return false;
}

I don't see how this error could occur, because i defined the parameters. Anyone have any thoughts on this?

2011-02-16 00:52:05 -0500 answered a question Using ROS for a Delta Robot

Hello,

Thanks for your answer. we did discover a new problem, however. After reading a bit more i found the following text:

'The Unified Robot Description Format (URDF) is an XML specification to describe a robot. We attempt to keep this specification as general as possible, but obviously the specification cannot describe all robots. The main limitation at this point is that only tree structures can be represented, ruling out all parallel robots.'

And a Delta Robot is a parallel robot. Now we are wondering on what to do. We could rewrite arm_kinematics and rename it to parallel_kinematics or something like that, but perhaps some of you have other/better ideas than we have :-)