Coder Social home page Coder Social logo

ethz-asl / vicon_bridge Goto Github PK

View Code? Open in Web Editor NEW
86.0 42.0 98.0 9.68 MB

This is a driver providing data from VICON motion capture systems. It is based on the vicon_mocap package from the starmac stacks. Additionally, it can handle multiple subjects / segments and allows to calibrate an origin of the vehicle(s) as this is somehow tedious with the VICON Tracker.

License: Other

C++ 92.13% CMake 0.13% Python 0.18% Makefile 3.45% C 4.11%

vicon_bridge's Introduction

This is a driver providing data from VICON motion capture systems. It is based on the vicon_mocap package from the starmac stacks. 
Additionally, it can handle multiple subjects / segments and allows to calibrate an origin of the vehicle(s) as this is somehow tedious with the VICON Tracker.

License: BSD
Author: Markus Achtelik <[email protected]> 

QUICK START
roslaunch vicon_bridge vicon.launch
You may need to set the "datastream_hostport" parameter to your vicon computer's ip/hostname

OPERATION
The vicon_bridge node initiates a connection with the Vicon data source (e.g. Nexus or Tracker)
via the DataStream API. The parameter ~datastream_hostport should be set to the IP address and port (joined with a colon)
of the DataStream server machine, e.g. 192.168.0.254:801 (801 is the default port). The parameter ~stream_mode is used for the call to the DataStream SetStreamMode method;
valid values are "ServerPush", "ClientPull". 

All available subjects and segments are recognized automatically and published as tf transform and geometry_msgs::TransformStamped

ORIGIN CALIBRATION
when an object is created in vicon tracker, it places the origin more or less arbitrary in the object. 
Setting the desired origin in Tracker is somewhat tedious, therefore we added an origin calibration method. 
Place the vehicle at the vicon origin that you set during vicon calibration, and measure/estimate the height 
(z offset) of your desired origin from the floor. Then run 
>> rosrun vicon_bridge calibrate <subject name> <segment name> <z offset>
Poses are now grabbed, averaged and the vehicle is placed in the vicon's origin. The calibration parameters are stored on the parameter server as
~/<subject_name>/segment_name/zero_pose (see below). On startup, the node checks if calibration parameters are available. 
Do this the first time while running rviz and observe what happens (and if everything went correct ;-) )  


Published topics: 
- vicon/<subject_name>/<segment_name>
  publishes all available subjects/segments
  
- vicon/markers
  publishes all labeled and unlabeled markers. Labeled markers are not affected by origin calibration
  
Services:
- grab_vicon_pose
  allows to grab n poses for a given subject/segment and averages them
  
- calibrate_segment
  calls the origin calibration of a segment
  
Provided tf transforms
- vicon/<subject_name>/<segment_name>

Parameters
- stream_mode
  mode to connect to the DataStream server. Values: "ClientPull", "ServerPush". Default: "ClientPull"
- datastream_hostport
  host:port of the DataStream server
- tf_ref_frame_id
  tf reference frame id. Default: "world"
  
- ~/<subject_name>/segment_name/zero_pose/orientation/w
- ~/<subject_name>/segment_name/zero_pose/orientation/x
- ~/<subject_name>/segment_name/zero_pose/orientation/y
- ~/<subject_name>/segment_name/zero_pose/orientation/z
  quaternion of the pose at origin of the corresponding vehicle
  
- ~/<subject_name>/segment_name/zero_pose/position/x
- ~/<subject_name>/segment_name/zero_pose/position/y
- ~/<subject_name>/segment_name/zero_pose/position/z
  position of the pose at origin of the corresponding vehicle

vicon_bridge's People

Contributors

alexmillane avatar burrimi avatar omaris avatar wxmerkt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vicon_bridge's Issues

Bloom release plan?

Hi,

I would like to ask if you are planning to (or can consider) bloom release this package in the near future.

Thanks,
Jae

Calibration service returns true when it shouldn't

If the waitForTransform call times out because there are no transforms for that body it will not actually be able to calibrate anything (no tf data on body to calibrate with) but the grabPose... function will still return true.

Issue with catkin_make

Hi,
I'm having an issue getting the repo to completely catkin_make on a Jetson Tk1 board. When we try to make from the parent directory, we receive the error:

