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

troman's profile - activity

2017-03-31 00:02:20 -0500 received badge  Famous Question (source)
2017-03-31 00:02:20 -0500 received badge  Notable Question (source)
2015-07-29 03:01:14 -0500 received badge  Famous Question (source)
2015-07-27 23:52:24 -0500 commented answer Kinect for windows(first version) with ROS

No problem, glad I could help!

2015-07-25 16:06:49 -0500 received badge  Popular Question (source)
2015-07-25 13:09:51 -0500 received badge  Editor (source)
2015-07-25 13:08:35 -0500 received badge  Commentator
2015-07-25 13:08:35 -0500 commented answer Map is only being created in one direction

Thanks for the reply, I'm not sure what you mean but I've added two more screenshots of my TF setup and the output of /odom after driving forward a few feet. I've played around a bit more with the TFs so these are a little different than what I had in my last screenshot.

2015-07-24 16:25:05 -0500 received badge  Famous Question (source)
2015-07-24 16:24:07 -0500 answered a question Kinect for windows(first version) with ROS

I know that I had to do a bit of fiddling with some USB settings when I first set mine up. It was a while ago so I don't remember everything, but I know that I have to run this command before I launch the freenect_stack:

sudo bash -c 'echo -1 > /sys/module/usbcore/parameters/autosuspend'

In addition to that, if you still see no devices connected, try unplugging the kinect from your laptop and plugging it back in and waiting about 5 seconds. Does the kinect for windows have a power adapter? If it does make sure that you have that plugged into the wall too or it won't work. The USB on your computer is not enough to power all the hardware in the kinect.

2015-07-24 16:07:55 -0500 asked a question Map is only being created in one direction

I have a two-wheeled differential robot with encoders, and a Kinect and I'm trying to build a map with gmapping. I'm converting the point cloud to a laser scan with depth_image_to_laserscan, and using ros_arduino_bridge to publish odometry and receive cmd_vel messages. The issue I'm having is that when it seems like my scans are locked into one direction. When I map, I'm constantly overwriting the same spot in a cone in front of my robot. When I drive the robot forward I don't see it's position on the map change, I only see the scan shifting out of place.

I've verified that I'm getting odometry with rostopic echo /odom. I've tried various TF configurations, and I still don't know what the issue is. I've been successful with HectorSLAM using no odometry, but I'd really like to see how gmapping compares in performance. I've supplied an image of the overwritten map, my and my TF configuration. Please let me know if there's anything else I can provide.

image description

image description

image description

image description

2015-07-06 20:13:19 -0500 commented answer How to publish images quickly

I'm going to go ahead and give you the check for this one. I never ended up being able to improve the frame rate with or without your approach but I see it's worked for other people. Thanks for the help.

2015-07-06 19:31:37 -0500 answered a question rtabmap_ros + Kinect = 2D map. How to? (newbie)

I'm using a Kinect to build 2D maps at the moment as well and getting pretty good results. Here are some of the packages I'm using:

SLAM: hector_slam - uses scan matching so it can localize without need for external odometry

Laser Scan: depthimage_to_laserscan - converts a 3d pointcloud to a fake laser scan

Maps: map_server - lets you save and publish maps

I'm sorry if this doesn't quite answer the specifics but these have worked for me and you're trying to accomplish basically the same thing.

2015-06-29 17:16:40 -0500 commented answer How to publish images quickly

For the record this is my code before trying your changes. Maybe you had something different in mind than I imagined?

2015-06-29 17:02:31 -0500 commented answer How to publish images quickly

Alright so I tried what you suggested. Now my motion tracking doesn't work because it's not loading in the next frame, it's constantly comparing the next frame to itself, which is my original problem and why I switched to the resubscribe. I'm going to post the full code so you can see more.

2015-06-28 10:05:36 -0500 received badge  Notable Question (source)
2015-06-28 08:21:55 -0500 commented answer How to publish images quickly

I haven't been able to try your suggestion yet but as soon as I can I will. Then I'll update here. Thanks for the help!

2015-06-28 08:20:08 -0500 commented answer How to publish images quickly

The publisher is created outside of the loop, and is told to publish inside the loop. The subscriber is created outside the loop, subscribed outside to initialize the first image, and then resubscribed in the loop to get the next image.

2015-06-28 08:11:35 -0500 received badge  Enthusiast
2015-06-28 02:07:44 -0500 received badge  Popular Question (source)
2015-06-27 19:40:08 -0500 commented answer How to publish images quickly

