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

Morgan's profile - activity

2021-07-10 11:43:11 -0500 commented question ROS on two machines fails across internet

VPN is a good approach to making ROS 1 work across the Internet. It can just be a bit tricky to get all the bidirectiona

2021-07-10 11:31:42 -0500 commented question Map update loop missed for a very long time

Just some random ideas: I'd suggest rendering the costmaps in rviz to see if something looks odd (maybe a LIDAR hit some

2021-02-19 00:30:28 -0500 commented answer How to contribute to ROS2

Ah, yeah, if you're wanting to work on the leading-edge stuff and make PR's back to the main/master branches of the upst

2021-02-19 00:13:59 -0500 answered a question How to contribute to ROS2

Welcome! Thanks for your interest in contributing to ROS 2. These instructions: https://index.ros.org/doc/ros2/Installa

2021-02-19 00:13:59 -0500 received badge  Rapid Responder (source)
2021-02-19 00:03:16 -0500 answered a question Publish or subscribe to another roscore/master

ROS 1 is designed to run with a single roscore. You can play various games to make nodes from one roscore talk to anothe

2021-02-18 23:51:16 -0500 commented question nmea_serial_driver not working

Any chance the baud rate is not as expected? The bytes don't look ASCII, so maybe try a bunch of other baud rates like 5

2020-11-17 01:27:52 -0500 answered a question [RMF] Fault tolerance?

Do you have a specific application or scenario in mind, or is this a generic question? I'll just answer generically: th

2019-11-14 01:56:39 -0500 commented answer Any documents or open-discussions for traffic-editor?

Hi! Yes, we'll be adding documentation and publicly-viewable examples / tutorials to the repo.

2017-04-07 15:37:36 -0500 received badge  Nice Answer (source)
2017-04-07 15:15:16 -0500 answered a question Why wiki.ros.org downs frequently?

We're actively investigating this right now. No updates yet, but we've restarted Apache a few times already today to try to keep things alive while we search for the root cause.

2016-08-24 21:29:50 -0500 commented answer RVIZ: Display own pointcloud

These debugging steps are a great place to start. Without seeing the whole program it's hard to know, but perhaps you're publishing a single point cloud immediately after calling advertise() ? Since the peer-to-peer connections take time to set up, it's recommended to (re)publish topics periodically

2016-07-06 02:18:06 -0500 received badge  Guru (source)
2016-07-06 02:18:06 -0500 received badge  Great Answer (source)
2016-05-09 18:02:55 -0500 answered a question Quick research about simulators, please help me understand them

Hi zezefreda,

Of course I'm biased since I work at OSRF, but I use Gazebo! It has its own Answers forum, which may be of interest to you. The Gazebo website also shows off many use cases.

Best regards,

Morgan

2016-05-08 15:32:43 -0500 received badge  Guru (source)
2015-12-02 17:56:06 -0500 commented question Is it ok to comment out joint state publisher node from turtlebot package?

where do you see the error? In RViz or somewhere else? Can you copy the full text and path of the file you have modified?

2015-10-22 11:02:28 -0500 commented question jade xacro macro param line breaks 'string index out of range'

can you upload /home/lucasw/catkin_ws/src/robot_description/urdf/no_cable.xacro somewhere (or, some other minimalist example which shows similar behavior) so that we can try to replicate the failure? Thanks!

2015-09-03 03:36:23 -0500 received badge  Good Answer (source)
2015-08-29 05:10:36 -0500 received badge  Nice Answer (source)
2015-08-18 11:08:18 -0500 received badge  Enthusiast
2015-08-14 17:55:45 -0500 commented answer Correct way to publish stereo camera information?

You don't need to run stereo_image_proc, you just want to publish the same topics and parameters as it does. In theory at least, the downstream subscribers of stereo/points (for example) aren't concerned with how the disparity and depth maps were produced.

2015-08-14 17:30:44 -0500 commented answer single rosmaster multi-turtlebots 2

i'll edit my answer and attempt to include some suggestions in a longer post

2015-08-14 17:29:43 -0500 commented question Where can I find the log files after a crash?

It's possible the default log level for move_base is lower than expected. Are you printing log messages in your custom planner plugin with a high level (i.e., ROS_ERROR) ?

2015-08-14 16:27:01 -0500 commented question Where can I find the log files after a crash?

hmm, I wonder if the custom global planner plugin is causing move_base to crash immediately on startup, even before the log file is created. Can you try it again without the custom global planner plugin, and see if then the log file appears as expected?

2015-08-14 16:22:23 -0500 commented answer single rosmaster multi-turtlebots 2