[ 34%] Building CXX object vicon_bridge/CMakeFiles/testclient.dir/src/ViconDataStreamSDK_CPPTest.cpp.o
Linking CXX executable /home/ubuntu/catkin_ws/devel/lib/vicon_bridge/testclient
/usr/bin/ld: skipping incompatible /home/ubuntu/catkin_ws/src/vicon_bridge/vicon_sdk/Vicon_SDK_1.3_Linux/32-bit/libViconDataStreamSDK_CPP.so when searching for -lViconDataStreamSDK_CPP
/usr/bin/ld: cannot find -lViconDataStreamSDK_CPP
collect2: error: ld returned 1 exit status

Any advice on how to proceed would be appreciated.

Thank you!

Calibration values

Using
$ rosrun vicon_bridge calibrate
the calibration values printed on the screen are not the same as the ones added to the parameter server.

This is mostly visible when using a z-offset value and looking the z component of the calibrated value (rosparam VS console output).

Cannot see the formation of vicon

After I clone and catkin_make the vicon_briage directory in my workspace, I set my PC's which running vicon hostname to vicon. And then I roslaunch the launch file vicon.launch, but there's no reaction. The situation like this:
ardrone@ubuntu:~/crazyflie_ws/src/vicon_bridge/launch$ roslaunch vicon.launch
... logging to /home/ardrone/.ros/log/e3ebe690-ea24-11e9-bc46-000c29a0daf3/roslaunch-ubuntu-6801.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:44913/

SUMMARY

PARAMETERS

  • /rosdistro: kinetic
  • /rosversion: 1.12.14
  • /vicon/datastream_hostport: vicon:192.168.10.1
  • /vicon/stream_mode: ClientPull
  • /vicon/tf_ref_frame_id: /world

NODES
/
vicon (vicon_bridge/vicon_bridge)

auto-starting new master
process[master]: started with pid [6811]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to e3ebe690-ea24-11e9-bc46-000c29a0daf3
process[rosout-1]: started with pid [6824]
started core service [/rosout]
process[vicon-2]: started with pid [6828]
[ INFO] [1570577978.288834390]: Connecting to Vicon DataStream SDK at vicon:192.168.10.1 ...
[ INFO] [1570577993.301680138]: .
[ INFO] [1570578004.316229193]: .
[ INFO] [1570578015.330030469]: .
[ INFO] [1570578026.343621669]: .
[ INFO] [1570578037.356156361]: .
[ INFO] [1570578048.366912102]: .
[ INFO] [1570578059.381591075]: .
[ INFO] [1570578070.388139478]: .
[ INFO] [1570578081.401838489]: .
[ INFO] [1570578092.416442060]: .
[ INFO] [1570578103.426150843]: .
[ INFO] [1570578114.439745462]: .

Cant connect

Hi folks,

I'm having this problem right here...

"SUMMARY

PARAMETERS

  • /rosdistro: noetic
  • /rosversion: 1.15.14
  • /vicon/datastream_hostport: 192.168.10.1:801
  • /vicon/stream_mode: ClientPull
  • /vicon/tf_ref_frame_id: /vicon/world

NODES
/
vicon (vicon_bridge/vicon_bridge)

auto-starting new master
process[master]: started with pid [29224]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 7e1806ca-d6b0-11ec-bfbd-9f4f946023f3
process[rosout-1]: started with pid [29241]
started core service [/rosout]
process[vicon-2]: started with pid [29244]
[ INFO] [1652881406.549681766]: Connecting to Vicon DataStream SDK at 192.168.10.1:801 ...
[ INFO] [1652881406.551587664]: .
[ INFO] [1652881407.552179954]: .
[ INFO] [1652881408.553358608]: .
[ INFO] [1652881409.554279805]: .
[ INFO] [1652881410.555420396]: .
[ INFO] [1652881411.556637230]: .
[ INFO] [1652881412.557781509]: .
[ INFO] [1652881413.558694132]: .
[ INFO] [1652881414.559790780]: .

I'm connected with my Ubuntu Laptop to the Windows PC via Ethernet Cable."

Any suggestions?

WARN "subject occluded", while visible in Nexus

Hello,

I use Nexus 2.7.0, but when I run roslaunch vicon_bridge vicon.launch I get the warning that my created subject is occluded while I see this created subject in Vicon Nexus. A colleague for who it was working a month ago, has the same problem as me right now.

Information is exchanged for sure between the Vicon computer and my computer (Ubuntu 16.04, colleague Ubuntu 18.04), because when we change the session and so the subjects in Nexus, we also see that the names of the subjects in the warning message changes.
We did the test with a live subject and with a recorded subject, but none of them works.

