Ask Your Question

Dariush's profile - activity

2015-07-24 08:22:36 -0600 received badge  Great Answer (source)
2015-07-24 08:22:36 -0600 received badge  Guru (source)
2012-07-31 10:58:16 -0600 answered a question rosserial problems with digitalWrite(2,HIGH)

From my experience most crashes on the atmega are memory related. Most often you simply run out of stack and start corrupting your heap (i.e. globally defined variables). This can be pretty devious and hard to debug, as the program running might not behave weird until some time later.

A simple and very effective debugging help is measuring the stack size. You should always keep a healthy amount of stack free for use (at least 1 byte ;). There is code on the Internets that can help you measure the stack size at runtime. In my last project I used this piece of code: (caveat: the site in German, however the code has English comments): http://www.rn-wissen.de/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc

cheers Dariush

2012-07-31 10:40:16 -0600 answered a question Costmap 2D Kinect/Laser clearing problem when encountering objects with thin legs (e.g. tables or chairs)

What map_type do you use in your costmap? It sounds as you are using "costmap", which is a 2D model of the world. With your sensor configuration you might want to model your world in 3D. Using "voxel" as the map_type will achieve that.

The problem you're observing is related to the raytracing the costmap is doing. When receiving a new observation, the costmap is clearing all fields/voxels between the camera origin and each observed obstacle. A 2D costmap contains no height information, however, and therefor cannot know that the laserscanner is in fact not able to see the top of the chair.

See http://www.ros.org/wiki/costmap_2d#VoxelCostmap2D for details.

Using two costmaps, one for each sensor, might also work. However you would have to modify move_base and/or the local and global planners to do this.

cheers Dariush

2011-10-10 23:44:38 -0600 commented answer Connecting two kinects with openni_camera will show only the first two topics that are read
This PCIe card works as well: http://www.delock.com/produkte/gruppen/Express-Card/Delock_Express_Card_to_2x_USB_20_66202.html - You have to give the PCIe card additional 5V (it has a plug for it), otherwise the Kinect will crash during USB initialization (although this might be a laptop issue).
2011-08-01 22:45:46 -0600 received badge  Enlightened (source)
2011-08-01 22:45:46 -0600 received badge  Good Answer (source)
2011-08-01 19:15:19 -0600 received badge  Nice Answer (source)
2011-07-26 07:35:26 -0600 received badge  Teacher (source)
2011-07-26 07:12:06 -0600 answered a question "Assertion `!pthread_mutex_lock(&m)' failed." runtime error while working with custom message and kinect

Do you see any warnings while compiling this code? I would expect some warnings about the order in which you are initializing your class members.

In C++ member variables are initialized according the order of declaration, not the order you choose in the constructor. As you have declared the Sychronizer first, it's constructor will be called with uninitialized subscribers. That can cause all kind of nasticities, including the one you observed.

cheers Dariush

2011-02-18 00:28:16 -0600 received badge  Supporter (source)