I don't think this is the root of my performance issue though. When I display the image mid loop using opencv, and still subscribing in this way it works fine. The performance issue seems to be coming from publishing lt and viewing it from another node

2015-06-27 19:36:39 -0500 commented answer How to publish images quickly

Hi Christian, thanks for the reply. The reason I subscribe like this is so that I can grab a new image at a specific time. I have a loop going were I need to grab two sequential images, and as far as I could tell, that was the only way I could accomplish this.

2015-06-27 14:05:54 -0500 asked a question How to publish images quickly

ROS Indigo, Python, OpenCV (cv_bridge)

I wrote a node that does differential imaging on the webcam feed from a Kinect, but when I publish the final images and try to view them in image_view, the frame rate is really slow. If I instead use cv2.imshow() at the same place I'm publishing, the frame rate is fine. What is causing the the frame rate to be so slow when publishing and viewing with image_view, rather than just viewing through OpenCV?

Here's my publisher setup:

...other code...

image_pub = rospy.Publisher("/motion_image", Image, queue_size=10)

...other code...

try:
        img = bridge.cv2_to_imgmsg(motion_img, "bgr8")
        image_pub.publish(img)
except CvBridgeError, e:
        print e

And my subscriber if helpful:

image_sub = rospy.Subscriber("/camera/rgb/image_color", Image, callback, queue_size=10)

I just want to be able to grab one image at a time so I unregister at each call, when I want another image I resubscribe

def callback(data):
    global camera_img, image_sub

    try:
        bridge = CvBridge()
        camera_img = bridge.imgmsg_to_cv2(data, "bgr8")
        image_sub.unregister()
    except CvBridgeError, e:
        print e

Update: Here's the rest of my code, feel free to comment on other things as well. I'm new to Python and ROS and I want to get better. Sorry it's not posted direct, I was having trouble getting it to format correctly.

http://pastebin.com/RveN6esS

2015-06-19 19:22:39 -0500 received badge  Student (source)
2015-06-11 15:09:56 -0500 received badge  Notable Question (source)
2015-06-11 12:49:36 -0500 received badge  Scholar (source)
2015-06-11 12:49:30 -0500 received badge  Scholar (source)
2015-06-11 12:45:28 -0500 commented answer Best practices for organizing a project

So I started delving deeper into the rospy API and found this:

Initialization and Shutdown

If anyone else has the same question your answer is at the bottom: rospy.signal_shutdown(reason)

2015-06-11 11:43:53 -0500 commented answer Best practices for organizing a project

Thanks for the helpful suggestions. Do you have any advice for how to stop or shut down nodes cleanly? Would it be sufficient to just put a system call in the nodes to kill themselves when a particular condition is met?

2015-06-11 07:44:54 -0500 received badge  Supporter (source)
2015-06-11 03:05:12 -0500 received badge  Popular Question (source)
2015-06-10 19:52:52 -0500 asked a question Best practices for organizing a project

Hello all,

Sorry for the long winded explanation but my thoughts are a bit scattered on this.

I'm fairly new to ROS. I've been working with it for about a month and I feel I'm beginning to understand most of the basics (packages, topics, subscriptions, services, etc), but when it comes to how to put together a practical project I'm struggling. I'm using ROS for my senior design project, which is a mobile autonomous robot with some mapping and computer vision capabilities. The robot is going to have several well-defined modes of operation where some subsystems should be active or inactive.

We're using a Kinect and converting the depth cloud to a laserscan with the depthcloud_to_laserscan node. I've already got this working with HectorSLAM as a preliminary mapping system since the robot isn't built yet and I don't have access to physical odometry. Here are examples of a few of the operation modes:

  • Autonomous Mapping Mode: Sonar/tactile based obstacle avoidance system + SLAM system
  • Manual Mapping Mode: Teleoperation system + SLAM system
  • Autonomous Patrol Mode: Sonar/tactile based obstacle avoidance system + Map-based navigation system + Motion detection system

What's the best way to initialize/start this system and switch between these states? I don't want all the subsystems to be active at the same time because power and processing will be important. For prototyping, I want to be able to type commands into the terminal to switch between each of these systems, launching all of the relevant nodes and closing them cleanly when the procedures are complete or are interrupted.

I suppose this is more of a design philosophy question, I'm sorry if it's not specific enough. I've read through most of the tutorial content and so far I haven't found anything that quite answers my question.

All replies welcome, thanks.