Below you can see the message we get for the subject called Kelly.
SubjectOccluded

I hope someone knows the solution to this problem!
Thanks in advance,
Kelly

Segmentation fault on Ubuntu 20.04 with ROS Noetic

Hi! I am trying to run roslaunch vicon_bridge vicon.launch on Ubuntu 20.04 with ROS Noetic, but the process dies soon after connecting to the VICON server. Below is the information output by using gdb. Is anyone running into a similar issue? Thanks!

(gdb) run
Starting program: /home/henrique/catkin_ws/devel/lib/vicon_bridge/vicon_bridge __name:=vicon __log:=/home/henrique/.ros/log/814fc820-8d8a-11eb-bf20-6922279961a7/vicon-2.log
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff4331700 (LWP 36938)]
[New Thread 0x7ffff3b30700 (LWP 36939)]
[New Thread 0x7ffff332f700 (LWP 36940)]
[New Thread 0x7ffff2b2e700 (LWP 36941)]
[New Thread 0x7ffff232d700 (LWP 36942)]
[ INFO] [1616691315.885458948]: Connecting to Vicon DataStream SDK at vicon:801 ...
[New Thread 0x7ffff1b2c700 (LWP 36943)]
[ INFO] [1616691315.886954747]: .
[ INFO] [1616691316.887277343]: ... connected!
[ INFO] [1616691316.887327717]: Setting Stream Mode to ClientPull: Success
[ INFO] [1616691316.887378140]: Axis Mapping: X-Forward Y-Left Z-Up
[ INFO] [1616691316.887389120]: Version: 1.3.0
[ INFO] [1616691316.887397639]: setting up grab_vicon_pose service server ... 
[ INFO] [1616691316.888402378]: setting up segment calibration service server ... 
[ WARN] [1616691316.889472326]: grab frame returned false

Thread 1 "vicon_bridge" received signal SIGSEGV, Segmentation fault.
__GI___pthread_mutex_lock (mutex=0x110) at ../nptl/pthread_mutex_lock.c:67
67      ../nptl/pthread_mutex_lock.c: No such file or directory.


(gdb) bt
#0  __GI___pthread_mutex_lock (mutex=0x110) at ../nptl/pthread_mutex_lock.c:67
#1  0x00007ffff7be2fa8 in ros::Publication::hasSubscribers() () from /opt/ros/noetic/lib/libroscpp.so
#2  0x00007ffff7bd31ce in ros::TopicManager::publish(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::function<ros::SerializedMessage ()> const&, ros::SerializedMessage&) () from /opt/ros/noetic/lib/libroscpp.so
#3  0x00007ffff7bc7046 in ros::Publisher::publish(boost::function<ros::SerializedMessage ()> const&, ros::SerializedMessage&) const () from /opt/ros/noetic/lib/libroscpp.so
#4  0x00007ffff7039260 in tf2_ros::TransformBroadcaster::sendTransform(std::vector<geometry_msgs::TransformStamped_<std::allocator<void> >, std::allocator<geometry_msgs::TransformStamped_<std::allocator<void> > > > const&) () from /opt/ros/noetic/lib/libtf2_ros.so
#5  0x00007ffff7cb6a1b in tf::TransformBroadcaster::sendTransform(std::vector<tf::StampedTransform, std::allocator<tf::StampedTransform> > const&) () from /opt/ros/noetic/lib/libtf.so
#6  0x0000555555587bbf in ViconReceiver::process_subjects(ros::Time const&) ()
#7  0x0000555555588be1 in ViconReceiver::process_frame() ()
#8  0x000055555558c364 in ViconReceiver::grabThread() ()
#9  0x000055555558d6e7 in ViconReceiver::ViconReceiver() ()
#10 0x0000555555573bc4 in main ()

hover_vicon.launch. error:This file requires compiler and library support for the ISO C++ 2011 standard.

When I ran the hover_vicon.launch,the following error occurred.