Hi Vinh, again, lots of approaches are valid here, but one would be to make a "cluster mega-launch file" that has six <include> tags that specify the __ns attribute differently for each robot. That way, their nodes won't collide in the ROS namespace.

2015-08-14 15:52:25 -0500 answered a question single rosmaster multi-turtlebots 2

Hi Vinh,

People have definitely done this. The "best" approach will be dependant on many factors, including (perhaps most importantly) the quality of the wireless links between the robots, as well as the amount of data that needs to be sent around, and so on.

If the robots will always have really good WiFi (i.e., they are always very close to an access point), you could try just running everything "out of the box" and just pushing each robot into its own namespace on the same master that is running either on one of the robots or on a separate machine (say, a machine that connects via wired Ethernet to the wired network connecting your wireless access point(s).

However, if the robots will sometimes have intermittent network connectivity, things get much more complicated. ROS1 "out of the box" does not handle this situation gracefully; the TCP buffers will back up, and then things get ugly. You can help some of this by running all your ROS1 connections over a VPN, which (surprisingly) can behave much better than "normal" TCP.

Alternatively, you could use an additional middleware, such as OpenSplice DDS, to handle the inter-robot links, and run a separate ROS master on each robot. (Note that ROS2 is being built on DDS for exactly this reason, among others, but it's not yet ready for day-to-day use.)

More specifically for the multiple-robots-on-wireless-LAN approach (the simplest):

Let's assume there is a computer that seems like a good candidate to run the ROS master (say, a workstation that will also run the RViz or other "system-wide" nodes). Let's pretend that computer is called overlord.local on the network and can be reached from all of the robots. When debugging this type of thing, it's important to ensure that, first, the LAN and mDNS is properly configured, so that when you run ping overlord.local on your robot laptops, it works.

Let's assume further that overlord.local can ssh into all of the laptops on the Turtlebots. You can make this work password-less using ssh-keygen to create a public/private keypair on overlord.local, and then ssh-copy-id to copy the private key to all of your robot laptops.

To run some robots, you'll start roscore on the overlord.local machine, and then shell into the robots, say turtle1.local and turtle2.local. The key thing to do once you've shelled into a robot is to point its ROS_MASTER_URI environment variable back to overlord.local. More specifically, from a shell (or in a .bashrc alias):

export ROS_MASTER_URI=http://overlord.local:11311

then, you'll need to have each turtlebot launch inside its own namespace; otherwise, the node names on turtle1 will be the same as on turtle2, and the ROS master will tell the previously-launched node to shut down when the new one starts. There are a few ways to set the namespace, but one fairly easy one is to set ROS_NAMESPACE to something unique, like ... (more)

2015-08-14 15:43:12 -0500 commented question Where can I find the log files after a crash?

can you post the contents of that directory? e.g., ls -l /home/sebastian/.ros/log/6c0459b4-42bc-11e5-91ba-c8f733552779

2015-08-14 15:40:38 -0500 answered a question How to set pose goal negative to the origin

I'm not sure I fully understand what you're trying to do, but in general if you want to specify points relative to the robot (i.e., "behind the robot"), you want to define those points in a spatial frame attached to the robot, such as /robot or /base_link or something like that. Then, you'll need to have some other spatial transform to take this frame to the world frame, such as a localization algorithm, a static transform (for a stationary robot), or some other node which publishes the transform from /robot to /world. Then, you can use tf to transform the points to whatever spatial frame they are needed in for whatever other tasks the system is performing.

2015-08-14 15:36:05 -0500 answered a question Correct way to publish stereo camera information?

Hi Walter,

There are lots of valid approaches here, but one reasonable approach would be to try to (as closely as possible, anyway) create a ROS node that matches the topic and parameter names of the stereo_image_proc node, which lots of people would be familiar with already.

Cheers, -mq

2015-06-26 16:35:06 -0500 received badge  Enlightened (source)
2015-04-08 23:46:07 -0500 answered a question Fake arm to pick

Have you tried this configuration and motion plan using the MoveIt GUI (in rviz)? That may help determine why IK is saying the pose is unreachable. It's easy to flip a sign on the end-effector orientation, in particular, which would cause the wrist to have to go the wrong direction and thereby cause the workspace to be much smaller. Visualizing the poses in the MoveIt GUI often makes it much easier to see what's happening with IK, since you can drag the end-effector around interactively.

2015-04-08 23:42:51 -0500 answered a question New RoS setup

The setup you describe sounds quite reasonable. As you said, you will need to install ROS on both the Raspberry Pi and the laptop. They will talk to each other via wifi. The Raspberry Pi could talk to the arduino any number of ways, but you could start by taking a look at rosserial_arduino for some examples of getting communications up and running between Arduino widget and ROS.

You could run the ROS master (aka "roscore") on either side of the Wifi link, since you're teleoperating the robot and will be developing code actively for a while. If you eventually want to have the robot run autonomously and launch everything at power-up, many people run the ROS master on the robot to ensure that the robot's internal nodes connect regardless of the network status, but that's not terribly important when you are in the initial phases of hacking the system together.

2015-04-08 16:13:40 -0500 commented question odometery problem

This is hard to read because the code is not fully formatted. Can you edit your post so that all code is highlighted and indented properly in a single code block? Thanks

2015-04-08 14:53:31 -0500 answered a question Using TF package to transform rotations

This TF tutorial will be a good starting point; it listens to the TF topic and calculates the requested transform in the listener.lookupTransform call.

2015-04-08 14:49:50 -0500 commented question Invoking "make -j2 -l2" failed

This looks like a C++ syntax error in hello.cpp . Can you post that file?

2015-04-08 14:48:10 -0500 received badge  Commentator
2015-04-08 14:48:10 -0500 commented question how can i build work space with an robot ???????

We'll need more of an explanation of the question and your starting point, in order to give meaningful suggestions. Can you explain further?

2015-04-08 11:35:21 -0500 commented answer How do I create a launch file??

Yes, every terminal that needs to work with the package(s) you are developing in your workspace needs to source the devel/setup.bash file from the workspace. I will typically set up a bash alias for the most common workspace I'm using, so you can just type "w" or whatever, to make it fast and easy.

2015-04-07 18:54:51 -0500 commented answer Grasp a box with youbot

There are lots of different strategies, but when debugging transform frames I find that the tf plugin in rviz is helpful.

2015-04-07 18:49:57 -0500 answered a question Z-coordinate has to be 1 or -1

That error message is a bit confusing. It is just saying that the plane of the laser needs to be parallel to the ground plane. I would check the transform chain you are using (i.e., what is the orientation of base_link) and make sure it has z facing directly up or down. You can do this in rviz using the tf plugin.

if you're curious, the code producing the error message can be found here

2015-04-07 18:31:05 -0500 answered a question How do I create a launch file??

This could be happening for a few reasons (I know some of these are obvious, I'm just going through the list of things I try to verify when debugging such a problem):

  1. Have you sourced the devel/setup.bash from your workspace into your current shell ? Otherwise, roslaunch won't know where to look to find the beginner_tutorials files, including turtlemimic.launch you can verify that your current shell knows about the beginner_tutorials location by running rospack list | grep beginner_tutorials and verifying that your package directory shows up in the location you expect.
  2. Is the file named exactly turtlemimic.launch, and is it somewhere in the beginner_tutorials directory tree? Note that if it is somewhere in the workspace (e.g., the workspace root) rather than in the src/beginner_tutorials directory tree, roslaunch will not be able to find it.
  3. Make sure the launch file is valid XML that starts with a launch tag.
2015-04-07 17:41:43 -0500 commented question How do I create a launch file??

Can you copy/paste the command that produced that error message?

2015-04-07 17:28:27 -0500 answered a question Viewing p2os sonar in RViz

First, I would suggest setting the use_sonar parameter using a ROS launch file rather than changing and recompiling the p2os_driver code, so that you can more easily modify the parameter setting in the future, or (perhaps more usefully) you can have multiple launch files for various application configurations, perhaps some that use the sonars and some that do not.

But in regards to the main question, there are many ways to do this. For example, you could convert the sonar readings to a point cloud. But that doesn't really capture what a sonar is doing. To get a nice visualization in rviz that more accurately represents the (large) sensitivity cone of each sonar, you could the sensor_msgs/Range datatype, which you can visualize in rviz.

I have not done this myself yet, but I believe you need to define the coordinate frame of each sonar, using something like static_transform_publisher to define static offsets relative the the frame of the robot. Then for each message you receive on the /sonar topic, you would send out a bunch of sensor_msg/Range messages, one for each sonar.

All that being said, I don't have access to a Pioneer anymore, so I haven't tried any of this myself. Perhaps one of the Pioneer users will have a better idea.

2015-04-07 13:47:13 -0500 received badge  Good Answer (source)
2015-04-07 13:46:19 -0500 received badge  Nice Answer (source)
2015-04-07 13:16:39 -0500 commented question Map is not correct

Can you post a screenshot of the map that is being generated? Unfortunately, there are many ways that mapping can fail. Perhaps if we see the failed output, we can give some suggestions. Starting with very small maps is usually best, and only going for large areas once the tiny maps are working.