Ask Your Question

flb's profile - activity

2017-05-02 20:57:50 -0500 received badge  Taxonomist
2016-10-24 09:54:00 -0500 received badge  Famous Question (source)
2016-02-25 11:51:42 -0500 received badge  Famous Question (source)
2015-03-20 14:38:26 -0500 received badge  Notable Question (source)
2015-01-08 14:25:54 -0500 received badge  Famous Question (source)
2015-01-06 20:22:58 -0500 commented answer Need advice on URDF axis rotations

Yes, thanks

2015-01-06 09:30:19 -0500 received badge  Student (source)
2015-01-03 18:40:30 -0500 received badge  Notable Question (source)
2015-01-03 16:57:41 -0500 answered a question Need advice on URDF axis rotations

Actually, as it turns out I decided that aligning the Y-axis with the legs would be best because using the X-axis would require one of them to use a 180 degree rotation. Aligning on Y does not require any rotations that large.

2015-01-03 16:55:29 -0500 received badge  Editor (source)
2015-01-02 23:45:54 -0500 received badge  Popular Question (source)
2015-01-01 21:43:18 -0500 asked a question Need advice on URDF axis rotations

Although I am running Ubuntu 14.04 LTS and testing using ROS-Fuerte, I believe that this question is independent of these facts. Furthermore, I am only using Fuerte because there are working examples that I can use. My plan is to port things to Indigo as soon as I have something that seems correct.

I am trying to build a URDF definition for a hexapod robot using xacro. I have the coordinate system arranged such that the two center side legs are aligned along the X-axis. The other legs are at 40 or 50 degrees off-axis. Since all legs are identical I planned on using a single macro to define a leg and expand it as needed to create them all.

Each leg has 3 joints. The first, where the leg attaches to the body, rotates parallel to the Z-axis. The other two joint axes always remain parallel to the body's X-Y plane.

I was originally thinking that I would use the X-axis as the length dimension, because that is most natural for the center legs and it looks similar to the tutorial. However, I am now realizing that with zero rotation the left leg extends in the negative X direction whereas the right runs positive.

Either way I need to rotate the other four legs so that the length runs parallel to one axis. The choice of the rotation will then define which axis the other two joints rotate about.

In general what I am wondering is what is the best way to arrange the rotations when defining the joints?

Is there any reason that I should choose X versus Y axis to run parallel to the leg length definition?

image description image description

2014-12-30 05:23:32 -0500 received badge  Popular Question (source)
2014-12-29 19:31:52 -0500 asked a question Who can repair the Teleop Node tutorial?

I am trying to learn how to control a robot. First task being joystick control I was working through the tutorial at

I ran into a number of problems with this page that were difficult to untangle, but I am too much of a beginner to be mucking around with modifying tutorials at this time. I am running "ubuntu 14.04 LTS" and "ROS indigo".

This already has a couple of complaints about needing updates, but I had issues with other things on the page:

  1. This is a beginner tutorial, it should not assume that I remember where files go within my workspace. It should tell me what to name the files being creates with full path from an assumed new package name. A statement like "Create package turtle_telejoy" would make sense.

  2. I do not seem to be able to find any kind of beginner tutorial regarding launch files, where does the launch directory go that is created in section 1.6 of the tutorial? It took a lot of effort to determine that "launch/turtle_joy.launch" should actually have been "turtle_telejoy/src/turtle_joy/launch/turtle_joy.launch" assuming that the package I created for the tutorial was called "turtle_telejoy"

  3. The launch file has an error on line 9: type="joy" should read type="joy_node"

  4. Section 1.3 made no sense to me. I chased a bunch of things down and cam up with a couple of things:

    a. Add the following lines to CMakeLists.txt file: add_executable(turtle_teleop_joy turtle_teleop_joy.cpp) target_link_libraries(turtle_teleop_joy ${catkin_LIBRARIES})

    b. cd to the package root directory turtle_telejoy

    c. catkin_make

  5. Some explanation of the launch file content would be useful so that I could modify it to match my particular joystick would also be useful. I am not sure if launch files are a beginner topic or not. The only tutorial I found was intermediate and not very helpful.

On a positive note the link provided to the tutorial at was extremely helpful.

2014-11-29 14:40:42 -0500 received badge  Enthusiast
2014-11-16 18:12:29 -0500 commented answer Where do I start to create a Hexapod robot?

Sorry to say that this question seems to have been ignored by the community and I have since been side-tracked on other projects; one being the need to replace my hard drive.

Since the hard drive replacement I have yet to get ROS back up and running. I think that there are a lot of good tutorials

2014-10-28 20:52:17 -0500 received badge  Famous Question (source)
2014-07-31 11:11:04 -0500 received badge  Famous Question (source)
2014-03-17 17:21:51 -0500 received badge  Notable Question (source)
2014-03-17 17:21:21 -0500 received badge  Famous Question (source)
2014-03-01 07:41:08 -0500 received badge  Popular Question (source)
2014-03-01 02:48:55 -0500 commented answer Do not understand reason for compile error

That was it, thanks.

2014-02-28 13:47:55 -0500 asked a question Do not understand reason for compile error

Consider the following partial application in my new Hydro installation