In file included from /usr/include/c++/5/array:35:0,
from /home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDKCore/RetimingClient.h:28,
from /home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDKCore/CoreClient.h:27,
from /home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamClient.cpp:31:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support
^
In file included from /home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamClient.cpp:29:0:
/home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamClient.h:57:10: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
std::shared_ptr< std::vector< unsigned char > > m_Data;
^
In file included from /usr/include/c++/5/array:35:0,
from /home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDKCore/RetimingClient.h:28,
from /home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDKCore/CoreClient.h:27,
from /home/ubuntu/ros_ws/src/vicon_bridge/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamRetimingClient.cpp:29:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support
^
^Cvicon_bridge/CMakeFiles/vicon_sdk.dir/build.make:86: recipe for target 'vicon_bridge/CMakeFiles/vicon_sdk.dir/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamRetimingClient.cpp.o' failed
make[2]: *** [vicon_bridge/CMakeFiles/vicon_sdk.dir/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamRetimingClient.cpp.o] Interrupt
Traceback (most recent call last):
File "/opt/ros/kinetic/bin/catkin_make", line 298, in
sys.exit(main())
File "/opt/ros/kinetic/bin/catkin_make", line 242, in main
run_command(cmd, make_path)
File "/opt/ros/kinetic/lib/python2.7/dist-packages/catkin/builder.py", line 239, in run_command
vicon_bridge/CMakeFiles/vicon_sdk.dir/build.make:62: recipe for target 'vicon_bridge/CMakeFiles/vicon_sdk.dir/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamClient.cpp.o' failed
make[2]: *** [vicon_bridge/CMakeFiles/vicon_sdk.dir/vicon_sdk/DataStream/ViconDataStreamSDK_CPP/DataStreamClient.cpp.o] Interrupt
proc.wait()
File "/usr/lib/python2.7/subprocess.py", line 1392, in wait
CMakeFiles/Makefile2:4304: recipe for target 'vicon_bridge/CMakeFiles/vicon_sdk.dir/all' failed
make[1]: *** [vicon_bridge/CMakeFiles/vicon_sdk.dir/all] Interrupt
Makefile:138: recipe for target 'all' failed
make: *** [all] Interrupt
pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
File "/usr/lib/python2.7/subprocess.py", line 476, in _eintr_retry_call
return func(*args)

Not able to see any data

Hello ,
When I run the launch file, all get as the output is :

[ INFO] [1443562224.216012836]: Connecting to Vicon DataStream SDK at vicon:801 ...
[ INFO] [1443562224.220628437]: .
[ INFO] [1443562225.223501987]: .
[ INFO] [1443562226.226403333]: .
[ INFO] [1443562227.232504109]: .

am not sure whats wrong, because i have set my IP to the one on my windows system,
I can see the data on the windows side but nothing on the ubuntu side. I am using ros indigo

How to get the tf of subject or the position of marker with label oneline.

Summary

I can't get the tf of subject or the position of marker with label oneline. I have followed the advice from #26 and set the processing output level to kinematic fit

version

  • win10 + Vicon Nexus 2.6.1
  • Ubuntu16.04 + ROS Kinetic

Issue details

  1. First, I create a subject and a segment in Vicon Nexus, and then I can use vicon_bridge to get the position of markers when Vicon Nexus is in Live mode. But the markers with label is occluded and markers without label isn’t occluded, there isn't and tf infomation
    image

  2. I can get the tf of subject when Vicon Nexus is in offline mode and with reconstructing, labeling and playing the record operation.

image

expect result

I'll be appreciate it if you can give me some advice.
I’d like to know whether I can get the tf of subject or the position of marker with label oneline .

Unresolved External Symbol

Trying to compile some of the Vicon test code with the DataStreamClient.h gives the error
LNK2019 unresolved external symbol "__declspec(dllimport) public: __thiscall ViconDataStreamSDK::CPP::Client::Client(void)" (__imp_??0Client@CPP@ViconDataStreamSDK@@QAE@XZ) referenced in function _main ViconApp c:\Users\rdh242\source\repos\ViconApp\ViconApp\ViconApp.obj
Please help.

could not build on ubuntu-mate 16.04

Hello.
I am trying to build vicon_bridge from catkin_ws on ubuntu-mate 16.04 installed on raspberry pi 3. The procedure that I followed for the build is,
1- Download ViconDataStreamSDK from company website to /home/pi/Documents/.
2- Download vicon_bridge from this repository to catkin_ws/src.
3- Set the library path as,
export LD_LIBRARY_PATH=/home/pi/Documents/ViconDataStreamSDK_1.7.1_96542h/Linux32-boost-1.55.0/20170125_96542h.x86/:$LD_LIBRARY_PATH
4- catkin build

However, I am geting a build error as,

