GithubHelp home page GithubHelp logo

vicon's Introduction

Build Status

Vicon Driver

The driver consists of 2 parts:

  • vicon_driver: This contains a base ViconDriver class which handles all the commmunication with the vicon PC and has hooks for the subject/unlabeled markers publish callbacks (see ViconDriver.h)
  • Interface layer: (IPC & ROS for now) Hooks into the callbacks supplied by the ViconDriver class and actually publishes the message

The vicon_driver design is intended to provide flexibility in terms of supporting any interface, you just need to provide the ViconDriver class with callback functions which will be called with the vicon data structures as their arguments. This design is not the most efficient in terms of CPU usage since you need to convert the data provided by the ViconDriver class into whatever format the interface layer needs to publish, but I believe that the flexibility it provides outweighs the extra CPU cycles required.

There is also an implementation of loading/storing calib (zero pose) files in YAML format using yaml-cpp (see ViconCalib.h). Loading calib files automatically is implemented in both the interface layes (IPC & ROS) but the ROS interface layer also provides a service which you can call to set the zero pose and automatically save it in the calib file.

License

vicon_driver and the IPC interface are licensed under the Apache-2.0 license.

The ROS interface is licensed under the BSD-3-Clause license.

Compiling

ROS

First, add the ros folder in this repository to your catkin workspace. Then, run

catkin_make

Example usage

ROS

Check the launch files in the vicon and vicon_odom packages. The output from the vicon node has a lot more information but most likely you'll want to use the vicon_odom package which generates odometry information from the position and orientation provided by Vicon.

Getting Odometry Message from Vicon

  • Launch the vicon.launch file in vicon package, make sure you set the vicon_server correctly

    roslaunch vicon vicon.launch
    
  • For each of the model you have, launch vicon_odom.launch in vicon_odom package. Note that every vicon_odom you launched will now be run under the namespace vicon. For example, if your model name is obj1, then the vicon_odom node will be named vicon/obj1, the published odometry message will be named vicon/obj1/odom. Also, you can provide a child_frame_id for the published odometry message, if not, it will be defaulted to model.

    roslaunch vicon_odom vicon_odom.launch model:=<model> child_frame_id:=<frame> publish_tf:=<bool>
    

Calibrating a Model

  • Launch the calibrate.launch file in vicon/launch using your ViconModelName

    roslaunch vicon calibrate.launch model:=ViconModelName
    
  • In a new terminal, echo the zero_pose estimate from vicon. Note: you will not see anything yet.

    rostopic echo /vicon_calibrate/zero_pose
    
  • In another terminal, toggle the calibration routine:

    rosservice call /vicon_calibrate/toggle_calibration
    
  • Now, check to make sure the zero_pose provides reasonable values

  • Untoggle the calibration routine

    rosservice call /vicon_calibrate/toggle_calibration
    
  • Close the running launch files and verify that a new calibration file was written to ./vicon/calib

vicon's People

Contributors

justinthomas avatar kartikmohta avatar mwatterson avatar sikang avatar versatran01 avatar ziyangli 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

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vicon's Issues

Unable to load libboost_system-mt.so.1.53.0

I am using the vicon system to get the odometry of the robot. When I launch vicon_odom.launch, it gives me an error.

[vicon/tb2_raas-1] process has died [pid 30095, exit code 127, cmd /home/po-lun/vicon/devel/lib/vicon_odom/vicon_odom ~vicon_subject:=tb2_raas ~odom:=/tb2_raas/odom __name:=tb2_raas __log:=/home/po-lun/.ros/log/bb71f896-5f9a-11ed-b1ac-6984c698ea7b/vicon-tb2_raas-1.log].
log file: /home/po-lun/.ros/log/bb71f896-5f9a-11ed-b1ac-6984c698ea7b/vicon-tb2_raas-1*.log
all processes on machine have died, roslaunch will exit

But the issue with this library is that 1.53.0 is too old for ubuntu 20.04, I can not download the correct version of this library.
What suggestion do you have for fixing this issue?
Thanks

Make the catkin version master and rosbuild version to another branch

This will break someone's stuff.

Changes are:

  1. all messages are under vicon namespace, e.g. the ViconSubject message of QuadrotorBravo is now /vicon/QuadrotorBravo instead of just /QuadrotorBravo.
  2. Odometry message are under vicon/model namespace, e.g. the nav_msgs/Odometry message of QuadrotorBravo is now /vicon/QuadrotorBravo/odom instead of /QuadrotorBravo_odom.
  3. all vicon odometry message have proper frame_id and child_frame_id, e.g. the nav_msgs/Odometry message header of QuadrotorBravo will have header.frame_id = vicon and header.child_frame_id = /QuadrotorBravo/base_link.
  4. Option to publish a tf message.
  5. catkin package instead of rosbuild package.

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.