#include <ros/ros.h>
int main(int argc, char** argv) {

when compiled with

g++  -I/opt/ros/hydro/include

I get the error: "undefined reference to 'ros::start()'"

There is no error about a missing include and I even included <ros init.h=""> and got the same error. I can see ROSCPP_DECL void start();

Does anybody know why I get this compile error?

2013-12-29 17:23:09 -0500 received badge  Famous Question (source)
2013-12-10 12:10:10 -0500 received badge  Notable Question (source)
2013-12-02 01:37:32 -0500 received badge  Notable Question (source)
2013-12-02 01:37:32 -0500 received badge  Popular Question (source)
2013-12-01 03:49:40 -0500 received badge  Notable Question (source)
2013-11-29 13:20:05 -0500 asked a question Why is my state_publisher build complaining about tf::TransformBroadcaster?

I am actually trying to put together enough to visualize my URDF model in RVIZ. I currently have two files in my workspace:

  • …_ws/src/rbot_description/urdf/rbot.urdf
  • …_ws/src/rbot_description/src/state_publisher.cpp

When I call catkin_make the state_publisher fails to build. The failure message reads: "… undefined reference to 'tf::TransformBroadcaster::sendTransform(geometry_msgs::TransformStamped_<std::allocator<void> > const&)' "

What do I need to do to fix this error?

2013-11-29 13:06:24 -0500 received badge  Popular Question (source)
2013-11-29 04:33:21 -0500 commented answer How do I build something to see URDF model with RVIZ?

Thank you Thomas for the response. I will do as you say regarding the state publisher build problem. However, there is a problem with the launch relative to the tutorial. The error message references the .../urdf_tutorial/urdf.vcg file being the wrong format because Groovy requires a .rviz file format and Groovy does not yet have an "automated conversion program". I can only guess what that file is good for and have no clue how to build a replacement. I am also wondering your statement about needing a robot_state_publisher and a joint_state_publisher. I am assuming that I need a node that publishes both pieces and it is okay to do both from within my state_publisher.cpp file?

2013-11-28 14:15:18 -0500 asked a question How do I build something to see URDF model with RVIZ?

I am working up a URDF file and hoping to put together a new robot model along with a tutorial describing the ROS development process. I am using ROS-Groovy.

Right now I have a URDF that compiles and a state_publisher that fails to link. The message reads: "… undefined reference to 'tf::TransformBroadcaster::sendTransform(geometry_msgs::TransformStamped_<std::allocator<void> > const&)' "

I expect that I will also need a launch file, but have no clue what it will need to contain.

First question is how do I fix this build error?

Next question is do I have the correct directory layout? Current file organization is:

  • …_ws/src/rbot_description/urdf/rbot.urdf
  • …_ws/src/rbot_description/src/state_publisher.cpp

The state publisher is just a simulation stub at the moment, so knowing how to have a simulator sometimes and real control other times would be nice to know.

Finally I need to know where to put the launch file and what to put into it to get RVIZ running?

Again my assumption is that I really only need the 3 files: URDF, state_publisher and launch; is this correct?

2013-11-19 11:18:10 -0500 received badge  Popular Question (source)
2013-11-18 11:31:23 -0500 asked a question Where do I start to create a Hexapod robot?

I admit that the answer can be a bit subjective, and could create a flame war, so let me do my best to bound the answer space.

I am basically a beginner. Starting a Robot model from scratch is a bit daunting and the process obviously depends on a lot of decisions.

My first goal was to provide joystick control of a hexapod robot that currently functions by serial command. The problem is that each leg servo needs to be separately commanded.

A future goal is to make the robot a bit more autonomous, so using ROS makes sense to me.

My search of tutorials led me to URDF, but the tutorials seemed to stop before I got a working simulator. I have a URDF and a parser.cpp file. There seems to be a lot more needed to run RVIZ and the urdf_tutorial has .vcg files rather than .rviz files so it does not work.

What I think is needed is a top-level "root tutorial starting point" for 3 basic types, roller, flier, multi-legged. From there the types of decisions and the associated packages/tutorials can be linked into a set of top-level descriptions.

As I run through the Wiki and tutorials, I keep running into topics that I have no context for deciding if I care. URDF was the first one that I figured was a good starting point. Obviously, all robots of all types require some sort of "control" node that connects topics to hardware.

As I see it my simplified process is:

  1. Create URDF model
  2. Test the model in visual simulation.
  3. Connect joystick to simulation.
  4. Connect model to robot.

Does my process make sense?

All I have is a workspace containing two files, what else do I need to create?

2013-11-17 02:47:23 -0500 received badge  Notable Question (source)
2013-11-15 10:36:54 -0500 commented answer catkin_make missing after groovy upgrade from fuego

Perfect! Thanks! I wish I could add more votes for you.

2013-11-14 21:09:55 -0500 received badge  Popular Question (source)
2013-11-14 14:13:08 -0500 marked best answer catkin_make missing after groovy upgrade from fuego

I upgraded my Ubuntu precise fuego installation to groovy and it seems that some of the catkin tools are missing. I did this because I was trying to follow a tutorial and got lost trying to figure out the fuego equivalents.

The command that I used was sudo apt-get install ros-groovy-desktop-full

It seems that I only have catkin_create_pkg, catkin_find_pkg, catkin_generate_changelog, catkin_tag_changelog and catkin_test_changelog commands.

I am really not much of a Linux admin so I don't even know how to remove ROS and start over so any help would be appreciated.