Errors << vicon_bridge:make /home/pi/catkin_ws/logs/vicon_bridge/build.make.010.log
make[2]: *** No rule to make target '/usr/bin/libViconDataStreamSDK_CPP.so', needed by '/home/pi/catkin_ws/devel/.private/vicon_bridge/lib/vicon_bridge/testclient'. Stop.
make[1]: *** [CMakeFiles/testclient.dir/all] Error 2
make: *** [all] Error 2
cd /home/pi/catkin_ws/build/vicon_bridge; catkin build --get-env vicon_bridge | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd -
...............................................................................
Failed << vicon_bridge:make [ Exited with code 2 ]
Failed <<< vicon_bridge [ 3.0 seconds ]
[build] Summary: 0 of 1 packages succeeded.
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: 1 packages failed.
[build] Runtime: 3.1 seconds total.

catkin_make is also not working. Can someone help me?

Thank you so much.

Not compiling on odroid u3

Hello,
I have been trying to get the package working on my system, however its not working. I am not able to catkin_make it successfully. Im using ROS indigo.

This is the error i keep getting. HELP PLEASE!!

Scanning dependencies of target vicon_bridge_generate_messages_cpp
[ 60%] Generating C++ code from vicon_bridge/Markers.msg
[ 62%] Built target msf_core
Scanning dependencies of target vicon_bridge_generate_messages_py
[ 63%] Generating Python from MSG vicon_bridge/Markers
Linking CXX executable /home/odroid/indigo_ws/devel/lib/vicon_bridge/testclient
/usr/bin/ld.bfd.real: skipping incompatible /home/odroid/indigo_ws/src/vicon_bridge/vicon_sdk/Vicon_SDK_1.3_Linux/32-bit/libViconDataStreamSDK_CPP.so when searching for -lViconDataStreamSDK_CPP
/usr/bin/ld.bfd.real: cannot find -lViconDataStreamSDK_CPP
collect2: error: ld returned 1 exit status
make[2]: *** [/home/odroid/indigo_ws/devel/lib/vicon_bridge/testclient] Error 1
make[1]: *** [vicon_bridge/CMakeFiles/testclient.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Thanks

getFrame returned false problem with vicon ROS Indigo

Hello,
I am trying to connect vicon with ros inidgo but getting the following error:

[ INFO] [1449102663.987751241]: Connecting to Vicon DataStream SDK at 192.168.0.2:139 ...
[ INFO] [1449102663.988230113]: .
[ INFO] [1449102664.988475085]: ... connected!
[ INFO] [1449102664.988596236]: Setting Stream Mode to ClientPull: Success
[ INFO] [1449102664.988699704]: Axis Mapping: X-Forward Y-Left Z-Up
[ INFO] [1449102664.988797025]: Version: 1.5.0
[ INFO] [1449102664.988887674]: setting up grab_vicon_pose service server ...
[ INFO] [1449102664.991526043]: setting up segment calibration service server ...
[ INFO] [1449102665.995210107]: getFrame returned false
[ INFO] [1449102666.999802458]: getFrame returned false
[ INFO] [1449102668.004260179]: getFrame returned false
[ INFO] [1449102669.008734537]: getFrame returned false
[ INFO] [1449102670.013276002]: getFrame returned false
[ INFO] [1449102671.017864294]: getFrame returned false
[ INFO] [1449102672.022438781]: getFrame returned false
[ INFO] [1449102673.027016893]: getFrame returned false
[ INFO] [1449102674.031595970]: getFrame returned false

when I changed the port number to 801 or delete it (I kept the ip address only ), getFrame returned false was gone. However, I still had a problem as shown below

[ INFO] [1449364693.261733294]: Connecting to Vicon DataStream SDK at 192.168.0.2:801 ...
[ INFO] [1449364693.262350338]: .
[ INFO] [1449364694.262625493]: ... connected!
[ INFO] [1449364694.262766503]: Setting Stream Mode to ClientPull: Success
[ INFO] [1449364694.262873112]: Axis Mapping: X-Forward Y-Left Z-Up
[ INFO] [1449364694.263011118]: Version: 1.5.0
[ INFO] [1449364694.263096447]: setting up grab_vicon_pose service server ...
[ INFO] [1449364694.265751475]: setting up segment calibration service server ...
[ WARN] [1449364694.269359167]: grab frame returned false
the last line lasts forever.

At this stage, the package is working very well, but I was not able to read from (vicon_bridge/Markers) topic. I got the following after I type "rostopic show /vicon_bridge/Markers" : Are your messages built?. The problem was solved after I sourced the shell to "devel/setup.sh" and then type "rostopic show /vicon_bridge/Markers." Everything is OK now

Any help/advice please?
Thanks in advance

empty character cannot be handled

When vicon bridge is installed and the lauch file is started with correct host:port combo.
it starts but since one of the rigid body is "Paket2 ", the node crashes.

[ INFO] [1513782445.900415816]: creating new object Paket2 /Paket2 ... terminate called after throwing an instance of 'ros::InvalidNameException' what(): Character [ ] at element [12] is not valid in Graph Resource Name [vicon/Paket2 /Paket2]. Valid characters are a-z, A-Z, 0-9, / and _.

Indigo Release

Hi there, would the maintainer(s) be willing to release vicon_bridge for ROS Indigo? It would be greatly appreciated!

getFrame returned false

Hi! I've connected VICON 3.1.3 on my windows 7 computer to the vicon_bridge ROS driver on my ubuntu 20.04.6 computer to stream the 6DOF of an object, but I'm getting stuck at the "getFrame returned false" message on the bridge. The /vicon/markers topic appears in rostopic list but isnt publishing. I've tried different things, including the fix suggested in #12, to no avail. Help with this issue would be much appreciated!

Setup :

  • VICON computer :
    • Windows 7
    • VICON 3.1.3
    • Requested Frame Rate = 100 Hz (default)
    • UDP Object Stream : enabled, 256 Block Size
  • Base computer :
    • Ubuntu 20.04.6 LTS
    • ROS noetic 1.16.0

Base computer vicon_bridge output :

$ source devel/setup.bash
$ roslaunch vicon_bridge vicon.launch

SUMMARY                                    
========                                   
                                           
PARAMETERS                                 
 * /rosdistro: noetic                      
 * /rosversion: 1.16.0                     
 * /vicon/datastream_hostport: xx.xxx.xx.xx
 * /vicon/stream_mode: ClientPull          
 * /vicon/tf_ref_frame_id: /vicon/world    
                                           
NODES                                      
  /                                        
    vicon (vicon_bridge/vicon_bridge)      
                                           
ROS_MASTER_URI=http://localhost:11311      
                                           
process[vicon-1]: started with pid [366872]
[ INFO] [1689949363.067345181]: Connecting to Vicon DataStream SDK at xx.xxx.xx.xx:xx ...
[ INFO] [1689949363.135595411]: .                                                        
[ INFO] [1689949364.135965657]: ... connected!                                           
[ INFO] [1689949364.136131419]: Setting Stream Mode to ClientPull: Success               
[ INFO] [1689949364.136290867]: Axis Mapping: X-Forward Y-Left Z-Up                      
[ INFO] [1689949364.136482646]: Version: 1.11.0                                          
[ INFO] [1689949364.136606907]: setting up grab_vicon_pose service server ...            
[ INFO] [1689949364.138535914]: setting up segment calibration service server ...        
[ INFO] [1689949365.142862937]: getFrame returned false                                  
[ INFO] [1689949365.147426495]: getFrame returned false                                  
[ INFO] [1689949365.152054131]: getFrame returned false 
  • Note : Sourcing the shell to "devel/setup.sh" as suggested in #12 didn't solve the problem, as the vicon.launch executable isnt recognized anymore (whereas source devel/setup.bash works)
$ source devel/setup.sh
$ roslaunch vicon_bridge vicon.launch
RLException: [vicon.launch] is neither a launch file in package [vicon_bridge] nor is [vicon_bridge] a launch file name
The traceback for the exception was written to the log file
  • Note : the /vicon/markers topic becomes active but isnt publishing anything
  • Note : replaced IP with x's

VICON computer output :

No Frames are being received by frame receiver [2098013 T:17002 Video]
(SYNC) [3207605577] Broadcast system event 1026 from frame 0
(SYNC) [3207605577] Broadcast system event 1025 from frame 3702
Demoting from expected status frame receiver [2098005 T:160001 Centroids Greyscale]
Removing Frame receiver  [2098005 T:160001 Centroids Greyscale]
Adding Frame receiver  [2098005 T:160001 Centroids Greyscale]
Removing Frame receiver [2098005 T:17001 Video]
Adding Frame receiver [2098005 T:17001 Video]
Frames currently shipped with 5 frame receivers
Expected status to be granted on frame 62828 for leading frame receiver [2098005 T:160001 Centroids Greyscale]
Frames currently shipped with 6 frame receivers
Throwing away late frame 62827 from expected frame receiver [2098005 T:160001 Centroids Greyscale]
No Frames are being received by frame receiver [2098013 T:17002 Video]
Error, HAL detected  discontinuity receiving frame [101356] on frame receiver  [2098005 T:160001 Centroids Greyscale]
Soft resetting frame receiver  [2098005 T:160001 Centroids Greyscale]
Demoting from expected status frame receiver [2098005 T:160001 Centroids Greyscale]
Starting new frame receiver session
Expected status to be granted on frame 101356 for leading frame receiver [2098005 T:160001 Centroids Greyscale]
(SYNC) [3207605577] Broadcast system event 1026 from frame 0
(SYNC) [3207605577] Broadcast system event 1025 from frame 101507
...

Dropping data at high frequency(50 -100 hz)

Currently, I am using Vicon Bridge in my laptop to receive the data of 2 drones and then subscribe them in each of drones using ros. I programmed and saw the data of each of drones. While I test each of drones alone, my drones's performance is alright and the data I collected is on time. The problem only happens while I run two drones at the same time. The data I collected and stored in each drones dropped a lot (occasionally 400 ms to 1 s). This is proven by the poor performance of my drones. I tried to reduce the frequency from 100 hz to 50 hz. The dropping data is reduced but it is still not good as I expect. Do you know how I can deal with this problem. Many thanks,

Running on Noetic

I am running Ubuntu 20, ROS noetic, and the node fails to run.

I found that the issue is in vicon_bridge.cpp, line 534:
tf_broadcaster_.sendTransform(transforms);

I haven't taken the time to learn about TF, but I know that with this line commented out, it looks like I am getting a pretty good output from the Vicon system.

  1. What am I missing with this line commented out?

  2. Would moving to tf2 fix this for Noetic?

Thanks!

Exception 'boost::thread_interrupted'

Thanks for the node! We are having some exception thrown every randomly 20% of the time we are using the node.

Background info:

  • Ubuntu 12.04
  • ROS Hydro
  • Boost version: 1.46.1.7

Trace:

[ INFO] [1417737946.520509880]: setting up grab_vicon_pose service server ...
[ INFO] [1417737946.522555280]: setting up segment calibration service server ...
[ WARN] [1417737946.525454880]: grab frame returned false
terminate called after throwing an instance of 'boost::thread_interrupted'
[vicon-2] process has died [pid 25573, exit code -6, cmd /home/asrl/banff/utias/devel/lib/vicon_bridge/vicon_bridge __name:=vicon __log:=/home/asrl/.ros/log/7549afc2-7c12-11e4-93a3-f81edfde4c6d/vicon-2.log].
log file: /home/asrl/.ros/log/7549afc2-7c12-11e4-93a3-f81edfde4c6d/vicon-2*.log

Cannot connect the the VICON desktop

Hi folks,

I met this probelm. I follow the suggestions from other issue topics, but still cannot connect to the VICON desktop. Should I connect my Ubuntu desktop to Vicon switch or the Vicon desktop? The Vicon desktop is running Nexus instead of Tracker, but I have test that the SDK can connect and run well in the Vicon desktop. Any suggestions? Thank you!

roslaunch vicon_bridge vicon.launch
PARAMETERS

  • /rosdistro: noetic
  • /rosversion: 1.16.0
  • /vicon/datastream_hostport: 192.168.10.1:801
  • /vicon/stream_mode: ClientPull
  • /vicon/tf_ref_frame_id: /vicon/world

NODES
/
vicon (vicon_bridge/vicon_bridge)

auto-starting new master
process[master]: started with pid [11551]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to e5fb18b8-1191-11ef-ab60-9cb6d0dd4e03
process[rosout-1]: started with pid [11561]
started core service [/rosout]
process[vicon-2]: started with pid [11564]
[ INFO] [1715650380.453677545]: Connecting to Vicon DataStream SDK at 192.168.10.1:801 ...
[ INFO] [1715650380.455405367]: .
[ INFO] [1715650381.456715444]: .
[ INFO] [1715650382.457718577]: .

how to set the Tracker?

I want to get the position information from the windows computer to the ROS.

Can someone tell how to set in Tracker (the software of VICON) ?

And the setting in the vicon_bridge package in detail?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.