wg-perception / object_recognition_ros Goto Github PK
View Code? Open in Web Editor NEWROS components usable byt the object_recognition pipeline
ROS components usable byt the object_recognition pipeline
when building the ork_ros package from source I noticed this script:
86%] Built target object_recognition_msgs_gencpp
[ 87%] [ 88%] Building CXX object object_recognition_ros/src/info_service/CMakeFiles/object_information_server.dir/info_service.cpp.o
Building CXX object tod/src/CMakeFiles/ecto_detection_ectomodule.dir/detection/module.cpp.o
/home/rabbit/ros_ws/ork/src/object_recognition_ros/src/io/MsgAssembler.cpp: In member function ‘int object_recognition_core::MsgAssembler::process(const ecto::tendrils&, const ecto::tendrils&)’:
/home/rabbit/ros_ws/ork/src/object_recognition_ros/src/io/MsgAssembler.cpp:139:52: error: no match for ‘operator=’ in ‘object.object_recognition_msgs::RecognizedObject_std::allocator::point_c$
/home/rabbit/ros_ws/ork/src/object_recognition_ros/src/io/MsgAssembler.cpp:139:52: note: candidate is:
/usr/include/c++/4.6/bits/vector.tcc:161:5: note: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, Alloc>&) [with Tp = sensor_msgs::PointCloud2<std::allocator<vo$
/usr/include/c++/4.6/bits/vector.tcc:161:5: note: no known conversion for argument 1 from ‘const std::vector<boost::shared_ptr<sensor_msgs::PointCloud2<std::allocator > > >’ to ‘const std::ve$
[ 88%] Building CXX object tod/src/CMakeFiles/ecto_detection_ectomodule.dir/common/adjacency_ransac.cpp.o
Linking CXX executable /home/rabbit/ros_ws/ork/devel/lib/object_recognition_ros/object_information_server
make[2]: *** [object_recognition_ros/src/io/CMakeFiles/io_ros_ectomodule.dir/MsgAssembler.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 88%] Building CXX object tod/src/CMakeFiles/ecto_detection_ectomodule.dir/common/maximum_clique.cpp.o
and then the build subsequently fails. Part of my problem was that curl was not installed and is listed as a dependency for the plugin. Maybe add to docs? For the time being I had to install and older release of ork_ros without the new plugin and everything went just fine.
Hey over there,
I just discovered that the new PoseResult-API, which copies pointclouds instead of only pointers , (bae1c90) produces badalloc exceptions over here.
I did not yet look into this any further, but I'm pretty sure more than 1G of RAM should be enough for cluster detection...
Any ideas?
I am tying to follow http://wg-perception.github.io/object_recognition_core/quickguide.html#quickguide but when came to
rosrun object_recognition_capture capture -i my_textured_plane --seg_z_min 0.01 -o silk.bag --preview I always get a empty mask. any suggestion will be appreciated
The service that provides information about objects in the database of known objects always fails to retrieve meshes. It seems the 'mesh' attribute is never found.
When I add OrkObject plugin to RViz (under ROS Hydro, ORK from ROS ppa) and set topic to "/recognized_object_array", any message on this topic crashes RViz (Segmentation fault). Bagfile containing one message from the topic is available here.
Hello community,
I get a strange error. I can't use the actionlib server/client with linemod. Tabletop works fine.
First I start the server:rosrun object_recognition_ros server -c
rospack find object_recognition_linemod/conf/detection.ros.ork
Second I start the client: rosrun object_recognition_ros client
And this is my output:
[ INFO] [1477560425.096815042]: Connected to master at [localhost:11311]
[ INFO] [1477560425.100454190]: Initialized ROS. node_name: /object_recognition
[ INFO] [1477560425.545173251]: System already initialized. node_name: /object_recognition
[ INFO] [1477560425.810228513]: System already initialized. node_name: /object_recognition
[INFO] [WallTime: 1477560425.813119] ORK server configured
[INFO] [WallTime: 1477560425.817559] Subscribed to the recognized_object_array topic.
[INFO] [WallTime: 1477560425.831282] ORK server started
[ INFO] [1477560473.372871621]: Subscribed to topic:/camera/rgb/camera_info [queue_size: 1][tcp_nodelay: 0]
[ INFO] [1477560473.376344520]: Subscribed to topic:/camera/depth_registered/camera_info [queue_size: 1][tcp_nodelay: 0]
[ INFO] [1477560473.379594144]: Subscribed to topic:/camera/rgb/image_rect_color [queue_size: 1][tcp_nodelay: 0]
[ INFO] [1477560473.383015854]: Subscribed to topic:/camera/depth_registered/image_raw [queue_size: 1][tcp_nodelay: 0]
Reading the mesh file mesh.stl
Segmentation fault (core dumped)
After the detection failed, it creates an x�'���.stl (invalid encoding) file in my home archive.
Any ideas what can cause this problem? Thank you very much for your help.
If I use linemod continuous it works fine. Only the actionlib server/client result in this error.
I am using Ubuntu 14.04 and ros indigo.
these lines in doc/source/server.rst (https://github.com/wg-perception/object_recognition_ros/blob/master/doc/source/server.rst) should be changed:
After the last change the package wont build anymore:
Scanning dependencies of target io_ros_ectomodule
[ 92%] Building CXX object wg_perception/object_recognition_ros/src/info_cache/CMakeFiles/object_information_cache.dir/info_cache.cpp.o
[ 92%] Building CXX object wg_perception/object_recognition_ros/src/io/CMakeFiles/io_ros_ectomodule.dir/module.cpp.o
/home/stfn/devn/ros_dai_groovy_catkin/src/wg_perception/object_recognition_ros/src/info_cache/info_cache.cpp: In member function ‘void object_recognition_ros::ObjectInfoRamCache::getInfo(const ObjectType&, object_recognition_msgs::ObjectInformation&)’:
/home/stfn/devn/ros_dai_groovy_catkin/src/wg_perception/object_recognition_ros/src/info_cache/info_cache.cpp:156:18: error: ‘createMeshFromBinary’ is not a member of ‘shapes’
make[2]: *** [wg_perception/object_recognition_ros/src/info_cache/CMakeFiles/object_information_cache.dir/info_cache.cpp.o] Error 1
make[1]: *** [wg_perception/object_recognition_ros/src/info_cache/CMakeFiles/object_information_cache.dir/all] Error 2
and takes RViz down with it.
[rospack] Warning: no such package object_recognition_core
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
terminate called after throwing an instance of 'pluginlib::LibraryLoadException'
what(): rospack could not find the object_recognition_core package containing object_recognition_core::db::ObjectDb
Aborted (core dumped)
I was trying to install ecto following the instructions at http://ecto.willowgarage.com/recognition/install.html, but I can't find any ros-fuerte-object-detection-* packages. Only available is object-manipulation.
I'm running Fuerte on Ubuntu Precise 64bit (and yes, I did a sudo apt-get update before :-)).
Are they just currently not available while things get messy for Groovy or am I doing sth wrong?
When a recognised object is visualized using the ORK rviz_plugin, a weird mesh is shown, as seen in the image below.
I've tracked the problem to the line:
mesh_resource = object_info.get_field<std::string>("mesh_uri");
The mesh_resource contains the URL of the .ply file in the DB, instead of the .stl file.
If I change it to point to the .stl file, the mesh is visualized correctly.
Both files are generated and committed to the DB as attachments of the object by the default object capture and mesh generation procedure in ORK.
In the following image you can see the kinect point cloud in white, and the mesh retrieved from the DB in dark grey.
This happens only after at least one call to the action server. On Ctrl+C, the executions gets stuck on the final rospy.spin() until SIGTERM signal is received. It happens both with tabletop and tod detectors, so I think the problem is in the underlying ecto infraestructure. Another clue on this is that it seems to be a problem with a destroyed thread/mutex, and tabletop don't use threads at all (afaik):
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
[tabletop_object_recognition_server-7] escalating to SIGTERM
I tried also to manually handle the Ctrl+C signal as in here; surprisingly enough, it also scalate to SIGTERM but some times with different message:
[tabletop_object_recognition_server-7] escalating to SIGTERM
[senz3d-4] escalating to SIGTERM
[tabletop_object_recognition_server-7] escalating to SIGKILL
[rosout-1] killing on exit
[master] killing on exit
Shutdown errors:
* process[tabletop_object_recognition_server-7, pid 370]: required SIGKILL. May still be running.
shutting down processing monitor...
... shutting down processing monitor complete
The non-server version of tabletop doesn't have this problem, but it calls the ecto cells in a completely different way (at least it seems so to me!).
Puzzling....
I have a similar problem like http://answers.ros.org/question/71833/having-problems-with-tod-object-detection/
While running 'rosrun object_recognition_core detection -c detection.ros.ork' I get the output:
**Starting object: 0
29 keypoints in 64 matches
done filling
RANSAC done with 19 inliers
RANSAC done with 0 inliers
******************** found 1 poses
But if I output the recognized objects with 'rostopic echo /recognized_object_array' I get always the output with empty objects like
header:
seq: 81
stamp:
secs: 1384859690
nsecs: 437189972
frame_id: ''
objects: []
cooccurrence: []
My setup is a Kinect over USB on a Ubuntu 13.04, 64bit
While I am running
roslaunch openni2_launch openni2.launch
I am getting warning.
[ INFO] [1555763947.524317570]: using default calibration URL
[ INFO] [1555763947.524611643]: camera calibration URL: file:///home/robot/.ros/camera_info/depth_Kinect_Microsoft.yaml
[ INFO] [1555763947.525154417]: Unable to open camera calibration file [/home/robot/.ros/camera_info/depth_Kinect_Microsoft.yaml]
[ WARN] [1555763947.525258971]: Camera calibration file /home/robot/.ros/camera_info/depth_Kinect_Microsoft.yaml not found.
How to avoid this warning.
Hi
I have installed ork and followed instructions. Every thing worked nice, recognize the coke can, until recently. Now when I try to add /recognized_object_array to rviz it crash (terminate called after throwing an instance of 'std::runtime_error' what(): Time is out of dual 32-bit range Aborted (core dumped)). I can echo the topic and see that it only recognizes the first item before it crash.
How can I fix this problem? There was two warning (1. /home/mias/ork/src/tabletop/src/object/assimp/code/Exporter.cpp:283:10: warning: ‘template class std::auto_ptr’ is deprecated) (2. ObjectRecognizer.cpp warning: the use of tmpnam' is dangerous, better usemkstemp') but my attempts to remedy this did not result in a solution.
I am new to ROS. I am using ubuntu 16.04 and Kinetic ROS. I followed all the instructions given in github.
Error 1: rosrun object_recognition_capture capture --seg_z_min 0.01 -oobject.bag
Registration? 1
Sync? 0
Traceback (most recent call last):
File "/home/robot/ws/src/ork_capture/apps/capture", line 75, in
run_plasm(options, plasm, locals=dict(plasm=plasm, segmentation=segmentation))
File "/home/robot/ws/src/ecto/python/ecto/opts.py", line 85, in run_plasm
sched.execute(options.niter)
ecto.CellException: exception_type CellException
[cell_name] = Source
[cell_type] = ecto::py::BlackBox
[function_name] = process_with_only_these_inputs
[type] = std::runtime_error
[what] = exception_type CellException
[cell_name] = <class 'ecto_openni.OpenNICapture'>
[cell_type] = ecto_openni::OpenNICapture
[function_name] = configure
[type] = std::runtime_error
[what] = Index out of range.0 devices found.
Help me to solve this error.
When running rviz on desktop-full hydro I get:
[ERROR] [1378413840.591801589]:
PluginlibFactory: The plugin for class 'object_recognition_ros/OrkObjectDisplay' failed to load.
Error: Could not find library corresponding to plugin object_recognition_ros/OrkObjectDisplay.
Make sure the plugin description XML file has the correct name of the library and that the library actually exists.
Would make the installation progress easier.
Excuse me, I would like to ask you a question. When I use this algorithm to identify the pose information of the Coke can, the white model is always jumping, resulting in the estimation pose of the Coke can is always changing. What methods should be used to prevent the white model from jumping? Thank you.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.